[gtk+] gdk: Remove GdkWindow.set_device_cursor() vfunc



commit 9c98adcd156129f902ddc35f5ab922b464b1418d
Author: Benjamin Otte <otte redhat com>
Date:   Thu Nov 2 02:02:37 2017 +0100

    gdk: Remove GdkWindow.set_device_cursor() vfunc
    
    That one calls through to GdkDevice.set_window_cursor(), so let's just
    use that one.

 gdk/broadway/gdkwindow-broadway.c |   30 ---------------------
 gdk/broadway/gdkwindow-broadway.h |    1 -
 gdk/gdkwindow.c                   |    6 +---
 gdk/gdkwindowimpl.h               |    4 ---
 gdk/mir/gdkmirwindowimpl.c        |   22 ----------------
 gdk/quartz/gdkwindow-quartz.c     |   16 -----------
 gdk/wayland/gdkwindow-wayland.c   |   13 ---------
 gdk/win32/gdkwindow-win32.c       |   51 -------------------------------------
 gdk/win32/gdkwindow-win32.h       |    1 -
 gdk/x11/gdkwindow-x11.c           |   30 ---------------------
 gdk/x11/gdkwindow-x11.h           |    1 -
 11 files changed, 2 insertions(+), 173 deletions(-)
---
diff --git a/gdk/broadway/gdkwindow-broadway.c b/gdk/broadway/gdkwindow-broadway.c
index 1fd37c9..46fc891 100644
--- a/gdk/broadway/gdkwindow-broadway.c
+++ b/gdk/broadway/gdkwindow-broadway.c
@@ -157,8 +157,6 @@ static void
 gdk_window_impl_broadway_init (GdkWindowImplBroadway *impl)
 {
   impl->toplevel_window_type = -1;
-  impl->device_cursor = g_hash_table_new_full (NULL, NULL, NULL,
-                                               (GDestroyNotify) g_object_unref);
 }
 
 static void
@@ -183,8 +181,6 @@ gdk_window_impl_broadway_finalize (GObject *object)
   if (impl->cursor)
     g_object_unref (impl->cursor);
 
-  g_hash_table_destroy (impl->device_cursor);
-
   broadway_display->toplevels = g_list_remove (broadway_display->toplevels, impl);
 
   G_OBJECT_CLASS (gdk_window_impl_broadway_parent_class)->finalize (object);
@@ -614,31 +610,6 @@ gdk_broadway_window_set_transient_for (GdkWindow *window,
 }
 
 static void
