[mutter/wayland] screen: Move XDefineCursor on the root window here



commit fe42a4eb4ec466bce3f686b38a0221a198c0afb5
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Mon Mar 31 17:22:23 2014 -0400

    screen: Move XDefineCursor on the root window here
    
    This is really an X11 front-end thing, so it doesn't belong in the
    cursor tracker, which is a back-end thing.

 src/core/meta-cursor-tracker.c |   19 +++----------------
 src/core/screen.c              |   13 ++++++++++++-
 2 files changed, 15 insertions(+), 17 deletions(-)
---
diff --git a/src/core/meta-cursor-tracker.c b/src/core/meta-cursor-tracker.c
index 8b6561e..a5ceb2e 100644
--- a/src/core/meta-cursor-tracker.c
+++ b/src/core/meta-cursor-tracker.c
@@ -399,23 +399,10 @@ void
 meta_cursor_tracker_set_root_cursor (MetaCursorTracker *tracker,
                                      MetaCursor         cursor)
 {
-  Cursor xcursor;
-  MetaDisplay *display = tracker->screen->display;
+  g_clear_pointer (&tracker->root_cursor, meta_cursor_reference_unref);
+  tracker->root_cursor = meta_cursor_reference_from_theme (tracker, cursor);
 
-  /* First create a cursor for X11 applications that don't specify their own */
-  xcursor = meta_display_create_x_cursor (display, cursor);
-
-  XDefineCursor (display->xdisplay, tracker->screen->xroot, xcursor);
-  XFlush (display->xdisplay);
-  XFreeCursor (display->xdisplay, xcursor);
-
-  /* Now update the real root cursor */
-  if (meta_is_wayland_compositor ())
-    {
-      g_clear_pointer (&tracker->root_cursor, meta_cursor_reference_unref);
-      tracker->root_cursor = meta_cursor_reference_from_theme (tracker, cursor);
-      sync_cursor (tracker);
-    }
+  sync_cursor (tracker);
 }
 
 static gboolean
diff --git a/src/core/screen.c b/src/core/screen.c
index 2835445..38f8da8 100644
--- a/src/core/screen.c
+++ b/src/core/screen.c
@@ -1384,7 +1384,18 @@ update_focus_mode (MetaScreen *screen)
 void
 meta_screen_update_cursor (MetaScreen *screen)
 {
-  meta_cursor_tracker_set_root_cursor (screen->cursor_tracker, screen->current_cursor);
+  MetaDisplay *display = screen->display;
+  MetaCursor cursor = screen->current_cursor;
+  Cursor xcursor;
+
+  meta_cursor_tracker_set_root_cursor (screen->cursor_tracker, cursor);
+
+  /* Set a cursor for X11 applications that don't specify their own */
+  xcursor = meta_display_create_x_cursor (display, cursor);
+
+  XDefineCursor (display->xdisplay, screen->xroot, xcursor);
+  XFlush (display->xdisplay);
+  XFreeCursor (display->xdisplay, xcursor);
 }
 
 void


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]