From a1cee7fa659f001d964e3910043af677a894a66d Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Thu, 14 Jun 2018 04:13:59 +0200 Subject: [PATCH] surface: Kill event masks In particular, this patch removes: gdk_surface_get_events() gdk_surface_set_events() gdk_surface_get_device_events() gdk_surface_set_device_events() Event masks so far still exist for grabs. --- docs/reference/gdk/gdk4-sections.txt | 4 - docs/reference/gtk/input-handling.xml | 35 ----- gdk/broadway/gdkdevice-broadway.c | 10 -- gdk/broadway/gdkprivate-broadway.h | 1 - gdk/broadway/gdksurface-broadway.c | 31 +--- gdk/gdkdeviceprivate.h | 3 - gdk/gdkdisplay.c | 16 +- gdk/gdkdisplayprivate.h | 4 +- gdk/gdkinternals.h | 2 - gdk/gdksurface.c | 201 +------------------------- gdk/gdksurface.h | 13 -- gdk/gdksurfaceimpl.h | 4 - gdk/quartz/gdkdevice-core-quartz.c | 11 -- gdk/quartz/gdkdisplay-quartz.h | 1 - gdk/quartz/gdksurface-quartz.c | 19 --- gdk/wayland/gdkdevice-wayland.c | 8 - gdk/wayland/gdkprivate-wayland.h | 1 - gdk/wayland/gdksurface-wayland.c | 19 --- gdk/win32/gdkdevice-virtual.c | 8 - gdk/win32/gdkdevice-win32.c | 8 - gdk/win32/gdkdevice-wintab.c | 8 - gdk/win32/gdkdevicemanager-win32.c | 36 ----- gdk/win32/gdkevents-win32.c | 171 ++++------------------ gdk/win32/gdkprivate-win32.h | 1 - gdk/win32/gdksurface-win32.c | 35 ----- gdk/win32/gdksurface-win32.h | 2 - gdk/x11/gdkdevice-core-x11.c | 52 ------- gdk/x11/gdkdevice-xi2.c | 29 ---- gdk/x11/gdkprivate-x11.h | 1 - gdk/x11/gdksurface-x11.c | 70 +-------- gtk/gtktreeview.c | 7 - gtk/gtkwindow.c | 6 - 32 files changed, 48 insertions(+), 769 deletions(-) diff --git a/docs/reference/gdk/gdk4-sections.txt b/docs/reference/gdk/gdk4-sections.txt index 70e5d90c17..72f4afb27b 100644 --- a/docs/reference/gdk/gdk4-sections.txt +++ b/docs/reference/gdk/gdk4-sections.txt @@ -282,8 +282,6 @@ gdk_surface_get_toplevel gdk_surface_get_children gdk_surface_get_children_with_user_data gdk_surface_peek_children -gdk_surface_get_events -gdk_surface_set_events gdk_surface_set_icon_name gdk_surface_set_transient_for gdk_surface_set_role @@ -301,8 +299,6 @@ gdk_surface_get_support_multidevice gdk_surface_set_support_multidevice gdk_surface_get_device_cursor gdk_surface_set_device_cursor -gdk_surface_get_device_events -gdk_surface_set_device_events gdk_surface_coords_from_parent diff --git a/docs/reference/gtk/input-handling.xml b/docs/reference/gtk/input-handling.xml index 73599bc19d..5281d35dc8 100644 --- a/docs/reference/gtk/input-handling.xml +++ b/docs/reference/gtk/input-handling.xml @@ -179,41 +179,6 @@ - - Event masks - - - Each widget instance has a basic event mask and another per input device, - which determine the types of input event it receives. Each event mask set - on a widget is added to the corresponding (basic or per-device) event mask - for the widget’s #GdkSurface, and all child #GdkSurfaces. - - - - Filtering events against event masks happens inside #GdkSurface, which - exposes event masks to the windowing system to reduce the number of events - GDK receives from it. On receiving an event, it is filtered against the - #GdkSurface’s mask for the input device, if set. Otherwise, it is filtered - against the #GdkSurface’s basic event mask. - - - - This means that widgets must add to the event mask for each event type - they expect to receive, using gtk_widget_set_events() or - gtk_widget_add_events() to preserve the existing mask. Widgets which are - aware of floating devices should use gtk_widget_set_device_events() or - gtk_widget_add_device_events(), and must explicitly enable the device - using gtk_widget_set_device_enabled(). See the #GdkDeviceManager - documentation for more information. - - - - All standard widgets set the event mask for all events they expect to - receive, and it is not necessary to modify this. Masks should be set when - implementing a new widget. - - - Touch events diff --git a/gdk/broadway/gdkdevice-broadway.c b/gdk/broadway/gdkdevice-broadway.c index fa2543984e..563002c704 100644 --- a/gdk/broadway/gdkdevice-broadway.c +++ b/gdk/broadway/gdkdevice-broadway.c @@ -61,9 +61,6 @@ static GdkSurface * gdk_broadway_device_surface_at_position (GdkDevice *de gdouble *win_y, GdkModifierType *mask, gboolean get_toplevel); -static void gdk_broadway_device_select_surface_events (GdkDevice *device, - GdkSurface *surface, - GdkEventMask event_mask); G_DEFINE_TYPE (GdkBroadwayDevice, gdk_broadway_device, GDK_TYPE_DEVICE) @@ -81,7 +78,6 @@ gdk_broadway_device_class_init (GdkBroadwayDeviceClass *klass) device_class->grab = gdk_broadway_device_grab; device_class->ungrab = gdk_broadway_device_ungrab; device_class->surface_at_position = gdk_broadway_device_surface_at_position; - device_class->select_surface_events = gdk_broadway_device_select_surface_events; } static void @@ -325,9 +321,3 @@ gdk_broadway_device_surface_at_position (GdkDevice *device, return surface; } -static void -gdk_broadway_device_select_surface_events (GdkDevice *device, - GdkSurface *surface, - GdkEventMask event_mask) -{ -} diff --git a/gdk/broadway/gdkprivate-broadway.h b/gdk/broadway/gdkprivate-broadway.h index bfca42173a..737bb9ed8c 100644 --- a/gdk/broadway/gdkprivate-broadway.h +++ b/gdk/broadway/gdkprivate-broadway.h @@ -101,7 +101,6 @@ void _gdk_broadway_display_get_maximal_cursor_size (GdkDisplay *display, void _gdk_broadway_display_create_surface_impl (GdkDisplay *display, GdkSurface *surface, GdkSurface *real_parent, - GdkEventMask event_mask, GdkSurfaceAttr *attributes); gint _gdk_broadway_display_text_property_to_utf8_list (GdkDisplay *display, GdkAtom encoding, diff --git a/gdk/broadway/gdksurface-broadway.c b/gdk/broadway/gdksurface-broadway.c index 6907f25cda..cdacb5d0fc 100644 --- a/gdk/broadway/gdksurface-broadway.c +++ b/gdk/broadway/gdksurface-broadway.c @@ -207,7 +207,6 @@ void _gdk_broadway_display_create_surface_impl (GdkDisplay *display, GdkSurface *surface, GdkSurface *real_parent, - GdkEventMask event_mask, GdkSurfaceAttr *attributes) { GdkSurfaceImplBroadway *impl; @@ -323,10 +322,9 @@ gdk_surface_broadway_show (GdkSurface *surface, impl = GDK_SURFACE_IMPL_BROADWAY (surface->impl); impl->visible = TRUE; - if (surface->event_mask & GDK_STRUCTURE_MASK) - _gdk_make_event (GDK_SURFACE (surface), GDK_MAP, NULL, FALSE); + _gdk_make_event (GDK_SURFACE (surface), GDK_MAP, NULL, FALSE); - if (surface->parent && surface->parent->event_mask & GDK_SUBSTRUCTURE_MASK) + if (surface->parent) _gdk_make_event (GDK_SURFACE (surface), GDK_MAP, NULL, FALSE); broadway_display = GDK_BROADWAY_DISPLAY (gdk_surface_get_display (surface)); @@ -344,10 +342,9 @@ gdk_surface_broadway_hide (GdkSurface *surface) impl = GDK_SURFACE_IMPL_BROADWAY (surface->impl); impl->visible = FALSE; - if (surface->event_mask & GDK_STRUCTURE_MASK) - _gdk_make_event (GDK_SURFACE (surface), GDK_UNMAP, NULL, FALSE); + _gdk_make_event (GDK_SURFACE (surface), GDK_UNMAP, NULL, FALSE); - if (surface->parent && surface->parent->event_mask & GDK_SUBSTRUCTURE_MASK) + if (surface->parent) _gdk_make_event (GDK_SURFACE (surface), GDK_UNMAP, NULL, FALSE); broadway_display = GDK_BROADWAY_DISPLAY (gdk_surface_get_display (surface)); @@ -620,24 +617,6 @@ gdk_surface_broadway_get_device_state (GdkSurface *surface, return child != NULL; } -static GdkEventMask -gdk_surface_broadway_get_events (GdkSurface *surface) -{ - if (GDK_SURFACE_DESTROYED (surface)) - return 0; - - return 0; -} - -static void -gdk_surface_broadway_set_events (GdkSurface *surface, - GdkEventMask event_mask) -{ - if (!GDK_SURFACE_DESTROYED (surface)) - { - } -} - static void gdk_surface_broadway_input_shape_combine_region (GdkSurface *surface, const cairo_region_t *shape_region, @@ -1359,8 +1338,6 @@ gdk_surface_impl_broadway_class_init (GdkSurfaceImplBroadwayClass *klass) impl_class->show = gdk_surface_broadway_show; impl_class->hide = gdk_surface_broadway_hide; impl_class->withdraw = gdk_surface_broadway_withdraw; - impl_class->set_events = gdk_surface_broadway_set_events; - impl_class->get_events = gdk_surface_broadway_get_events; impl_class->raise = gdk_surface_broadway_raise; impl_class->lower = gdk_surface_broadway_lower; impl_class->restack_toplevel = gdk_surface_broadway_restack_toplevel; diff --git a/gdk/gdkdeviceprivate.h b/gdk/gdkdeviceprivate.h index 33a890bd65..0fef98bb00 100644 --- a/gdk/gdkdeviceprivate.h +++ b/gdk/gdkdeviceprivate.h @@ -112,9 +112,6 @@ struct _GdkDeviceClass double *win_y, GdkModifierType *mask, gboolean get_toplevel); - void (* select_surface_events) (GdkDevice *device, - GdkSurface *surface, - GdkEventMask event_mask); }; void _gdk_device_set_associated_device (GdkDevice *device, diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c index 038af19eaa..cbd26c549b 100644 --- a/gdk/gdkdisplay.c +++ b/gdk/gdkdisplay.c @@ -1311,17 +1311,15 @@ _gdk_display_event_data_free (GdkDisplay *display, } void -_gdk_display_create_surface_impl (GdkDisplay *display, - GdkSurface *surface, - GdkSurface *real_parent, - GdkEventMask event_mask, - GdkSurfaceAttr *attributes) +gdk_display_create_surface_impl (GdkDisplay *display, + GdkSurface *surface, + GdkSurface *real_parent, + GdkSurfaceAttr *attributes) { GDK_DISPLAY_GET_CLASS (display)->create_surface_impl (display, - surface, - real_parent, - event_mask, - attributes); + surface, + real_parent, + attributes); } GdkSurface * diff --git a/gdk/gdkdisplayprivate.h b/gdk/gdkdisplayprivate.h index ac873281b5..4ff56f93c5 100644 --- a/gdk/gdkdisplayprivate.h +++ b/gdk/gdkdisplayprivate.h @@ -144,7 +144,6 @@ struct _GdkDisplayClass void (*create_surface_impl) (GdkDisplay *display, GdkSurface *surface, GdkSurface *real_parent, - GdkEventMask event_mask, GdkSurfaceAttr *attributes); GdkKeymap * (*get_keymap) (GdkDisplay *display); @@ -231,10 +230,9 @@ void _gdk_display_event_data_copy (GdkDisplay *display GdkEvent *new_event); void _gdk_display_event_data_free (GdkDisplay *display, GdkEvent *event); -void _gdk_display_create_surface_impl (GdkDisplay *display, +void gdk_display_create_surface_impl (GdkDisplay *display, GdkSurface *surface, GdkSurface *real_parent, - GdkEventMask event_mask, GdkSurfaceAttr *attributes); GdkSurface * _gdk_display_create_surface (GdkDisplay *display); diff --git a/gdk/gdkinternals.h b/gdk/gdkinternals.h index ab985288b4..f77ed09e6f 100644 --- a/gdk/gdkinternals.h +++ b/gdk/gdkinternals.h @@ -150,7 +150,6 @@ struct _GdkSurface gint x; gint y; - GdkEventMask event_mask; guint8 surface_type; guint8 resize_count; @@ -206,7 +205,6 @@ struct _GdkSurface cairo_region_t *input_shape; GList *devices_inside; - GHashTable *device_events; GdkFrameClock *frame_clock; /* NULL to use from parent or default */ diff --git a/gdk/gdksurface.c b/gdk/gdksurface.c index 323e5069f9..27d7b3cb95 100644 --- a/gdk/gdksurface.c +++ b/gdk/gdksurface.c @@ -321,9 +321,6 @@ seat_removed_cb (GdkDisplay *display, surface->devices_inside = g_list_remove (surface->devices_inside, device); g_hash_table_remove (surface->device_cursor, device); - - if (surface->device_events) - g_hash_table_remove (surface->device_events, device); } static void @@ -369,9 +366,6 @@ gdk_surface_finalize (GObject *object) if (surface->device_cursor) g_hash_table_destroy (surface->device_cursor); - if (surface->device_events) - g_hash_table_destroy (surface->device_events); - if (surface->devices_inside) g_list_free (surface->devices_inside); @@ -601,45 +595,6 @@ _gdk_surface_update_size (GdkSurface *surface) recompute_visible_regions (surface, FALSE); } -static GdkEventMask -get_native_device_event_mask (GdkSurface *private, - GdkDevice *device) -{ - GdkEventMask event_mask; - - if (device) - event_mask = GPOINTER_TO_INT (g_hash_table_lookup (private->device_events, device)); - else - event_mask = private->event_mask; - - if (private->surface_type == GDK_SURFACE_FOREIGN) - return event_mask; - else - { - GdkEventMask mask; - - mask = private->event_mask; - - /* We need thse for all native surfaces so we can - emulate events on children: */ - mask |= - GDK_EXPOSURE_MASK | - GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | - GDK_TOUCH_MASK | - GDK_POINTER_MOTION_MASK | - GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | - GDK_SCROLL_MASK; - - return mask; - } -} - -static GdkEventMask -get_native_event_mask (GdkSurface *private) -{ - return get_native_device_event_mask (private, NULL); -} - GdkSurface* gdk_surface_new (GdkDisplay *display, GdkSurface *parent, @@ -647,7 +602,6 @@ gdk_surface_new (GdkDisplay *display, { GdkSurface *surface; gboolean native; - GdkEventMask event_mask; g_return_val_if_fail (attributes != NULL, NULL); @@ -714,8 +668,6 @@ gdk_surface_new (GdkDisplay *display, return NULL; } - surface->event_mask = GDK_ALL_EVENTS_MASK; - if (attributes->wclass == GDK_INPUT_OUTPUT) { surface->input_only = FALSE; @@ -745,10 +697,8 @@ gdk_surface_new (GdkDisplay *display, if (native) { - event_mask = get_native_event_mask (surface); - /* Create the impl */ - _gdk_display_create_surface_impl (display, surface, parent, event_mask, attributes); + gdk_display_create_surface_impl (display, surface, parent, attributes); surface->impl_surface = surface; } else @@ -2345,10 +2295,9 @@ gdk_surface_show_internal (GdkSurface *surface, gboolean raise) if (!was_mapped && !gdk_surface_has_impl (surface)) { - if (surface->event_mask & GDK_STRUCTURE_MASK) - _gdk_make_event (surface, GDK_MAP, NULL, FALSE); + _gdk_make_event (surface, GDK_MAP, NULL, FALSE); - if (surface->parent && surface->parent->event_mask & GDK_SUBSTRUCTURE_MASK) + if (surface->parent) _gdk_make_event (surface, GDK_MAP, NULL, FALSE); } @@ -2656,10 +2605,9 @@ G_GNUC_END_IGNORE_DEPRECATIONS if (was_mapped && !gdk_surface_has_impl (surface)) { - if (surface->event_mask & GDK_STRUCTURE_MASK) - _gdk_make_event (surface, GDK_UNMAP, NULL, FALSE); + _gdk_make_event (surface, GDK_UNMAP, NULL, FALSE); - if (surface->parent && surface->parent->event_mask & GDK_SUBSTRUCTURE_MASK) + if (surface->parent) _gdk_make_event (surface, GDK_UNMAP, NULL, FALSE); } @@ -2697,10 +2645,9 @@ gdk_surface_withdraw (GdkSurface *surface) if (was_mapped) { - if (surface->event_mask & GDK_STRUCTURE_MASK) - _gdk_make_event (surface, GDK_UNMAP, NULL, FALSE); + _gdk_make_event (surface, GDK_UNMAP, NULL, FALSE); - if (surface->parent && surface->parent->event_mask & GDK_SUBSTRUCTURE_MASK) + if (surface->parent) _gdk_make_event (surface, GDK_UNMAP, NULL, FALSE); } @@ -2712,140 +2659,6 @@ gdk_surface_withdraw (GdkSurface *surface) } } -/** - * gdk_surface_set_events: - * @surface: a #GdkSurface - * @event_mask: event mask for @surface - * - * The event mask for a surface determines which events will be reported - * for that surface from all master input devices. For example, an event mask - * including #GDK_BUTTON_PRESS_MASK means the surface should report button - * press events. The event mask is the bitwise OR of values from the - * #GdkEventMask enumeration. - * - * See the [input handling overview][event-masks] for details. - **/ -void -gdk_surface_set_events (GdkSurface *surface, - GdkEventMask event_mask) -{ - GdkSurfaceImplClass *impl_class; - - g_return_if_fail (GDK_IS_SURFACE (surface)); - - if (surface->destroyed) - return; - - surface->event_mask = event_mask; - - if (gdk_surface_has_impl (surface)) - { - impl_class = GDK_SURFACE_IMPL_GET_CLASS (surface->impl); - impl_class->set_events (surface, - get_native_event_mask (surface)); - } - -} - -/** - * gdk_surface_get_events: - * @surface: a #GdkSurface - * - * Gets the event mask for @surface for all master input devices. See - * gdk_surface_set_events(). - * - * Returns: event mask for @surface - **/ -GdkEventMask -gdk_surface_get_events (GdkSurface *surface) -{ - g_return_val_if_fail (GDK_IS_SURFACE (surface), 0); - - if (surface->destroyed) - return 0; - - return surface->event_mask; -} - -/** - * gdk_surface_set_device_events: - * @surface: a #GdkSurface - * @device: #GdkDevice to enable events for. - * @event_mask: event mask for @surface - * - * Sets the event mask for a given device (Normally a floating device, not - * attached to any visible pointer) to @surface. For example, an event mask - * including #GDK_BUTTON_PRESS_MASK means the surface should report button - * press events. The event mask is the bitwise OR of values from the - * #GdkEventMask enumeration. - * - * See the [input handling overview][event-masks] for details. - **/ -void -gdk_surface_set_device_events (GdkSurface *surface, - GdkDevice *device, - GdkEventMask event_mask) -{ - GdkEventMask device_mask; - GdkSurface *native; - - g_return_if_fail (GDK_IS_SURFACE (surface)); - g_return_if_fail (GDK_IS_DEVICE (device)); - - if (GDK_SURFACE_DESTROYED (surface)) - return; - - if (G_UNLIKELY (!surface->device_events)) - surface->device_events = g_hash_table_new (NULL, NULL); - - if (event_mask == 0) - { - /* FIXME: unsetting events on a master device - * would restore surface->event_mask - */ - g_hash_table_remove (surface->device_events, device); - } - else - g_hash_table_insert (surface->device_events, device, - GINT_TO_POINTER (event_mask)); - - native = gdk_surface_get_toplevel (surface); - - device_mask = get_native_device_event_mask (surface, device); - GDK_DEVICE_GET_CLASS (device)->select_surface_events (device, native, device_mask); -} - -/** - * gdk_surface_get_device_events: - * @surface: a #GdkSurface. - * @device: a #GdkDevice. - * - * Returns the event mask for @surface corresponding to an specific device. - * - * Returns: device event mask for @surface - **/ -GdkEventMask -gdk_surface_get_device_events (GdkSurface *surface, - GdkDevice *device) -{ - GdkEventMask mask; - - g_return_val_if_fail (GDK_IS_SURFACE (surface), 0); - g_return_val_if_fail (GDK_IS_DEVICE (device), 0); - - if (GDK_SURFACE_DESTROYED (surface)) - return 0; - - if (!surface->device_events) - return 0; - - mask = GPOINTER_TO_INT (g_hash_table_lookup (surface->device_events, device)); - - /* FIXME: device could be controlled by surface->event_mask */ - - return mask; -} - static void gdk_surface_move_resize_toplevel (GdkSurface *surface, gboolean with_move, diff --git a/gdk/gdksurface.h b/gdk/gdksurface.h index 5158e11761..29e3eed820 100644 --- a/gdk/gdksurface.h +++ b/gdk/gdksurface.h @@ -685,19 +685,6 @@ GDK_AVAILABLE_IN_ALL GList * gdk_surface_get_children_with_user_data (GdkSurface *surface, gpointer user_data); -GDK_AVAILABLE_IN_ALL -GdkEventMask gdk_surface_get_events (GdkSurface *surface); -GDK_AVAILABLE_IN_ALL -void gdk_surface_set_events (GdkSurface *surface, - GdkEventMask event_mask); -GDK_AVAILABLE_IN_ALL -void gdk_surface_set_device_events (GdkSurface *surface, - GdkDevice *device, - GdkEventMask event_mask); -GDK_AVAILABLE_IN_ALL -GdkEventMask gdk_surface_get_device_events (GdkSurface *surface, - GdkDevice *device); - GDK_AVAILABLE_IN_ALL void gdk_surface_set_icon_list (GdkSurface *surface, GList *surfaces); diff --git a/gdk/gdksurfaceimpl.h b/gdk/gdksurfaceimpl.h index 26290193a9..dfd9716617 100644 --- a/gdk/gdksurfaceimpl.h +++ b/gdk/gdksurfaceimpl.h @@ -76,10 +76,6 @@ struct _GdkSurfaceImplClass gint rect_anchor_dx, gint rect_anchor_dy); - GdkEventMask (* get_events) (GdkSurface *surface); - void (* set_events) (GdkSurface *surface, - GdkEventMask event_mask); - void (* get_geometry) (GdkSurface *surface, gint *x, gint *y, diff --git a/gdk/quartz/gdkdevice-core-quartz.c b/gdk/quartz/gdkdevice-core-quartz.c index bc1ef6f6c5..246dd55933 100644 --- a/gdk/quartz/gdkdevice-core-quartz.c +++ b/gdk/quartz/gdkdevice-core-quartz.c @@ -76,9 +76,6 @@ static GdkSurface * gdk_quartz_device_core_surface_at_position (GdkDevice gdouble *win_y, GdkModifierType *mask, gboolean get_toplevel); -static void gdk_quartz_device_core_select_surface_events (GdkDevice *device, - GdkSurface *window, - GdkEventMask event_mask); G_DEFINE_TYPE (GdkQuartzDeviceCore, gdk_quartz_device_core, GDK_TYPE_DEVICE) @@ -96,7 +93,6 @@ gdk_quartz_device_core_class_init (GdkQuartzDeviceCoreClass *klass) device_class->grab = gdk_quartz_device_core_grab; device_class->ungrab = gdk_quartz_device_core_ungrab; device_class->surface_at_position = gdk_quartz_device_core_surface_at_position; - device_class->select_surface_events = gdk_quartz_device_core_select_surface_events; } static void @@ -349,10 +345,3 @@ gdk_quartz_device_core_surface_at_position (GdkDevice *device, return found_window; } -static void -gdk_quartz_device_core_select_surface_events (GdkDevice *device, - GdkSurface *window, - GdkEventMask event_mask) -{ - /* The mask is set in the common code. */ -} diff --git a/gdk/quartz/gdkdisplay-quartz.h b/gdk/quartz/gdkdisplay-quartz.h index 3799f54d61..33e1c67ce6 100644 --- a/gdk/quartz/gdkdisplay-quartz.h +++ b/gdk/quartz/gdkdisplay-quartz.h @@ -65,7 +65,6 @@ void _gdk_quartz_display_after_process_all_updates (GdkDisplay *display); void _gdk_quartz_display_create_surface_impl (GdkDisplay *display, GdkSurface *window, GdkSurface *real_parent, - GdkEventMask event_mask, GdkSurfaceAttr *attributes); /* Display methods - keymap */ diff --git a/gdk/quartz/gdksurface-quartz.c b/gdk/quartz/gdksurface-quartz.c index f25ceb4f75..c635a6386a 100644 --- a/gdk/quartz/gdksurface-quartz.c +++ b/gdk/quartz/gdksurface-quartz.c @@ -731,7 +731,6 @@ void _gdk_quartz_display_create_surface_impl (GdkDisplay *display, GdkSurface *window, GdkSurface *real_parent, - GdkEventMask event_mask, GdkSurfaceAttr *attributes) { GdkSurfaceImplQuartz *impl; @@ -1615,22 +1614,6 @@ gdk_surface_quartz_get_device_state (GdkSurface *window, x, y, mask) != NULL; } -static GdkEventMask -gdk_surface_quartz_get_events (GdkSurface *window) -{ - if (GDK_SURFACE_DESTROYED (window)) - return 0; - else - return window->event_mask; -} - -static void -gdk_surface_quartz_set_events (GdkSurface *window, - GdkEventMask event_mask) -{ - /* The mask is set in the common code. */ -} - static void gdk_quartz_surface_set_urgency_hint (GdkSurface *window, gboolean urgent) @@ -2746,8 +2729,6 @@ gdk_surface_impl_quartz_class_init (GdkSurfaceImplQuartzClass *klass) impl_class->show = gdk_surface_quartz_show; impl_class->hide = gdk_surface_quartz_hide; impl_class->withdraw = gdk_surface_quartz_withdraw; - impl_class->set_events = gdk_surface_quartz_set_events; - impl_class->get_events = gdk_surface_quartz_get_events; impl_class->raise = gdk_surface_quartz_raise; impl_class->lower = gdk_surface_quartz_lower; impl_class->restack_toplevel = gdk_surface_quartz_restack_toplevel; diff --git a/gdk/wayland/gdkdevice-wayland.c b/gdk/wayland/gdkdevice-wayland.c index 585887dc07..8ab8a07986 100644 --- a/gdk/wayland/gdkdevice-wayland.c +++ b/gdk/wayland/gdkdevice-wayland.c @@ -865,13 +865,6 @@ gdk_wayland_device_surface_at_position (GdkDevice *device, return pointer->focus; } -static void -gdk_wayland_device_select_surface_events (GdkDevice *device, - GdkSurface *surface, - GdkEventMask event_mask) -{ -} - static void gdk_wayland_device_class_init (GdkWaylandDeviceClass *klass) { @@ -885,7 +878,6 @@ gdk_wayland_device_class_init (GdkWaylandDeviceClass *klass) device_class->grab = gdk_wayland_device_grab; device_class->ungrab = gdk_wayland_device_ungrab; device_class->surface_at_position = gdk_wayland_device_surface_at_position; - device_class->select_surface_events = gdk_wayland_device_select_surface_events; } static void diff --git a/gdk/wayland/gdkprivate-wayland.h b/gdk/wayland/gdkprivate-wayland.h index c45d17fc33..e4984cc5d4 100644 --- a/gdk/wayland/gdkprivate-wayland.h +++ b/gdk/wayland/gdkprivate-wayland.h @@ -121,7 +121,6 @@ void _gdk_wayland_drag_context_set_source_surface (GdkDragContext *context, void _gdk_wayland_display_create_surface_impl (GdkDisplay *display, GdkSurface *surface, GdkSurface *real_parent, - GdkEventMask event_mask, GdkSurfaceAttr *attributes); gint _gdk_wayland_display_text_property_to_utf8_list (GdkDisplay *display, diff --git a/gdk/wayland/gdksurface-wayland.c b/gdk/wayland/gdksurface-wayland.c index 0ffdabee87..2aedc995d7 100644 --- a/gdk/wayland/gdksurface-wayland.c +++ b/gdk/wayland/gdksurface-wayland.c @@ -556,7 +556,6 @@ void _gdk_wayland_display_create_surface_impl (GdkDisplay *display, GdkSurface *surface, GdkSurface *real_parent, - GdkEventMask event_mask, GdkSurfaceAttr *attributes) { GdkWaylandDisplay *display_wayland = GDK_WAYLAND_DISPLAY (display); @@ -2823,22 +2822,6 @@ gdk_surface_wayland_withdraw (GdkSurface *surface) } } -static void -gdk_surface_wayland_set_events (GdkSurface *surface, - GdkEventMask event_mask) -{ - GDK_SURFACE (surface)->event_mask = event_mask; -} - -static GdkEventMask -gdk_surface_wayland_get_events (GdkSurface *surface) -{ - if (GDK_SURFACE_DESTROYED (surface)) - return 0; - else - return GDK_SURFACE (surface)->event_mask; -} - static void gdk_surface_wayland_raise (GdkSurface *surface) { @@ -4039,8 +4022,6 @@ _gdk_surface_impl_wayland_class_init (GdkSurfaceImplWaylandClass *klass) impl_class->show = gdk_wayland_surface_show; impl_class->hide = gdk_wayland_surface_hide; impl_class->withdraw = gdk_surface_wayland_withdraw; - impl_class->set_events = gdk_surface_wayland_set_events; - impl_class->get_events = gdk_surface_wayland_get_events; impl_class->raise = gdk_surface_wayland_raise; impl_class->lower = gdk_surface_wayland_lower; impl_class->restack_toplevel = gdk_surface_wayland_restack_toplevel; diff --git a/gdk/win32/gdkdevice-virtual.c b/gdk/win32/gdkdevice-virtual.c index 0826ee3013..6a719518ff 100644 --- a/gdk/win32/gdkdevice-virtual.c +++ b/gdk/win32/gdkdevice-virtual.c @@ -190,13 +190,6 @@ gdk_device_virtual_ungrab (GdkDevice *device, _gdk_display_device_grab_update (display, device, device, 0); } -static void -gdk_device_virtual_select_surface_events (GdkDevice *device, - GdkSurface *window, - GdkEventMask event_mask) -{ -} - static void gdk_device_virtual_class_init (GdkDeviceVirtualClass *klass) { @@ -210,7 +203,6 @@ gdk_device_virtual_class_init (GdkDeviceVirtualClass *klass) device_class->grab = gdk_device_virtual_grab; device_class->ungrab = gdk_device_virtual_ungrab; device_class->surface_at_position = _gdk_device_win32_surface_at_position; - device_class->select_surface_events = gdk_device_virtual_select_surface_events; } static void diff --git a/gdk/win32/gdkdevice-win32.c b/gdk/win32/gdkdevice-win32.c index 7960ee173b..037d1b05cf 100644 --- a/gdk/win32/gdkdevice-win32.c +++ b/gdk/win32/gdkdevice-win32.c @@ -279,13 +279,6 @@ _gdk_device_win32_surface_at_position (GdkDevice *device, return window; } -static void -gdk_device_win32_select_surface_events (GdkDevice *device, - GdkSurface *window, - GdkEventMask event_mask) -{ -} - static void gdk_device_win32_class_init (GdkDeviceWin32Class *klass) { @@ -299,7 +292,6 @@ gdk_device_win32_class_init (GdkDeviceWin32Class *klass) device_class->grab = gdk_device_win32_grab; device_class->ungrab = gdk_device_win32_ungrab; device_class->surface_at_position = _gdk_device_win32_surface_at_position; - device_class->select_surface_events = gdk_device_win32_select_surface_events; } static void diff --git a/gdk/win32/gdkdevice-wintab.c b/gdk/win32/gdkdevice-wintab.c index 3f499d9a00..d28ae37db9 100644 --- a/gdk/win32/gdkdevice-wintab.c +++ b/gdk/win32/gdkdevice-wintab.c @@ -211,13 +211,6 @@ gdk_device_wintab_surface_at_position (GdkDevice *device, return NULL; } -static void -gdk_device_wintab_select_surface_events (GdkDevice *device, - GdkSurface *window, - GdkEventMask event_mask) -{ -} - void _gdk_device_wintab_translate_axes (GdkDeviceWintab *device_wintab, GdkSurface *window, @@ -303,7 +296,6 @@ gdk_device_wintab_class_init (GdkDeviceWintabClass *klass) device_class->grab = gdk_device_wintab_grab; device_class->ungrab = gdk_device_wintab_ungrab; device_class->surface_at_position = gdk_device_wintab_surface_at_position; - device_class->select_surface_events = gdk_device_wintab_select_surface_events; } static void diff --git a/gdk/win32/gdkdevicemanager-win32.c b/gdk/win32/gdkdevicemanager-win32.c index 082a87f899..d5ebbbaacd 100644 --- a/gdk/win32/gdkdevicemanager-win32.c +++ b/gdk/win32/gdkdevicemanager-win32.c @@ -1036,52 +1036,16 @@ gdk_input_other_event (GdkDisplay *display, if (!(translated_buttons & button_mask)) { event->any.type = GDK_BUTTON_RELEASE; - masktest = GDK_BUTTON_RELEASE_MASK; } else { event->any.type = GDK_BUTTON_PRESS; - masktest = GDK_BUTTON_PRESS_MASK; } source_device->button_state ^= button_mask; } else { event->any.type = GDK_MOTION_NOTIFY; - masktest = GDK_POINTER_MOTION_MASK; - if (source_device->button_state & (1 << 0)) - masktest |= GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK; - if (source_device->button_state & (1 << 1)) - masktest |= GDK_BUTTON_MOTION_MASK | GDK_BUTTON2_MOTION_MASK; - if (source_device->button_state & (1 << 2)) - masktest |= GDK_BUTTON_MOTION_MASK | GDK_BUTTON3_MOTION_MASK; - } - - /* Now we can check if the window wants the event, and - * propagate if necessary. - */ - while ((gdk_surface_get_device_events (window, GDK_DEVICE (source_device)) & masktest) == 0 && - (gdk_device_get_device_type (GDK_DEVICE (source_device)) == GDK_DEVICE_TYPE_SLAVE && - (gdk_surface_get_events (window) & masktest) == 0)) - { - GDK_NOTE (EVENTS_OR_INPUT, g_print ("... not selected\n")); - - if (window->parent == NULL) - return FALSE; - - impl = GDK_SURFACE_IMPL_WIN32 (window->impl); - pt.x = x * impl->surface_scale; - pt.y = y * impl->surface_scale; - ClientToScreen (GDK_SURFACE_HWND (window), &pt); - g_object_unref (window); - window = window->parent; - impl = GDK_SURFACE_IMPL_WIN32 (window->impl); - g_object_ref (window); - ScreenToClient (GDK_SURFACE_HWND (window), &pt); - x = pt.x / impl->surface_scale; - y = pt.y / impl->surface_scale; - GDK_NOTE (EVENTS_OR_INPUT, g_print ("... propagating to %p %+d%+d\n", - GDK_SURFACE_HWND (window), x, y)); } event->any.surface = window; diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c index 02bfa9d11e..9b2d88110f 100644 --- a/gdk/win32/gdkevents-win32.c +++ b/gdk/win32/gdkevents-win32.c @@ -1375,100 +1375,6 @@ synthesize_crossing_events (GdkDisplay *display, } } -/* The check_extended flag controls whether to check if the windows want - * events from extended input devices and if the message should be skipped - * because an extended input device is active - */ -static gboolean -propagate (GdkSurface **window, - MSG *msg, - GdkSurface *grab_window, - gboolean grab_owner_events, - gint grab_mask, - gboolean (*doesnt_want_it) (gint mask, - MSG *msg)) -{ - if (grab_window != NULL && !grab_owner_events) - { - /* Event source is grabbed with owner_events FALSE */ - - if ((*doesnt_want_it) (grab_mask, msg)) - { - GDK_NOTE (EVENTS, g_print (" (grabber doesn't want it)")); - return FALSE; - } - else - { - GDK_NOTE (EVENTS, g_print (" (to grabber)")); - g_set_object (window, grab_window); - return TRUE; - } - } - - /* If we come here, we know that if grab_window != NULL then - * grab_owner_events is TRUE - */ - while (TRUE) - { - if ((*doesnt_want_it) ((*window)->event_mask, msg)) - { - /* Owner doesn't want it, propagate to parent. */ - GdkSurface *parent = gdk_surface_get_parent (*window); - if (parent == NULL) - { - /* No parent; check if grabbed */ - if (grab_window != NULL) - { - /* Event source is grabbed with owner_events TRUE */ - - if ((*doesnt_want_it) (grab_mask, msg)) - { - /* Grabber doesn't want it either */ - GDK_NOTE (EVENTS, g_print (" (grabber doesn't want it)")); - return FALSE; - } - else - { - /* Grabbed! */ - GDK_NOTE (EVENTS, g_print (" (to grabber)")); - g_set_object (window, grab_window); - return TRUE; - } - } - else - { - GDK_NOTE (EVENTS, g_print (" (undelivered)")); - return FALSE; - } - } - else - { - g_set_object (window, parent); - /* The only branch where we actually continue the loop */ - } - } - else - return TRUE; - } -} - -static gboolean -doesnt_want_key (gint mask, - MSG *msg) -{ - return (((msg->message == WM_KEYUP || msg->message == WM_SYSKEYUP) && - !(mask & GDK_KEY_RELEASE_MASK)) || - ((msg->message == WM_KEYDOWN || msg->message == WM_SYSKEYDOWN) && - !(mask & GDK_KEY_PRESS_MASK))); -} - -static gboolean -doesnt_want_char (gint mask, - MSG *msg) -{ - return !(mask & (GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK)); -} - /* Acquires actual client area size of the underlying native window. * Rectangle is in GDK screen coordinates (_gdk_offset_* is added). * Returns FALSE if configure events should be inhibited, @@ -1512,6 +1418,7 @@ _gdk_win32_do_emit_configure_event (GdkSurface *window, RECT rect) { GdkSurfaceImplWin32 *impl = GDK_SURFACE_IMPL_WIN32 (window->impl); + GdkEvent *event; impl->unscaled_width = rect.right - rect.left; impl->unscaled_height = rect.bottom - rect.top; @@ -1522,20 +1429,17 @@ _gdk_win32_do_emit_configure_event (GdkSurface *window, _gdk_surface_update_size (window); - if (window->event_mask & GDK_STRUCTURE_MASK) - { - GdkEvent *event = gdk_event_new (GDK_CONFIGURE); + event = gdk_event_new (GDK_CONFIGURE); - event->any.surface = window; + event->any.surface = window; - event->configure.width = window->width; - event->configure.height = window->height; + event->configure.width = window->width; + event->configure.height = window->height; - event->configure.x = window->x; - event->configure.y = window->y; + event->configure.x = window->x; + event->configure.y = window->y; - _gdk_win32_append_event (event); - } + _gdk_win32_append_event (event); } void @@ -2367,14 +2271,6 @@ gdk_event_translate (MSG *msg, ((HIWORD(msg->lParam) & KF_REPEAT) >= 1)) break; - if (keyboard_grab && - !propagate (&window, msg, - keyboard_grab->surface, - keyboard_grab->owner_events, - GDK_ALL_EVENTS_MASK, - doesnt_want_key)) - break; - if (GDK_SURFACE_DESTROYED (window)) break; @@ -2568,14 +2464,6 @@ gdk_event_translate (MSG *msg, if (!(msg->lParam & GCS_RESULTSTR)) break; - if (keyboard_grab && - !propagate (&window, msg, - keyboard_grab->surface, - keyboard_grab->owner_events, - GDK_ALL_EVENTS_MASK, - doesnt_want_char)) - break; - if (GDK_SURFACE_DESTROYED (window)) break; @@ -2590,29 +2478,23 @@ gdk_event_translate (MSG *msg, for (i = 0; i < ccount; i++) { - if (window->event_mask & GDK_KEY_PRESS_MASK) - { - /* Build a key press event */ - event = gdk_event_new (GDK_KEY_PRESS); - event->any.surface = window; - gdk_event_set_device (event, device_manager_win32->core_keyboard); - gdk_event_set_source_device (event, device_manager_win32->system_keyboard); - build_wm_ime_composition_event (event, msg, wbuf[i], key_state); - - _gdk_win32_append_event (event); - } - - if (window->event_mask & GDK_KEY_RELEASE_MASK) - { - /* Build a key release event. */ - event = gdk_event_new (GDK_KEY_RELEASE); - event->any.surface = window; - gdk_event_set_device (event, device_manager_win32->core_keyboard); - gdk_event_set_source_device (event, device_manager_win32->system_keyboard); - build_wm_ime_composition_event (event, msg, wbuf[i], key_state); - - _gdk_win32_append_event (event); - } + /* Build a key press event */ + event = gdk_event_new (GDK_KEY_PRESS); + event->any.surface = window; + gdk_event_set_device (event, device_manager_win32->core_keyboard); + gdk_event_set_source_device (event, device_manager_win32->system_keyboard); + build_wm_ime_composition_event (event, msg, wbuf[i], key_state); + + _gdk_win32_append_event (event); + + /* Build a key release event. */ + event = gdk_event_new (GDK_KEY_RELEASE); + event->any.surface = window; + gdk_event_set_device (event, device_manager_win32->core_keyboard); + gdk_event_set_source_device (event, device_manager_win32->system_keyboard); + build_wm_ime_composition_event (event, msg, wbuf[i], key_state); + + _gdk_win32_append_event (event); } return_val = TRUE; break; @@ -3022,9 +2904,6 @@ gdk_event_translate (MSG *msg, !keyboard_grab->owner_events) break; - if (!(window->event_mask & GDK_FOCUS_CHANGE_MASK)) - break; - if (GDK_SURFACE_DESTROYED (window)) break; diff --git a/gdk/win32/gdkprivate-win32.h b/gdk/win32/gdkprivate-win32.h index 1d1970872b..b4352f89c6 100644 --- a/gdk/win32/gdkprivate-win32.h +++ b/gdk/win32/gdkprivate-win32.h @@ -417,7 +417,6 @@ GdkKeymap *_gdk_win32_display_get_keymap (GdkDisplay *display); void _gdk_win32_display_create_surface_impl (GdkDisplay *display, GdkSurface *window, GdkSurface *real_parent, - GdkEventMask event_mask, GdkSurfaceAttr *attributes); /* stray GdkSurfaceImplWin32 members */ diff --git a/gdk/win32/gdksurface-win32.c b/gdk/win32/gdksurface-win32.c index ddd117eb67..b99b3c76f9 100644 --- a/gdk/win32/gdksurface-win32.c +++ b/gdk/win32/gdksurface-win32.c @@ -536,7 +536,6 @@ void _gdk_win32_display_create_surface_impl (GdkDisplay *display, GdkSurface *window, GdkSurface *real_parent, - GdkEventMask event_mask, GdkSurfaceAttr *attributes) { HWND hwndNew; @@ -659,8 +658,6 @@ _gdk_win32_display_create_surface_impl (GdkDisplay *display, if (!title || !*title) title = ""; - impl->native_event_mask = GDK_STRUCTURE_MASK | event_mask; - if (impl->type_hint == GDK_SURFACE_TYPE_HINT_UTILITY) dwExStyle |= WS_EX_TOOLWINDOW; @@ -795,7 +792,6 @@ gdk_win32_surface_foreign_new_for_display (GdkDisplay *display, window->height = (impl->unscaled_height + impl->surface_scale - 1) / impl->surface_scale; window->surface_type = GDK_SURFACE_FOREIGN; window->destroyed = FALSE; - window->event_mask = GDK_ALL_EVENTS_MASK; /* XXX */ if (IsWindowVisible ((HWND) anid)) window->state &= (~GDK_SURFACE_STATE_WITHDRAWN); else @@ -2049,34 +2045,6 @@ gdk_display_warp_device (GdkDisplay *display, GDK_DEVICE_GET_CLASS (device)->warp (device, x, y); } -static GdkEventMask -gdk_win32_surface_get_events (GdkSurface *window) -{ - GdkSurfaceImplWin32 *impl; - - if (GDK_SURFACE_DESTROYED (window)) - return 0; - - impl = GDK_SURFACE_IMPL_WIN32 (window->impl); - - return impl->native_event_mask; -} - -static void -gdk_win32_surface_set_events (GdkSurface *window, - GdkEventMask event_mask) -{ - GdkSurfaceImplWin32 *impl; - - impl = GDK_SURFACE_IMPL_WIN32 (window->impl); - - /* gdk_surface_new() always sets the GDK_STRUCTURE_MASK, so better - * set it here, too. Not that I know or remember why it is - * necessary, will have to test some day. - */ - impl->native_event_mask = GDK_STRUCTURE_MASK | event_mask; -} - static void gdk_win32_surface_set_accept_focus (GdkSurface *window, gboolean accept_focus) @@ -5054,7 +5022,6 @@ gdk_win32_surface_set_skip_taskbar_hint (GdkSurface *window, wa.surface_type = GDK_SURFACE_TEMP; wa.wclass = GDK_INPUT_OUTPUT; wa.width = wa.height = 1; - wa.event_mask = 0; owner = gdk_surface_new_internal (NULL, &wa, 0, TRUE); } #endif @@ -5433,8 +5400,6 @@ gdk_surface_impl_win32_class_init (GdkSurfaceImplWin32Class *klass) impl_class->show = gdk_win32_surface_show; impl_class->hide = gdk_win32_surface_hide; impl_class->withdraw = gdk_win32_surface_withdraw; - impl_class->set_events = gdk_win32_surface_set_events; - impl_class->get_events = gdk_win32_surface_get_events; impl_class->raise = gdk_win32_surface_raise; impl_class->lower = gdk_win32_surface_lower; impl_class->restack_toplevel = gdk_win32_surface_restack_toplevel; diff --git a/gdk/win32/gdksurface-win32.h b/gdk/win32/gdksurface-win32.h index 2a14578197..bdfddeeb24 100644 --- a/gdk/win32/gdksurface-win32.h +++ b/gdk/win32/gdksurface-win32.h @@ -244,8 +244,6 @@ struct _GdkSurfaceImplWin32 gint hint_flags; GdkGeometry hints; - GdkEventMask native_event_mask; - /* Non-NULL for any window that is registered as a drop target. * For OLE2 protocol only. */ diff --git a/gdk/x11/gdkdevice-core-x11.c b/gdk/x11/gdkdevice-core-x11.c index 3f875422a9..32d7cfbb12 100644 --- a/gdk/x11/gdkdevice-core-x11.c +++ b/gdk/x11/gdkdevice-core-x11.c @@ -77,9 +77,6 @@ static GdkSurface * gdk_x11_device_core_surface_at_position (GdkDevice *de gdouble *win_y, GdkModifierType *mask, gboolean get_toplevel); -static void gdk_x11_device_core_select_surface_events (GdkDevice *device, - GdkSurface *surface, - GdkEventMask event_mask); G_DEFINE_TYPE (GdkX11DeviceCore, gdk_x11_device_core, GDK_TYPE_DEVICE) @@ -96,7 +93,6 @@ gdk_x11_device_core_class_init (GdkX11DeviceCoreClass *klass) device_class->grab = gdk_x11_device_core_grab; device_class->ungrab = gdk_x11_device_core_ungrab; device_class->surface_at_position = gdk_x11_device_core_surface_at_position; - device_class->select_surface_events = gdk_x11_device_core_select_surface_events; } static void @@ -564,51 +560,3 @@ gdk_x11_device_core_surface_at_position (GdkDevice *device, return surface; } -static void -gdk_x11_device_core_select_surface_events (GdkDevice *device, - GdkSurface *surface, - GdkEventMask event_mask) -{ - GdkEventMask filter_mask, surface_mask; - guint xmask = 0; - gint i; - - surface_mask = gdk_surface_get_events (surface); - filter_mask = GDK_POINTER_MOTION_MASK - | GDK_BUTTON_MOTION_MASK - | GDK_BUTTON1_MOTION_MASK - | GDK_BUTTON2_MOTION_MASK - | GDK_BUTTON3_MOTION_MASK - | GDK_BUTTON_PRESS_MASK - | GDK_BUTTON_RELEASE_MASK - | GDK_KEY_PRESS_MASK - | GDK_KEY_RELEASE_MASK - | GDK_ENTER_NOTIFY_MASK - | GDK_LEAVE_NOTIFY_MASK - | GDK_FOCUS_CHANGE_MASK - | GDK_PROXIMITY_IN_MASK - | GDK_PROXIMITY_OUT_MASK - | GDK_SCROLL_MASK; - - /* Filter out non-device events */ - event_mask &= filter_mask; - - /* Unset device events on surface mask */ - surface_mask &= ~filter_mask; - - /* Combine masks */ - event_mask |= surface_mask; - - for (i = 0; i < _gdk_x11_event_mask_table_size; i++) - { - if (event_mask & (1 << (i + 1))) - xmask |= _gdk_x11_event_mask_table[i]; - } - - if (GDK_SURFACE_XID (surface) != GDK_SURFACE_XROOTWIN (surface)) - xmask |= StructureNotifyMask | PropertyChangeMask; - - XSelectInput (GDK_SURFACE_XDISPLAY (surface), - GDK_SURFACE_XID (surface), - xmask); -} diff --git a/gdk/x11/gdkdevice-xi2.c b/gdk/x11/gdkdevice-xi2.c index 746991c63c..b5152c143c 100644 --- a/gdk/x11/gdkdevice-xi2.c +++ b/gdk/x11/gdkdevice-xi2.c @@ -104,9 +104,6 @@ static GdkSurface * gdk_x11_device_xi2_surface_at_position (GdkDevice *dev gdouble *win_y, GdkModifierType *mask, gboolean get_toplevel); -static void gdk_x11_device_xi2_select_surface_events (GdkDevice *device, - GdkSurface *surface, - GdkEventMask event_mask); enum { @@ -131,7 +128,6 @@ gdk_x11_device_xi2_class_init (GdkX11DeviceXI2Class *klass) device_class->grab = gdk_x11_device_xi2_grab; device_class->ungrab = gdk_x11_device_xi2_ungrab; device_class->surface_at_position = gdk_x11_device_xi2_surface_at_position; - device_class->select_surface_events = gdk_x11_device_xi2_select_surface_events; g_object_class_install_property (object_class, PROP_DEVICE_ID, @@ -668,31 +664,6 @@ gdk_x11_device_xi2_surface_at_position (GdkDevice *device, return surface; } -static void -gdk_x11_device_xi2_select_surface_events (GdkDevice *device, - GdkSurface *surface, - GdkEventMask event_mask) -{ - GdkX11DeviceXI2 *device_xi2 = GDK_X11_DEVICE_XI2 (device); - GdkX11DeviceManagerXI2 *device_manager_xi2; - GdkDisplay *display; - XIEventMask evmask; - - display = gdk_device_get_display (device); - device_manager_xi2 = GDK_X11_DEVICE_MANAGER_XI2 (GDK_X11_DISPLAY (display)->device_manager); - - evmask.deviceid = device_xi2->device_id; - evmask.mask = _gdk_x11_device_xi2_translate_event_mask (device_manager_xi2, - event_mask, - &evmask.mask_len); - - XISelectEvents (GDK_SURFACE_XDISPLAY (surface), - GDK_SURFACE_XID (surface), - &evmask, 1); - - g_free (evmask.mask); -} - guchar * _gdk_x11_device_xi2_translate_event_mask (GdkX11DeviceManagerXI2 *device_manager_xi2, GdkEventMask event_mask, diff --git a/gdk/x11/gdkprivate-x11.h b/gdk/x11/gdkprivate-x11.h index e9014ee8b1..6af2811756 100644 --- a/gdk/x11/gdkprivate-x11.h +++ b/gdk/x11/gdkprivate-x11.h @@ -185,7 +185,6 @@ void _gdk_x11_display_get_maximal_cursor_size (GdkDisplay *display, void _gdk_x11_display_create_surface_impl (GdkDisplay *display, GdkSurface *window, GdkSurface *real_parent, - GdkEventMask event_mask, GdkSurfaceAttr *attributes); GList * gdk_x11_display_get_toplevel_windows (GdkDisplay *display); diff --git a/gdk/x11/gdksurface-x11.c b/gdk/x11/gdksurface-x11.c index 43c48b986a..1b677a7786 100644 --- a/gdk/x11/gdksurface-x11.c +++ b/gdk/x11/gdksurface-x11.c @@ -821,10 +821,9 @@ connect_frame_clock (GdkSurface *surface) void _gdk_x11_display_create_surface_impl (GdkDisplay *display, - GdkSurface *surface, - GdkSurface *real_parent, - GdkEventMask event_mask, - GdkSurfaceAttr *attributes) + GdkSurface *surface, + GdkSurface *real_parent, + GdkSurfaceAttr *attributes) { GdkSurfaceImplX11 *impl; GdkX11Screen *x11_screen; @@ -980,7 +979,7 @@ _gdk_x11_display_create_surface_impl (GdkDisplay *display, } gdk_x11_event_source_select_events ((GdkEventSource *) display_x11->event_source, - GDK_SURFACE_XID (surface), event_mask, + GDK_SURFACE_XID (surface), GDK_ALL_EVENTS_MASK, StructureNotifyMask | PropertyChangeMask); connect_frame_clock (surface); @@ -988,21 +987,6 @@ _gdk_x11_display_create_surface_impl (GdkDisplay *display, gdk_surface_freeze_toplevel_updates (surface); } -static GdkEventMask -x_event_mask_to_gdk_event_mask (long mask) -{ - GdkEventMask event_mask = 0; - int i; - - for (i = 0; i < _gdk_x11_event_mask_table_size; i++) - { - if (mask & _gdk_x11_event_mask_table[i]) - event_mask |= 1 << (i + 1); - } - - return event_mask; -} - /** * gdk_x11_surface_foreign_new_for_display: * @display: (type GdkX11Display): the #GdkDisplay where the window handle comes from. @@ -1083,8 +1067,6 @@ gdk_x11_surface_foreign_new_for_display (GdkDisplay *display, win->surface_type = GDK_SURFACE_FOREIGN; win->destroyed = FALSE; - win->event_mask = x_event_mask_to_gdk_event_mask (attrs.your_event_mask); - if (attrs.map_state == IsUnmapped) win->state = GDK_SURFACE_STATE_WITHDRAWN; else @@ -2684,48 +2666,6 @@ gdk_surface_x11_get_device_state (GdkSurface *surface, return child != NULL; } -static GdkEventMask -gdk_surface_x11_get_events (GdkSurface *surface) -{ - XWindowAttributes attrs; - GdkEventMask event_mask; - GdkEventMask filtered; - - if (GDK_SURFACE_DESTROYED (surface)) - return 0; - else - { - XGetWindowAttributes (GDK_SURFACE_XDISPLAY (surface), - GDK_SURFACE_XID (surface), - &attrs); - event_mask = x_event_mask_to_gdk_event_mask (attrs.your_event_mask); - /* if property change was filtered out before, keep it filtered out */ - filtered = GDK_STRUCTURE_MASK | GDK_PROPERTY_CHANGE_MASK; - surface->event_mask = event_mask & ((surface->event_mask & filtered) | ~filtered); - - return event_mask; - } -} -static void -gdk_surface_x11_set_events (GdkSurface *surface, - GdkEventMask event_mask) -{ - long xevent_mask = 0; - - if (!GDK_SURFACE_DESTROYED (surface)) - { - GdkX11Display *display_x11; - - if (GDK_SURFACE_XID (surface) != GDK_SURFACE_XROOTWIN (surface)) - xevent_mask = StructureNotifyMask | PropertyChangeMask; - - display_x11 = GDK_X11_DISPLAY (gdk_surface_get_display (surface)); - gdk_x11_event_source_select_events ((GdkEventSource *) display_x11->event_source, - GDK_SURFACE_XID (surface), event_mask, - xevent_mask); - } -} - static void gdk_surface_x11_input_shape_combine_region (GdkSurface *surface, const cairo_region_t *shape_region, @@ -4826,8 +4766,6 @@ gdk_surface_impl_x11_class_init (GdkSurfaceImplX11Class *klass) impl_class->show = gdk_surface_x11_show; impl_class->hide = gdk_surface_x11_hide; impl_class->withdraw = gdk_surface_x11_withdraw; - impl_class->set_events = gdk_surface_x11_set_events; - impl_class->get_events = gdk_surface_x11_get_events; impl_class->raise = gdk_surface_x11_raise; impl_class->lower = gdk_surface_x11_lower; impl_class->restack_toplevel = gdk_surface_x11_restack_toplevel; diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index ce894c915e..b763a6659f 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -10453,17 +10453,10 @@ send_focus_change (GtkWidget *widget, for (d = devices; d; d = d->next) { - GdkDevice *dev = d->data; GdkEvent *fevent; GdkSurface *surface; - /* Skip non-master keyboards that haven't - * selected for events from this surface - */ surface = gtk_widget_get_surface (widget); - if (gdk_device_get_device_type (dev) != GDK_DEVICE_TYPE_MASTER && - !gdk_surface_get_device_events (surface, dev)) - continue; fevent = gdk_event_new (GDK_FOCUS_CHANGE); diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index 5e5950f056..b09892737a 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -7598,13 +7598,7 @@ do_focus_change (GtkWidget *widget, GdkEvent *fevent; GdkSurface *surface; - /* Skip non-master keyboards that haven't - * selected for events from this surface - */ surface = _gtk_widget_get_surface (widget); - if (gdk_device_get_device_type (dev) != GDK_DEVICE_TYPE_MASTER && - surface && !gdk_surface_get_device_events (surface, dev)) - continue; fevent = gdk_event_new (GDK_FOCUS_CHANGE); gdk_event_set_display (fevent, gtk_widget_get_display (widget)); -- 2.30.2