-gdk_window_broadway_set_device_cursor (GdkWindow *window,
-                                      GdkDevice *device,
-                                      GdkCursor *cursor)
-{
-  GdkWindowImplBroadway *impl;
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-  g_return_if_fail (GDK_IS_DEVICE (device));
-
-  impl = GDK_WINDOW_IMPL_BROADWAY (window->impl);
-
-  if (!cursor)
-    g_hash_table_remove (impl->device_cursor, device);
-  else
-    {
-      _gdk_broadway_cursor_update_theme (cursor);
-      g_hash_table_replace (impl->device_cursor,
-                            device, g_object_ref (cursor));
-    }
-
-  if (!GDK_WINDOW_DESTROYED (window))
-    GDK_DEVICE_GET_CLASS (device)->set_window_cursor (device, window, cursor);
-}
-
-static void
 gdk_window_broadway_get_geometry (GdkWindow *window,
                                  gint      *x,
                                  gint      *y,
@@ -1477,7 +1448,6 @@ gdk_window_impl_broadway_class_init (GdkWindowImplBroadwayClass *klass)
   impl_class->lower = gdk_window_broadway_lower;
   impl_class->restack_toplevel = gdk_window_broadway_restack_toplevel;
   impl_class->move_resize = gdk_window_broadway_move_resize;
-  impl_class->set_device_cursor = gdk_window_broadway_set_device_cursor;
   impl_class->get_geometry = gdk_window_broadway_get_geometry;
   impl_class->get_root_coords = gdk_window_broadway_get_root_coords;
   impl_class->get_device_state = gdk_window_broadway_get_device_state;
diff --git a/gdk/broadway/gdkwindow-broadway.h b/gdk/broadway/gdkwindow-broadway.h
index 74a7705..5fe7c78 100644
--- a/gdk/broadway/gdkwindow-broadway.h
+++ b/gdk/broadway/gdkwindow-broadway.h
@@ -53,7 +53,6 @@ struct _GdkWindowImplBroadway
   cairo_surface_t *ref_surface;
 
   GdkCursor *cursor;
-  GHashTable *device_cursor;
 
   int id;
 
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index 35de69a..8c1e13e 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -4252,7 +4252,7 @@ gdk_window_set_cursor_internal (GdkWindow *window,
 
   if (window->window_type == GDK_WINDOW_ROOT ||
       window->window_type == GDK_WINDOW_FOREIGN)
-    GDK_WINDOW_IMPL_GET_CLASS (window->impl)->set_device_cursor (window, device, cursor);
+    GDK_DEVICE_GET_CLASS (device)->set_window_cursor (device, window, cursor);
   else
     {
       GdkPointerWindowInfo *pointer_info;
@@ -5136,7 +5136,6 @@ update_cursor (GdkDisplay *display,
 {
   GdkWindow *cursor_window, *parent, *toplevel;
   GdkWindow *pointer_window;
-  GdkWindowImplClass *impl_class;
   GdkPointerWindowInfo *pointer_info;
   GdkDeviceGrabInfo *grab;
   GdkCursor *cursor;
@@ -5177,8 +5176,7 @@ update_cursor (GdkDisplay *display,
   /* Set all cursors on toplevel, otherwise its tricky to keep track of
    * which native window has what cursor set. */
   toplevel = get_event_toplevel (pointer_window);
-  impl_class = GDK_WINDOW_IMPL_GET_CLASS (toplevel->impl);
-  impl_class->set_device_cursor (toplevel, device, cursor);
+  GDK_DEVICE_GET_CLASS (device)->set_window_cursor (device, toplevel, cursor);
 }
 
 static gboolean
diff --git a/gdk/gdkwindowimpl.h b/gdk/gdkwindowimpl.h
index 2c4e772..2477ad6 100644
--- a/gdk/gdkwindowimpl.h
+++ b/gdk/gdkwindowimpl.h
@@ -85,10 +85,6 @@ struct _GdkWindowImplClass
   void         (* set_events)           (GdkWindow       *window,
                                          GdkEventMask     event_mask);
 
-  void         (* set_device_cursor)    (GdkWindow       *window,
-                                         GdkDevice       *device,
-                                         GdkCursor       *cursor);
-
   void         (* get_geometry)         (GdkWindow       *window,
                                          gint            *x,
                                          gint            *y,
diff --git a/gdk/mir/gdkmirwindowimpl.c b/gdk/mir/gdkmirwindowimpl.c
index 075c3b0..1c55ce3 100644
--- a/gdk/mir/gdkmirwindowimpl.c
+++ b/gdk/mir/gdkmirwindowimpl.c
@@ -1268,27 +1268,6 @@ gdk_mir_window_impl_set_events (GdkWindow    *window,
 }
 
 static void
-gdk_mir_window_impl_set_device_cursor (GdkWindow *window,
-                                       GdkDevice *device,
-                                       GdkCursor *cursor)
-{
-  GdkMirWindowImpl *impl = GDK_MIR_WINDOW_IMPL (window->impl);
-  MirConnection *connection = gdk_mir_display_get_mir_connection (impl->display);
-  MirWindowSpec *spec;
-  const gchar *cursor_name;
-
-  if (cursor)
-    cursor_name = _gdk_mir_cursor_get_name (cursor);
-  else
-    cursor_name = mir_default_cursor_name;
-
-  spec = mir_create_window_spec (connection);
-  mir_window_spec_set_cursor_name (spec, cursor_name);
-  mir_window_apply_spec (impl->mir_window, spec);
-  mir_window_spec_release (spec);
-}
-
-static void
 gdk_mir_window_impl_get_geometry (GdkWindow *window,
                                   gint      *x,
                                   gint      *y,
@@ -2246,7 +2225,6 @@ gdk_mir_window_impl_class_init (GdkMirWindowImplClass *klass)
   impl_class->move_to_rect = gdk_mir_window_impl_move_to_rect;
   impl_class->get_events = gdk_mir_window_impl_get_events;
   impl_class->set_events = gdk_mir_window_impl_set_events;
-  impl_class->set_device_cursor = gdk_mir_window_impl_set_device_cursor;
   impl_class->get_geometry = gdk_mir_window_impl_get_geometry;
   impl_class->get_root_coords = gdk_mir_window_impl_get_root_coords;
   impl_class->get_device_state = gdk_mir_window_impl_get_device_state;
diff --git a/gdk/quartz/gdkwindow-quartz.c b/gdk/quartz/gdkwindow-quartz.c
index 2e266a7..429469b 100644
--- a/gdk/quartz/gdkwindow-quartz.c
+++ b/gdk/quartz/gdkwindow-quartz.c
@@ -1412,21 +1412,6 @@ gdk_window_quartz_restack_toplevel (GdkWindow *window,
 }
 
 static void
-gdk_window_quartz_set_device_cursor (GdkWindow *window,
-                                     GdkDevice *device,
-                                     GdkCursor *cursor)
-{
-  NSCursor *nscursor;
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  nscursor = _gdk_quartz_cursor_get_ns_cursor (cursor);
-
-  [nscursor set];
-}
-
-static void
 gdk_window_quartz_get_geometry (GdkWindow *window,
                                 gint      *x,
                                 gint      *y,
@@ -2780,7 +2765,6 @@ gdk_window_impl_quartz_class_init (GdkWindowImplQuartzClass *klass)
   impl_class->lower = gdk_window_quartz_lower;
   impl_class->restack_toplevel = gdk_window_quartz_restack_toplevel;
   impl_class->move_resize = gdk_window_quartz_move_resize;
-  impl_class->set_device_cursor = gdk_window_quartz_set_device_cursor;
   impl_class->get_geometry = gdk_window_quartz_get_geometry;
   impl_class->get_root_coords = gdk_window_quartz_get_root_coords;
   impl_class->get_device_state = gdk_window_quartz_get_device_state;
diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c
index ca7f54f..283b604 100644
--- a/gdk/wayland/gdkwindow-wayland.c
+++ b/gdk/wayland/gdkwindow-wayland.c
@@ -2709,18 +2709,6 @@ gdk_window_wayland_move_to_rect (GdkWindow          *window,
 }
 
 static void
-gdk_window_wayland_set_device_cursor (GdkWindow *window,
-                                      GdkDevice *device,
-                                      GdkCursor *cursor)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-  g_return_if_fail (GDK_IS_DEVICE (device));
-
-  if (!GDK_WINDOW_DESTROYED (window))
-    GDK_DEVICE_GET_CLASS (device)->set_window_cursor (device, window, cursor);
-}
-
-static void
 gdk_window_wayland_get_geometry (GdkWindow *window,
                                  gint      *x,
                                  gint      *y,
@@ -3683,7 +3671,6 @@ _gdk_window_impl_wayland_class_init (GdkWindowImplWaylandClass *klass)
   impl_class->restack_toplevel = gdk_window_wayland_restack_toplevel;
   impl_class->move_resize = gdk_window_wayland_move_resize;
   impl_class->move_to_rect = gdk_window_wayland_move_to_rect;
-  impl_class->set_device_cursor = gdk_window_wayland_set_device_cursor;
   impl_class->get_geometry = gdk_window_wayland_get_geometry;
   impl_class->get_root_coords = gdk_window_wayland_get_root_coords;
   impl_class->get_device_state = gdk_window_wayland_get_device_state;
diff --git a/gdk/win32/gdkwindow-win32.c b/gdk/win32/gdkwindow-win32.c
index d4c865c..0350a6c 100644
--- a/gdk/win32/gdkwindow-win32.c
+++ b/gdk/win32/gdkwindow-win32.c
@@ -192,7 +192,6 @@ gdk_window_impl_win32_init (GdkWindowImplWin32 *impl)
   GdkDisplay *display = gdk_display_get_default ();
 
   impl->toplevel_window_type = -1;
-  impl->cursor = NULL;
   impl->hicon_big = NULL;
   impl->hicon_small = NULL;
   impl->hint_flags = 0;
@@ -202,14 +201,6 @@ gdk_window_impl_win32_init (GdkWindowImplWin32 *impl)
   impl->num_transients = 0;
   impl->changing_state = FALSE;
   impl->window_scale = 1;
-
-  if (display != NULL)
-    /* Replace WM-defined default cursor with the default cursor
-     * from our theme. Otherwise newly-opened windows (such as popup
-     * menus of all kinds) will have WM-default cursor when they are
-     * first shown, which will be replaced by our cursor only later on.
-     */
-    impl->cursor = _gdk_win32_display_get_cursor_for_type (display, GDK_LEFT_PTR);
 }
 
 static void
@@ -229,8 +220,6 @@ gdk_window_impl_win32_finalize (GObject *object)
       gdk_win32_handle_table_remove (window_impl->handle);
     }
 
-  g_clear_object (&window_impl->cursor);
-
   g_clear_pointer (&window_impl->snap_stash, g_free);
   g_clear_pointer (&window_impl->snap_stash_int, g_free);
 
@@ -2004,46 +1993,6 @@ _gdk_modal_current (void)
 }
 
 static void
-gdk_win32_window_set_device_cursor (GdkWindow *window,
-                                    GdkDevice *device,
-                                    GdkCursor *cursor)
-{
-  GdkWindowImplWin32 *impl;
-  GdkCursor *previous_cursor;
-
-  impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  GDK_NOTE (MISC, g_print ("gdk_win32_window_set_cursor: %p: %p\n",
-                          GDK_WINDOW_HWND (window),
-                          cursor));
-
-  /* First get the old cursor, if any (we wait to free the old one
-   * since it may be the current cursor set in the Win32 API right
-   * now).
-   */
-  previous_cursor = impl->cursor;
-
-  if (cursor)
-    impl->cursor = g_object_ref (cursor);
-  else
-    /* Use default cursor otherwise. Don't just set NULL cursor,
-     * because that will just hide the cursor, which is not
-     * what the caller probably wanted.
-     */
-    impl->cursor = _gdk_win32_display_get_cursor_for_type (gdk_device_get_display (device),
-                                                           GDK_LEFT_PTR);
-
-  GDK_DEVICE_GET_CLASS (device)->set_window_cursor (device, window, impl->cursor);
-
-  /* Destroy the previous cursor */
-  if (previous_cursor != NULL)
-    g_object_unref (previous_cursor);
-}
-
-static void
 gdk_win32_window_get_geometry (GdkWindow *window,
                               gint      *x,
                               gint      *y,
diff --git a/gdk/win32/gdkwindow-win32.h b/gdk/win32/gdkwindow-win32.h
index 6e5f3d8..55928bc 100644
--- a/gdk/win32/gdkwindow-win32.h
+++ b/gdk/win32/gdkwindow-win32.h
@@ -232,7 +232,6 @@ struct _GdkWindowImplWin32
 
   gint8 toplevel_window_type;
 
-  GdkCursor *cursor;
   HICON   hicon_big;
   HICON   hicon_small;
 
diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c
index 09781ff..ddd08b1 100644
--- a/gdk/x11/gdkwindow-x11.c
+++ b/gdk/x11/gdkwindow-x11.c
@@ -152,8 +152,6 @@ G_DEFINE_TYPE (GdkWindowImplX11, gdk_window_impl_x11, GDK_TYPE_WINDOW_IMPL)
 static void
 gdk_window_impl_x11_init (GdkWindowImplX11 *impl)
 {  
-  impl->device_cursor = g_hash_table_new_full (NULL, NULL,
-                                               NULL, g_object_unref);
   impl->window_scale = 1;
   impl->frame_sync_enabled = TRUE;
 }
@@ -535,8 +533,6 @@ gdk_window_impl_x11_finalize (GObject *object)
   if (impl->cursor)
     g_object_unref (impl->cursor);
 
-  g_hash_table_destroy (impl->device_cursor);
-
   G_OBJECT_CLASS (gdk_window_impl_x11_parent_class)->finalize (object);
 }
 
@@ -2518,31 +2514,6 @@ gdk_x11_window_set_transient_for (GdkWindow *window,
                          GDK_WINDOW_XID (parent));
 }
 
-static void
-gdk_window_x11_set_device_cursor (GdkWindow *window,
-                                  GdkDevice *device,
-                                  GdkCursor *cursor)
-{
-  GdkWindowImplX11 *impl;
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-  g_return_if_fail (GDK_IS_DEVICE (device));
-
-  impl = GDK_WINDOW_IMPL_X11 (window->impl);
-
-  if (!cursor)
-    g_hash_table_remove (impl->device_cursor, device);
-  else
-    {
-      _gdk_x11_cursor_update_theme (cursor);
-      g_hash_table_replace (impl->device_cursor,
-                            device, g_object_ref (cursor));
-    }
-
-  if (!GDK_WINDOW_DESTROYED (window))
-    GDK_DEVICE_GET_CLASS (device)->set_window_cursor (device, window, cursor);
-}
-
 GdkCursor *
 _gdk_x11_window_get_cursor (GdkWindow *window)
 {
@@ -5032,7 +5003,6 @@ gdk_window_impl_x11_class_init (GdkWindowImplX11Class *klass)
   impl_class->lower = gdk_window_x11_lower;
   impl_class->restack_toplevel = gdk_window_x11_restack_toplevel;
   impl_class->move_resize = gdk_window_x11_move_resize;
-  impl_class->set_device_cursor = gdk_window_x11_set_device_cursor;
   impl_class->get_geometry = gdk_window_x11_get_geometry;
   impl_class->get_root_coords = gdk_window_x11_get_root_coords;
   impl_class->get_device_state = gdk_window_x11_get_device_state;
diff --git a/gdk/x11/gdkwindow-x11.h b/gdk/x11/gdkwindow-x11.h
index 7feaf9e..2199692 100644
--- a/gdk/x11/gdkwindow-x11.h
+++ b/gdk/x11/gdkwindow-x11.h
@@ -66,7 +66,6 @@ struct _GdkWindowImplX11
 
   GdkToplevelX11 *toplevel;    /* Toplevel-specific information */
   GdkCursor *cursor;
-  GHashTable *device_cursor;
 
   guint no_bg : 1;        /* Set when the window background is temporarily
                            * unset during resizing and scaling */


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