gdk: remove the display->list_devices vfunc
gdk_display_list_devices is deprecated and all the backends implement the same fallback by delegating to the device manager and caching the list (caching it is needed since the method does not transfer ownership of the container). The compat code can be shared among all backends and we can initialize the list lazily only in the case someone calls the deprecated method. https://bugzilla.gnome.org/show_bug.cgi?id=762891
This commit is contained in:
		| @ -66,42 +66,6 @@ gdk_event_init (GdkDisplay *display) | ||||
|   broadway_display->event_source = _gdk_broadway_event_source_new (display); | ||||
| } | ||||
|  | ||||
| static void | ||||
| gdk_broadway_display_init_input (GdkDisplay *display) | ||||
| { | ||||
|   GdkBroadwayDisplay *broadway_display; | ||||
|   GdkDeviceManager *device_manager; | ||||
|   GdkDevice *device; | ||||
|   GList *list, *l; | ||||
|  | ||||
|   broadway_display = GDK_BROADWAY_DISPLAY (display); | ||||
|   G_GNUC_BEGIN_IGNORE_DEPRECATIONS; | ||||
|   device_manager = gdk_display_get_device_manager (display); | ||||
|  | ||||
|   /* For backwards compatibility, just add | ||||
|    * floating devices that are not keyboards. | ||||
|    */ | ||||
|   list = gdk_device_manager_list_devices (device_manager, GDK_DEVICE_TYPE_FLOATING); | ||||
|  | ||||
|   for (l = list; l; l = l->next) | ||||
|     { | ||||
|       device = l->data; | ||||
|  | ||||
|       if (gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD) | ||||
|         continue; | ||||
|  | ||||
|       broadway_display->input_devices = g_list_prepend (broadway_display->input_devices, | ||||
|                                                    g_object_ref (l->data)); | ||||
|     } | ||||
|  | ||||
|   g_list_free (list); | ||||
|  | ||||
|   /* Add the core pointer to the devices list */ | ||||
|   broadway_display->input_devices = g_list_prepend (broadway_display->input_devices, | ||||
|                                                     g_object_ref (GDK_BROADWAY_DEVICE_MANAGER (device_manager)->core_pointer)); | ||||
|   G_GNUC_END_IGNORE_DEPRECATIONS; | ||||
| } | ||||
|  | ||||
| GdkDisplay * | ||||
| _gdk_broadway_display_open (const gchar *display_name) | ||||
| { | ||||
| @ -128,7 +92,6 @@ _gdk_broadway_display_open (const gchar *display_name) | ||||
|  | ||||
|   gdk_event_init (display); | ||||
|  | ||||
|   gdk_broadway_display_init_input (display); | ||||
|   _gdk_broadway_display_init_dnd (display); | ||||
|  | ||||
|   _gdk_broadway_screen_setup (broadway_display->screens[0]); | ||||
| @ -210,8 +173,6 @@ gdk_broadway_display_dispose (GObject *object) | ||||
| { | ||||
|   GdkBroadwayDisplay *broadway_display = GDK_BROADWAY_DISPLAY (object); | ||||
|  | ||||
|   g_list_foreach (broadway_display->input_devices, (GFunc) g_object_run_dispose, NULL); | ||||
|  | ||||
|   _gdk_screen_close (broadway_display->screens[0]); | ||||
|  | ||||
|   if (broadway_display->event_source) | ||||
| @ -235,8 +196,6 @@ gdk_broadway_display_finalize (GObject *object) | ||||
|  | ||||
|   _gdk_broadway_cursor_display_finalize (GDK_DISPLAY_OBJECT(broadway_display)); | ||||
|  | ||||
|   /* input GdkDevice list */ | ||||
|   g_list_free_full (broadway_display->input_devices, g_object_unref); | ||||
|   /* Free all GdkScreens */ | ||||
|   g_object_unref (broadway_display->screens[0]); | ||||
|   g_free (broadway_display->screens); | ||||
| @ -297,14 +256,6 @@ gdk_broadway_display_supports_composite (GdkDisplay *display) | ||||
|   return FALSE; | ||||
| } | ||||
|  | ||||
| static GList * | ||||
| gdk_broadway_display_list_devices (GdkDisplay *display) | ||||
| { | ||||
|   g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL); | ||||
|  | ||||
|   return GDK_BROADWAY_DISPLAY (display)->input_devices; | ||||
| } | ||||
|  | ||||
| static gulong | ||||
| gdk_broadway_display_get_next_serial (GdkDisplay *display) | ||||
| { | ||||
| @ -356,7 +307,6 @@ gdk_broadway_display_class_init (GdkBroadwayDisplayClass * class) | ||||
|   display_class->supports_shapes = gdk_broadway_display_supports_shapes; | ||||
|   display_class->supports_input_shapes = gdk_broadway_display_supports_input_shapes; | ||||
|   display_class->supports_composite = gdk_broadway_display_supports_composite; | ||||
|   display_class->list_devices = gdk_broadway_display_list_devices; | ||||
|   display_class->get_cursor_for_type = _gdk_broadway_display_get_cursor_for_type; | ||||
|   display_class->get_cursor_for_name = _gdk_broadway_display_get_cursor_for_name; | ||||
|   display_class->get_cursor_for_surface = _gdk_broadway_display_get_cursor_for_surface; | ||||
|  | ||||
| @ -50,10 +50,6 @@ struct _GdkBroadwayDisplay | ||||
|   /* drag and drop information */ | ||||
|   GdkDragContext *current_dest_drag; | ||||
|  | ||||
|   /* Input device */ | ||||
|   /* input GdkDevice list */ | ||||
|   GList *input_devices; | ||||
|  | ||||
|   /* The offscreen window that has the pointer in it (if any) */ | ||||
|   GdkWindow *active_offscreen_window; | ||||
|  | ||||
|  | ||||
| @ -293,6 +293,8 @@ gdk_display_dispose (GObject *object) | ||||
|   display->queued_events = NULL; | ||||
|   display->queued_tail = NULL; | ||||
|  | ||||
|   g_list_foreach (display->input_devices, (GFunc) g_object_run_dispose, NULL); | ||||
|  | ||||
|   if (device_manager) | ||||
|     { | ||||
|       /* this is to make it drop devices which may require using the X | ||||
| @ -321,6 +323,8 @@ gdk_display_finalize (GObject *object) | ||||
|   g_hash_table_destroy (display->pointers_info); | ||||
|   g_hash_table_destroy (display->multiple_click_info); | ||||
|  | ||||
|   g_list_free_full (display->input_devices, g_object_unref); | ||||
|  | ||||
|   if (display->device_manager) | ||||
|     g_object_unref (display->device_manager); | ||||
|  | ||||
| @ -1845,7 +1849,40 @@ gdk_display_list_devices (GdkDisplay *display) | ||||
| { | ||||
|   g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL); | ||||
|  | ||||
|   return GDK_DISPLAY_GET_CLASS (display)->list_devices (display); | ||||
|   if (!display->input_devices) | ||||
|     { | ||||
|       GdkDeviceManager *device_manager; | ||||
|       GdkDevice *device; | ||||
|       GList *list, *l; | ||||
|  | ||||
|       G_GNUC_BEGIN_IGNORE_DEPRECATIONS; | ||||
|       device_manager = gdk_display_get_device_manager (display); | ||||
|  | ||||
|       /* For backwards compatibility, just add | ||||
|        * floating devices that are not keyboards. | ||||
|        */ | ||||
|       list = gdk_device_manager_list_devices (device_manager, GDK_DEVICE_TYPE_FLOATING); | ||||
|  | ||||
|       for (l = list; l; l = l->next) | ||||
|         { | ||||
|           device = l->data; | ||||
|  | ||||
|           if (gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD) | ||||
|             continue; | ||||
|  | ||||
|           display->input_devices = g_list_prepend (display->input_devices, g_object_ref (l->data)); | ||||
|         } | ||||
|  | ||||
|       g_list_free (list); | ||||
|  | ||||
|       G_GNUC_END_IGNORE_DEPRECATIONS; | ||||
|  | ||||
|       /* Add the core pointer to the devices list */ | ||||
|       device = gdk_seat_get_pointer (gdk_display_get_default_seat (display)); | ||||
|       display->input_devices = g_list_prepend (display->input_devices, g_object_ref (device)); | ||||
|     } | ||||
|  | ||||
|   return display->input_devices; | ||||
| } | ||||
|  | ||||
| static GdkAppLaunchContext * | ||||
|  | ||||
| @ -111,6 +111,7 @@ struct _GdkDisplay | ||||
|   GHashTable *device_grabs; | ||||
|   GHashTable *motion_hint_info; | ||||
|   GdkDeviceManager *device_manager; | ||||
|   GList *input_devices; /* Deprecated, only used to keep gdk_display_list_devices working */ | ||||
|  | ||||
|   GHashTable *pointers_info;  /* GdkPointerWindowInfo for each device */ | ||||
|   guint32 last_event_time;    /* Last reported event time from server */ | ||||
| @ -175,7 +176,6 @@ struct _GdkDisplayClass | ||||
|                                                          gdouble          x, | ||||
|                                                          gdouble          y); | ||||
|  | ||||
|   GList *                    (*list_devices)       (GdkDisplay *display); | ||||
|   GdkAppLaunchContext *      (*get_app_launch_context) (GdkDisplay *display); | ||||
|  | ||||
|   void                       (*before_process_all_updates) (GdkDisplay *display); | ||||
|  | ||||
| @ -31,8 +31,6 @@ | ||||
| struct _GdkQuartzDisplay | ||||
| { | ||||
|   GdkDisplay display; | ||||
|  | ||||
|   GList *input_devices; | ||||
| }; | ||||
|  | ||||
| struct _GdkQuartzDisplayClass | ||||
| @ -58,39 +56,6 @@ _gdk_device_manager_new (GdkDisplay *display) | ||||
|                        NULL); | ||||
| } | ||||
|  | ||||
| static void | ||||
| gdk_quartz_display_init_input (GdkDisplay *display) | ||||
| { | ||||
|   GdkQuartzDisplay *display_quartz; | ||||
|   GdkDeviceManager *device_manager; | ||||
|   GList *list, *l; | ||||
|  | ||||
|   display_quartz = GDK_QUARTZ_DISPLAY (display); | ||||
|   device_manager = gdk_display_get_device_manager (_gdk_display); | ||||
|  | ||||
|   /* For backwards compabitility, just add floating devices that are | ||||
|    * not keyboards. | ||||
|    */ | ||||
|   list = gdk_device_manager_list_devices (device_manager, | ||||
|                                           GDK_DEVICE_TYPE_FLOATING); | ||||
|   for (l = list; l; l = l->next) | ||||
|     { | ||||
|       GdkDevice *device = l->data; | ||||
|  | ||||
|       if (gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD) | ||||
|         continue; | ||||
|  | ||||
|       display_quartz->input_devices = g_list_prepend (display_quartz->input_devices, | ||||
|                                                       g_object_ref (l->data)); | ||||
|     } | ||||
|  | ||||
|   g_list_free (list); | ||||
|  | ||||
|   /* Add the core pointer to the devices list */ | ||||
|   display_quartz->input_devices = g_list_prepend (display_quartz->input_devices, | ||||
|                                                   g_object_ref (GDK_QUARTZ_DEVICE_MANAGER_CORE (device_manager)->core_pointer)); | ||||
| } | ||||
|  | ||||
| GdkDisplay * | ||||
| _gdk_quartz_display_open (const gchar *display_name) | ||||
| { | ||||
| @ -110,8 +75,6 @@ _gdk_quartz_display_open (const gchar *display_name) | ||||
|  | ||||
|   _gdk_quartz_events_init (); | ||||
|  | ||||
|   gdk_quartz_display_init_input (_gdk_display); | ||||
|  | ||||
| #if 0 | ||||
|   /* FIXME: Remove the #if 0 when we have these functions */ | ||||
|   _gdk_quartz_dnd_init (); | ||||
| @ -220,14 +183,6 @@ gdk_quartz_display_supports_composite (GdkDisplay *display) | ||||
|   return FALSE; | ||||
| } | ||||
|  | ||||
| static GList * | ||||
| gdk_quartz_display_list_devices (GdkDisplay *display) | ||||
| { | ||||
|   g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL); | ||||
|  | ||||
|   return GDK_QUARTZ_DISPLAY (display)->input_devices; | ||||
| } | ||||
|  | ||||
| static gulong | ||||
| gdk_quartz_display_get_next_serial (GdkDisplay *display) | ||||
| { | ||||
| @ -254,9 +209,6 @@ gdk_quartz_display_dispose (GObject *object) | ||||
| { | ||||
|   GdkQuartzDisplay *display_quartz = GDK_QUARTZ_DISPLAY (object); | ||||
|  | ||||
|   g_list_foreach (display_quartz->input_devices, | ||||
|                   (GFunc) g_object_run_dispose, NULL); | ||||
|  | ||||
|   G_OBJECT_CLASS (gdk_quartz_display_parent_class)->dispose (object); | ||||
| } | ||||
|  | ||||
| @ -265,8 +217,6 @@ gdk_quartz_display_finalize (GObject *object) | ||||
| { | ||||
|   GdkQuartzDisplay *display_quartz = GDK_QUARTZ_DISPLAY (object); | ||||
|  | ||||
|   g_list_free_full (display_quartz->input_devices, g_object_unref); | ||||
|  | ||||
|   G_OBJECT_CLASS (gdk_quartz_display_parent_class)->finalize (object); | ||||
| } | ||||
|  | ||||
| @ -296,7 +246,6 @@ gdk_quartz_display_class_init (GdkQuartzDisplayClass *class) | ||||
|   display_class->supports_shapes = gdk_quartz_display_supports_shapes; | ||||
|   display_class->supports_input_shapes = gdk_quartz_display_supports_input_shapes; | ||||
|   display_class->supports_composite = gdk_quartz_display_supports_composite; | ||||
|   display_class->list_devices = gdk_quartz_display_list_devices; | ||||
|   display_class->get_cursor_for_type = _gdk_quartz_display_get_cursor_for_type; | ||||
|   display_class->get_cursor_for_name = _gdk_quartz_display_get_cursor_for_name; | ||||
|   display_class->get_cursor_for_surface = _gdk_quartz_display_get_cursor_for_surface; | ||||
|  | ||||
| @ -105,18 +105,6 @@ _gdk_wayland_display_async_roundtrip (GdkWaylandDisplay *display_wayland) | ||||
|     g_list_append (display_wayland->async_roundtrips, callback); | ||||
| } | ||||
|  | ||||
| static void | ||||
| gdk_input_init (GdkDisplay *display) | ||||
| { | ||||
|   GdkWaylandDisplay *display_wayland; | ||||
|  | ||||
|   display_wayland = GDK_WAYLAND_DISPLAY (display); | ||||
|  | ||||
|   /* Add the core pointer to the devices list */ | ||||
|   display_wayland->input_devices = g_list_prepend (display_wayland->input_devices, | ||||
|                                                    gdk_seat_get_pointer (gdk_display_get_default_seat (display))); | ||||
| } | ||||
|  | ||||
| static void | ||||
| xdg_shell_ping (void             *data, | ||||
|                 struct xdg_shell *xdg_shell, | ||||
| @ -463,8 +451,6 @@ _gdk_wayland_display_open (const gchar *display_name) | ||||
|       return NULL; | ||||
|     } | ||||
|  | ||||
|   gdk_input_init (display); | ||||
|  | ||||
|   display_wayland->selection = gdk_wayland_selection_new (); | ||||
|  | ||||
|   g_signal_emit_by_name (display, "opened"); | ||||
| @ -477,9 +463,6 @@ gdk_wayland_display_dispose (GObject *object) | ||||
| { | ||||
|   GdkWaylandDisplay *display_wayland = GDK_WAYLAND_DISPLAY (object); | ||||
|  | ||||
|   g_list_foreach (display_wayland->input_devices, | ||||
| 		  (GFunc) g_object_run_dispose, NULL); | ||||
|  | ||||
|   _gdk_screen_close (display_wayland->screen); | ||||
|  | ||||
|   if (display_wayland->event_source) | ||||
| @ -515,9 +498,6 @@ gdk_wayland_display_finalize (GObject *object) | ||||
|  | ||||
|   _gdk_wayland_display_finalize_cursors (display_wayland); | ||||
|  | ||||
|   /* input GdkDevice list */ | ||||
|   g_list_free_full (display_wayland->input_devices, g_object_unref); | ||||
|  | ||||
|   g_object_unref (display_wayland->screen); | ||||
|  | ||||
|   g_free (display_wayland->startup_notification_id); | ||||
| @ -652,14 +632,6 @@ gdk_wayland_display_supports_composite (GdkDisplay *display) | ||||
|   return FALSE; | ||||
| } | ||||
|  | ||||
| static GList * | ||||
| gdk_wayland_display_list_devices (GdkDisplay *display) | ||||
| { | ||||
|   g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL); | ||||
|  | ||||
|   return GDK_WAYLAND_DISPLAY (display)->input_devices; | ||||
| } | ||||
|  | ||||
| static void | ||||
| gdk_wayland_display_before_process_all_updates (GdkDisplay *display) | ||||
| { | ||||
| @ -761,7 +733,6 @@ gdk_wayland_display_class_init (GdkWaylandDisplayClass *class) | ||||
|   display_class->supports_shapes = gdk_wayland_display_supports_shapes; | ||||
|   display_class->supports_input_shapes = gdk_wayland_display_supports_input_shapes; | ||||
|   display_class->supports_composite = gdk_wayland_display_supports_composite; | ||||
|   display_class->list_devices = gdk_wayland_display_list_devices; | ||||
|   display_class->get_app_launch_context = _gdk_wayland_display_get_app_launch_context; | ||||
|   display_class->get_default_cursor_size = _gdk_wayland_display_get_default_cursor_size; | ||||
|   display_class->get_maximal_cursor_size = _gdk_wayland_display_get_maximal_cursor_size; | ||||
|  | ||||
| @ -54,9 +54,6 @@ struct _GdkWaylandDisplay | ||||
|   GdkDisplay parent_instance; | ||||
|   GdkScreen *screen; | ||||
|  | ||||
|   /* input GdkDevice list */ | ||||
|   GList *input_devices; | ||||
|  | ||||
|   /* Startup notification */ | ||||
|   gchar *startup_notification_id; | ||||
|  | ||||
|  | ||||
| @ -29,33 +29,6 @@ | ||||
|  | ||||
| static int debug_indent = 0; | ||||
|  | ||||
| static GList * | ||||
| gdk_win32_display_list_devices (GdkDisplay *display) | ||||
| { | ||||
|   g_return_val_if_fail (display == gdk_display_get_default (), NULL); | ||||
|  | ||||
|   return GDK_WIN32_DISPLAY (display)->input_devices; | ||||
| } | ||||
|  | ||||
| static void | ||||
| _gdk_input_init (GdkDisplay *display) | ||||
| { | ||||
|   GdkDeviceManagerWin32 *device_manager; | ||||
|   GList *devices; | ||||
|  | ||||
|   _gdk_input_ignore_core = FALSE; | ||||
|  | ||||
|   device_manager = g_object_new (GDK_TYPE_DEVICE_MANAGER_WIN32, | ||||
|                                  "display", display, | ||||
|                                  NULL); | ||||
|   display->device_manager = GDK_DEVICE_MANAGER (device_manager); | ||||
|  | ||||
|   devices = g_list_copy (device_manager->wintab_devices); | ||||
|   devices = g_list_prepend (devices, device_manager->core_pointer); | ||||
|  | ||||
|   GDK_WIN32_DISPLAY (display)->input_devices = devices; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * gdk_win32_display_set_cursor_theme: | ||||
|  * @display: (type GdkWin32Display): a #GdkDisplay | ||||
| @ -260,7 +233,13 @@ _gdk_win32_display_open (const gchar *display_name) | ||||
|   win32_display->screen = g_object_new (GDK_TYPE_WIN32_SCREEN, NULL); | ||||
|  | ||||
|   _gdk_events_init (); | ||||
|   _gdk_input_init (_gdk_display); | ||||
|  | ||||
|   _gdk_input_ignore_core = FALSE; | ||||
|  | ||||
|   _gdk_display->device_manager = g_object_new (GDK_TYPE_DEVICE_MANAGER_WIN32, | ||||
|                                                "display", _gdk_display, | ||||
|                                                NULL); | ||||
|  | ||||
|   _gdk_dnd_init (); | ||||
|  | ||||
|   /* Precalculate display name */ | ||||
| @ -648,8 +627,6 @@ gdk_win32_display_finalize (GObject *object) | ||||
| { | ||||
|   GdkWin32Display *display_win32 = GDK_WIN32_DISPLAY (object); | ||||
|  | ||||
|   g_list_free (display_win32->input_devices); | ||||
|  | ||||
|   _gdk_win32_display_finalize_cursors (display_win32); | ||||
|   _gdk_win32_dnd_exit (); | ||||
|  | ||||
| @ -717,7 +694,6 @@ gdk_win32_display_class_init (GdkWin32DisplayClass *klass) | ||||
|   display_class->supports_input_shapes = gdk_win32_display_supports_input_shapes; | ||||
|   display_class->supports_composite = gdk_win32_display_supports_composite; | ||||
|  | ||||
|   display_class->list_devices = gdk_win32_display_list_devices; | ||||
|   //? display_class->get_app_launch_context = _gdk_win32_display_get_app_launch_context; | ||||
|   display_class->get_cursor_for_type = _gdk_win32_display_get_cursor_for_type; | ||||
|   display_class->get_cursor_for_name = _gdk_win32_display_get_cursor_for_name; | ||||
|  | ||||
| @ -28,8 +28,6 @@ struct _GdkWin32Display | ||||
|  | ||||
|   GdkScreen *screen; | ||||
|  | ||||
|   GList *input_devices; | ||||
|  | ||||
|   Win32CursorTheme *cursor_theme; | ||||
|   gchar *cursor_theme_name; | ||||
|   int cursor_theme_size; | ||||
|  | ||||
| @ -1337,42 +1337,6 @@ gdk_event_init (GdkDisplay *display) | ||||
|   G_GNUC_END_IGNORE_DEPRECATIONS; | ||||
| } | ||||
|  | ||||
| static void | ||||
| gdk_x11_display_init_input (GdkDisplay *display) | ||||
| { | ||||
|   GdkX11Display *display_x11; | ||||
|   GdkDeviceManager *device_manager; | ||||
|   GdkDevice *device; | ||||
|   GList *list, *l; | ||||
|  | ||||
|   display_x11 = GDK_X11_DISPLAY (display); | ||||
|  | ||||
|   G_GNUC_BEGIN_IGNORE_DEPRECATIONS; | ||||
|   device_manager = gdk_display_get_device_manager (display); | ||||
|  | ||||
|   /* For backwards compatibility, just add | ||||
|    * floating devices that are not keyboards. | ||||
|    */ | ||||
|   list = gdk_device_manager_list_devices (device_manager, GDK_DEVICE_TYPE_FLOATING); | ||||
|   G_GNUC_END_IGNORE_DEPRECATIONS; | ||||
|  | ||||
|   for (l = list; l; l = l->next) | ||||
|     { | ||||
|       device = l->data; | ||||
|  | ||||
|       if (gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD) | ||||
|         continue; | ||||
|  | ||||
|       display_x11->input_devices = g_list_prepend (display_x11->input_devices, | ||||
|                                                    g_object_ref (l->data)); | ||||
|     } | ||||
|  | ||||
|   g_list_free (list); | ||||
|  | ||||
|   display_x11->input_devices = g_list_prepend (display_x11->input_devices, | ||||
|                                                g_object_ref (gdk_seat_get_pointer (gdk_display_get_default_seat (display)))); | ||||
| } | ||||
|  | ||||
| static void | ||||
| set_sm_client_id (GdkDisplay  *display, | ||||
|                   const gchar *sm_client_id) | ||||
| @ -1639,8 +1603,6 @@ _gdk_x11_display_open (const gchar *display_name) | ||||
|   } | ||||
| #endif | ||||
|  | ||||
|   gdk_x11_display_init_input (display); | ||||
|  | ||||
|   _gdk_x11_screen_setup (display_x11->screen); | ||||
|  | ||||
|   g_signal_emit_by_name (display, "opened"); | ||||
| @ -1898,8 +1860,6 @@ gdk_x11_display_dispose (GObject *object) | ||||
| { | ||||
|   GdkX11Display *display_x11 = GDK_X11_DISPLAY (object); | ||||
|  | ||||
|   g_list_foreach (display_x11->input_devices, (GFunc) g_object_run_dispose, NULL); | ||||
|  | ||||
|   _gdk_screen_close (display_x11->screen); | ||||
|  | ||||
|   if (display_x11->event_source) | ||||
| @ -1936,9 +1896,6 @@ gdk_x11_display_finalize (GObject *object) | ||||
|   /* List of event window extraction functions */ | ||||
|   g_slist_free_full (display_x11->event_types, g_free); | ||||
|  | ||||
|   /* input GdkDevice list */ | ||||
|   g_list_free_full (display_x11->input_devices, g_object_unref); | ||||
|  | ||||
|   /* input GdkWindow list */ | ||||
|   g_list_free_full (display_x11->input_windows, g_free); | ||||
|  | ||||
| @ -2497,14 +2454,6 @@ gdk_x11_display_supports_composite (GdkDisplay *display) | ||||
| 	 x11_display->have_xfixes; | ||||
| } | ||||
|  | ||||
| static GList * | ||||
| gdk_x11_display_list_devices (GdkDisplay *display) | ||||
| { | ||||
|   g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL); | ||||
|  | ||||
|   return GDK_X11_DISPLAY (display)->input_devices; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * gdk_x11_register_standard_event_type: | ||||
|  * @display: (type GdkX11Display): a #GdkDisplay | ||||
| @ -2981,7 +2930,6 @@ gdk_x11_display_class_init (GdkX11DisplayClass * class) | ||||
|   display_class->supports_shapes = gdk_x11_display_supports_shapes; | ||||
|   display_class->supports_input_shapes = gdk_x11_display_supports_input_shapes; | ||||
|   display_class->supports_composite = gdk_x11_display_supports_composite; | ||||
|   display_class->list_devices = gdk_x11_display_list_devices; | ||||
|   display_class->get_app_launch_context = _gdk_x11_display_get_app_launch_context; | ||||
|   display_class->get_cursor_for_type = _gdk_x11_display_get_cursor_for_type; | ||||
|   display_class->get_cursor_for_name = _gdk_x11_display_get_cursor_for_name; | ||||
|  | ||||
| @ -97,10 +97,6 @@ struct _GdkX11Display | ||||
|   /* translation queue */ | ||||
|   GQueue *translate_queue; | ||||
|  | ||||
|   /* Input device */ | ||||
|   /* input GdkDevice list */ | ||||
|   GList *input_devices; | ||||
|  | ||||
|   /* input GdkWindow list */ | ||||
|   GList *input_windows; | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Paolo Borelli
					Paolo Borelli