diff --git a/docs/reference/gdk/gdk4-sections.txt b/docs/reference/gdk/gdk4-sections.txt index ef7b38c1ad..a52b0badee 100644 --- a/docs/reference/gdk/gdk4-sections.txt +++ b/docs/reference/gdk/gdk4-sections.txt @@ -328,8 +328,6 @@ gdk_window_get_device_cursor gdk_window_set_device_cursor gdk_window_get_device_events gdk_window_set_device_events -gdk_window_get_source_events -gdk_window_set_source_events gdk_window_get_event_compression gdk_window_set_event_compression diff --git a/gdk/gdkinternals.h b/gdk/gdkinternals.h index 6ea7132c6e..15913d88ba 100644 --- a/gdk/gdkinternals.h +++ b/gdk/gdkinternals.h @@ -279,10 +279,6 @@ struct _GdkWindow GList *devices_inside; GHashTable *device_events; - GHashTable *source_event_masks; - gulong device_added_handler_id; - gulong device_changed_handler_id; - GdkFrameClock *frame_clock; /* NULL to use from parent or default */ GdkDrawingContext *drawing_context; diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index edb7d77467..31ff1e4ea0 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -381,9 +381,6 @@ gdk_window_finalize (GObject *object) if (window->device_events) g_hash_table_destroy (window->device_events); - if (window->source_event_masks) - g_hash_table_destroy (window->source_event_masks); - if (window->devices_inside) g_list_free (window->devices_inside); @@ -5546,147 +5543,6 @@ _gdk_display_set_window_under_pointer (GdkDisplay *display, } } -static void -source_events_device_added (GdkDeviceManager *device_manager, - GdkDevice *device, - gpointer user_data) -{ - GdkWindow *window; - GdkEventMask event_mask; - GdkInputSource source; - - if (gdk_device_get_device_type (device) != GDK_DEVICE_TYPE_FLOATING) - return; - - window = user_data; - source = gdk_device_get_source (device); - - event_mask = GPOINTER_TO_INT (g_hash_table_lookup (window->source_event_masks, - GINT_TO_POINTER (source))); - if (event_mask) - gdk_window_set_device_events (window, device, event_mask); -} - -static void -source_events_device_changed (GdkDeviceManager *device_manager, - GdkDevice *device, - gpointer user_data) -{ - GdkDeviceType type; - GdkInputSource source; - GdkEventMask event_mask; - GdkWindow *window; - - window = user_data; - type = gdk_device_get_device_type (device); - source = gdk_device_get_source (device); - - event_mask = GPOINTER_TO_INT (g_hash_table_lookup (window->source_event_masks, - GINT_TO_POINTER (source))); - - if (!event_mask) - return; - - if (type == GDK_DEVICE_TYPE_FLOATING) - { - /* The device was just floated, enable its event mask */ - gdk_window_set_device_events (window, device, event_mask); - } - else if (type == GDK_DEVICE_TYPE_SLAVE) - gdk_window_set_device_events (window, device, 0); -} - -/** - * gdk_window_set_source_events: - * @window: a #GdkWindow - * @source: a #GdkInputSource to define the source class. - * @event_mask: event mask for @window - * - * Sets the event mask for any floating device (i.e. not attached to any - * visible pointer) that has the source defined as @source. This event - * mask will be applied both to currently existing, newly added devices - * after this call, and devices being attached/detached. - * - * Since: 3.0 - **/ -void -gdk_window_set_source_events (GdkWindow *window, - GdkInputSource source, - GdkEventMask event_mask) -{ - GdkDeviceManager *device_manager; - GdkDisplay *display; - GList *devices, *d; - guint size; - - g_return_if_fail (GDK_IS_WINDOW (window)); - - G_GNUC_BEGIN_IGNORE_DEPRECATIONS; - display = gdk_window_get_display (window); - device_manager = gdk_display_get_device_manager (display); - - devices = gdk_device_manager_list_devices (device_manager, GDK_DEVICE_TYPE_FLOATING); - - /* Set event mask for existing devices */ - for (d = devices; d; d = d->next) - { - GdkDevice *device = d->data; - - if (source == gdk_device_get_source (device)) - gdk_window_set_device_events (window, device, event_mask); - } - - g_list_free (devices); - G_GNUC_END_IGNORE_DEPRECATIONS; - - /* Update accounting */ - if (G_UNLIKELY (!window->source_event_masks)) - window->source_event_masks = g_hash_table_new (NULL, NULL); - - if (event_mask) - g_hash_table_insert (window->source_event_masks, - GUINT_TO_POINTER (source), - GUINT_TO_POINTER (event_mask)); - else - g_hash_table_remove (window->source_event_masks, - GUINT_TO_POINTER (source)); - - size = g_hash_table_size (window->source_event_masks); - - /* Update handler if needed */ - if (!window->device_added_handler_id && size > 0) - { - window->device_added_handler_id = - g_signal_connect (device_manager, "device-added", - G_CALLBACK (source_events_device_added), window); - window->device_changed_handler_id = - g_signal_connect (device_manager, "device-changed", - G_CALLBACK (source_events_device_changed), window); - } - else if (window->device_added_handler_id && size == 0) - g_signal_handler_disconnect (device_manager, window->device_added_handler_id); -} - -/** - * gdk_window_get_source_events: - * @window: a #GdkWindow - * @source: a #GdkInputSource to define the source class. - * - * Returns the event mask for @window corresponding to the device class specified - * by @source. - * - * Returns: source event mask for @window - **/ -GdkEventMask -gdk_window_get_source_events (GdkWindow *window, - GdkInputSource source) -{ - g_return_val_if_fail (GDK_IS_WINDOW (window), 0); - - return GPOINTER_TO_UINT (g_hash_table_lookup (window->source_event_masks, - GUINT_TO_POINTER (source))); -} - #define GDK_ANY_BUTTON_MASK (GDK_BUTTON1_MASK | \ GDK_BUTTON2_MASK | \ GDK_BUTTON3_MASK | \ diff --git a/gdk/gdkwindow.h b/gdk/gdkwindow.h index a9fbb67995..a75d296121 100644 --- a/gdk/gdkwindow.h +++ b/gdk/gdkwindow.h @@ -714,14 +714,6 @@ GDK_AVAILABLE_IN_ALL GdkEventMask gdk_window_get_device_events (GdkWindow *window, GdkDevice *device); -GDK_AVAILABLE_IN_ALL -void gdk_window_set_source_events (GdkWindow *window, - GdkInputSource source, - GdkEventMask event_mask); -GDK_AVAILABLE_IN_ALL -GdkEventMask gdk_window_get_source_events (GdkWindow *window, - GdkInputSource source); - GDK_AVAILABLE_IN_ALL void gdk_window_set_icon_list (GdkWindow *window, GList *surfaces);