Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(660)

Unified Diff: ui/views/widget/desktop_root_window_host_linux.h

Issue 10985029: linux_aura: Fix cursors and popup menu location (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: comments Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/base/cursor/cursor_loader_x11.h ('k') | ui/views/widget/desktop_root_window_host_linux.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/views/widget/desktop_root_window_host_linux.h
diff --git a/ui/views/widget/desktop_root_window_host_linux.h b/ui/views/widget/desktop_root_window_host_linux.h
index b34c3856f169084be144c3b7936499e2ea7142ec..81f30209c4b17e81554b5b13d010adaf247d81be 100644
--- a/ui/views/widget/desktop_root_window_host_linux.h
+++ b/ui/views/widget/desktop_root_window_host_linux.h
@@ -11,8 +11,10 @@
#undef RootWindow
#include "base/basictypes.h"
+#include "ui/aura/client/cursor_client.h"
#include "ui/aura/root_window_host.h"
#include "ui/gfx/rect.h"
+#include "ui/base/cursor/cursor_loader_x11.h"
#include "ui/base/x/x11_atom_cache.h"
#include "ui/views/widget/desktop_root_window_host.h"
@@ -32,6 +34,7 @@ class X11WindowEventFilter;
class DesktopRootWindowHostLinux : public DesktopRootWindowHost,
public aura::RootWindowHost,
+ public aura::client::CursorClient,
public MessageLoop::Dispatcher {
public:
DesktopRootWindowHostLinux(
@@ -60,6 +63,10 @@ class DesktopRootWindowHostLinux : public DesktopRootWindowHost,
// Checks if the window manager has set a specific state.
bool HasWMSpecProperty(const char* property) const;
+ // Sets the cursor on |xwindow_| to |cursor|. Does not check or update
+ // |current_cursor_|.
+ void SetCursorInternal(gfx::NativeCursor cursor);
+
// Overridden from DesktopRootWindowHost:
virtual void Init(aura::Window* content_window,
const Widget::InitParams& params) OVERRIDE;
@@ -137,7 +144,12 @@ class DesktopRootWindowHostLinux : public DesktopRootWindowHost,
virtual void OnDeviceScaleFactorChanged(float device_scale_factor) OVERRIDE;
virtual void PrepareForShutdown() OVERRIDE;
- // Overridden from Dispatcher overrides:
+ // Overridden from aura::CursorClient:
+ // Note: other methods are just set on aura::RootWindowHost:
+ virtual bool IsCursorVisible() const OVERRIDE;
+ virtual void SetDeviceScaleFactor(float device_scale_factor) OVERRIDE;
+
+ // Overridden from Dispatcher:
virtual bool Dispatch(const base::NativeEvent& event) OVERRIDE;
// X11 things
@@ -171,6 +183,18 @@ class DesktopRootWindowHostLinux : public DesktopRootWindowHost,
scoped_ptr<aura::DesktopActivationClient> activation_client_;
scoped_ptr<aura::DesktopDispatcherClient> dispatcher_client_;
+ // Translates custom bitmaps provided by the webpage into X11 cursors.
+ ui::CursorLoaderX11 cursor_loader_;
+
+ // Current Aura cursor.
+ gfx::NativeCursor current_cursor_;
+
+ // Is the cursor currently shown?
+ bool cursor_shown_;
+
+ // The invisible cursor.
+ ::Cursor invisible_cursor_;
+
// Toplevel event filter which dispatches to other event filters.
aura::shared::CompoundEventFilter* root_window_event_filter_;
« no previous file with comments | « ui/base/cursor/cursor_loader_x11.h ('k') | ui/views/widget/desktop_root_window_host_linux.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698