[gtk/matthiasc/surface-state-rework: 28/80] x11: Remove handling of 'substructure' events
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/matthiasc/surface-state-rework: 28/80] x11: Remove handling of 'substructure' events
- Date: Sat, 5 Dec 2020 17:42:38 +0000 (UTC)
commit 05fd393b7d85878b290aba3c7db214c37e90ba4b
Author: Jonas Ã…dahl <jadahl gmail com>
Date: Tue Dec 1 11:10:59 2020 +0100
x11: Remove handling of 'substructure' events
Reading the comment, it seems to be related being a window manager
decoration utility; this is not something GTK4 aims to handle, just drop
support for this.
gdk/gdkdeviceprivate.h | 11 +++---
gdk/win32/gdkevents-win32.c | 1 -
gdk/x11/gdkdisplay-x11.c | 94 +++++++++++++++++++--------------------------
3 files changed, 44 insertions(+), 62 deletions(-)
---
diff --git a/gdk/gdkdeviceprivate.h b/gdk/gdkdeviceprivate.h
index 79d24378a0..a4cfffc28b 100644
--- a/gdk/gdkdeviceprivate.h
+++ b/gdk/gdkdeviceprivate.h
@@ -54,12 +54,11 @@ typedef enum
GDK_PROPERTY_CHANGE_MASK = 1 << 16,
GDK_PROXIMITY_IN_MASK = 1 << 18,
GDK_PROXIMITY_OUT_MASK = 1 << 19,
- GDK_SUBSTRUCTURE_MASK = 1 << 20,
- GDK_SCROLL_MASK = 1 << 21,
- GDK_TOUCH_MASK = 1 << 22,
- GDK_SMOOTH_SCROLL_MASK = 1 << 23,
- GDK_TOUCHPAD_GESTURE_MASK = 1 << 24,
- GDK_TABLET_PAD_MASK = 1 << 25,
+ GDK_SCROLL_MASK = 1 << 20,
+ GDK_TOUCH_MASK = 1 << 21,
+ GDK_SMOOTH_SCROLL_MASK = 1 << 22,
+ GDK_TOUCHPAD_GESTURE_MASK = 1 << 23,
+ GDK_TABLET_PAD_MASK = 1 << 24,
GDK_ALL_EVENTS_MASK = 0x3FFFFFE
} GdkEventMask;
diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c
index 8652f8c5f3..8728325ca6 100644
--- a/gdk/win32/gdkevents-win32.c
+++ b/gdk/win32/gdkevents-win32.c
@@ -562,7 +562,6 @@ event_mask_string (GdkEventMask mask)
BIT (VISIBILITY_NOTIFY);
BIT (PROXIMITY_IN);
BIT (PROXIMITY_OUT);
- BIT (SUBSTRUCTURE);
BIT (SCROLL);
#undef BIT
diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c
index b6a223d914..0df79d289b 100644
--- a/gdk/x11/gdkdisplay-x11.c
+++ b/gdk/x11/gdkdisplay-x11.c
@@ -620,7 +620,6 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator,
{
Window xwindow;
GdkSurface *surface;
- gboolean is_substructure;
GdkX11Surface *surface_impl = NULL;
GdkX11Screen *x11_screen = NULL;
GdkToplevelX11 *toplevel = NULL;
@@ -629,18 +628,9 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator,
event = NULL;
- /* Find the GdkSurface that this event relates to. If that's
- * not the same as the surface that the event was sent to,
- * we are getting an event from SubstructureNotifyMask.
- * We ignore such events for internal operation, but we
- * need to report them to the application because of
- * GDK_SUBSTRUCTURE_MASK (which should be removed at next
- * opportunity.) The most likely reason for getting these
- * events is when we are used in the Metacity or Mutter
- * window managers.
- */
xwindow = get_event_xwindow (xevent);
- is_substructure = xwindow != xevent->xany.window;
+ if (xwindow != xevent->xany.window)
+ return NULL;
surface = gdk_x11_surface_lookup_for_display (display, xwindow);
if (surface)
@@ -664,7 +654,7 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator,
goto done;
}
- if (xevent->type == DestroyNotify && !is_substructure)
+ if (xevent->type == DestroyNotify)
{
x11_screen = GDK_X11_DISPLAY (display)->screen;
@@ -793,14 +783,11 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator,
g_message ("destroy notify:\twindow: %ld",
xevent->xdestroywindow.window));
- if (!is_substructure)
- {
- if (surface)
- event = gdk_delete_event_new (surface);
+ if (surface)
+ event = gdk_delete_event_new (surface);
- if (surface && GDK_SURFACE_XID (surface) != x11_screen->xroot_window)
- gdk_surface_destroy_notify (surface);
- }
+ if (surface && GDK_SURFACE_XID (surface) != x11_screen->xroot_window)
+ gdk_surface_destroy_notify (surface);
break;
@@ -809,7 +796,7 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator,
g_message ("unmap notify:\t\twindow: %ld",
xevent->xmap.window));
- if (surface && !is_substructure)
+ if (surface)
{
/* If the WM supports the _NET_WM_STATE_HIDDEN hint, we do not want to
* interpret UnmapNotify events as implying iconic state.
@@ -852,7 +839,7 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator,
g_message ("map notify:\t\twindow: %ld",
xevent->xmap.window));
- if (surface && !is_substructure)
+ if (surface)
{
/* Unset minimized if it was set */
if (surface->state & GDK_TOPLEVEL_STATE_MINIMIZED)
@@ -902,7 +889,7 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator,
}
#ifdef HAVE_XSYNC
- if (!is_substructure && toplevel && display_x11->use_sync && toplevel->pending_counter_value != 0)
+ if (toplevel && display_x11->use_sync && toplevel->pending_counter_value != 0)
{
toplevel->configure_counter_value = toplevel->pending_counter_value;
toplevel->configure_counter_value_is_extended = toplevel->pending_counter_value_is_extended;
@@ -916,6 +903,7 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator,
int x, y;
int c_w = (xevent->xconfigure.width + surface_impl->surface_scale - 1) /
surface_impl->surface_scale;
int c_h = (xevent->xconfigure.height + surface_impl->surface_scale - 1) /
surface_impl->surface_scale;
+ int new_abs_x, new_abs_y;
event = gdk_configure_event_new (surface, c_w, c_h);
@@ -946,47 +934,43 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator,
x = xevent->xconfigure.x / surface_impl->surface_scale;
y = xevent->xconfigure.y / surface_impl->surface_scale;
}
- if (!is_substructure)
- {
- int new_abs_x, new_abs_y;
- new_abs_x = x;
- new_abs_y = y;
+ new_abs_x = x;
+ new_abs_y = y;
- surface_impl->abs_x = new_abs_x;
- surface_impl->abs_y = new_abs_y;
+ surface_impl->abs_x = new_abs_x;
+ surface_impl->abs_y = new_abs_y;
- if (surface->parent)
- {
- GdkX11Surface *parent_impl =
- GDK_X11_SURFACE (surface->parent);
+ if (surface->parent)
+ {
+ GdkX11Surface *parent_impl =
+ GDK_X11_SURFACE (surface->parent);
- surface->x = new_abs_x - parent_impl->abs_x;
- surface->y = new_abs_y - parent_impl->abs_y;
- }
+ surface->x = new_abs_x - parent_impl->abs_x;
+ surface->y = new_abs_y - parent_impl->abs_y;
+ }
- if (surface_impl->unscaled_width != xevent->xconfigure.width ||
- surface_impl->unscaled_height != xevent->xconfigure.height)
- {
- surface_impl->unscaled_width = xevent->xconfigure.width;
- surface_impl->unscaled_height = xevent->xconfigure.height;
- gdk_configure_event_get_size (event, &surface->width, &surface->height);
+ if (surface_impl->unscaled_width != xevent->xconfigure.width ||
+ surface_impl->unscaled_height != xevent->xconfigure.height)
+ {
+ surface_impl->unscaled_width = xevent->xconfigure.width;
+ surface_impl->unscaled_height = xevent->xconfigure.height;
+ gdk_configure_event_get_size (event, &surface->width, &surface->height);
- _gdk_surface_update_size (surface);
- _gdk_x11_surface_update_size (surface_impl);
- }
+ _gdk_surface_update_size (surface);
+ _gdk_x11_surface_update_size (surface_impl);
+ }
- if (surface->resize_count >= 1)
- {
- surface->resize_count -= 1;
+ if (surface->resize_count >= 1)
+ {
+ surface->resize_count -= 1;
- if (surface->resize_count == 0)
- _gdk_x11_moveresize_configure_done (display, surface);
- }
+ if (surface->resize_count == 0)
+ _gdk_x11_moveresize_configure_done (display, surface);
+ }
- gdk_x11_surface_update_popups (surface);
- gdk_x11_surface_enter_leave_monitors (surface);
- }
+ gdk_x11_surface_update_popups (surface);
+ gdk_x11_surface_enter_leave_monitors (surface);
}
break;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]