diff --git a/docs/reference/gdk/gdk4-sections.txt b/docs/reference/gdk/gdk4-sections.txt
index 18f6615a8a..30b09adea8 100644
--- a/docs/reference/gdk/gdk4-sections.txt
+++ b/docs/reference/gdk/gdk4-sections.txt
@@ -469,7 +469,6 @@ gdk_seat_capabilities_get_type
events
GdkEvent
GdkEventType
-GdkEventMask
GdkKeyMatch
GdkTouchpadGesturePhase
GdkScrollDirection
diff --git a/gdk/gdkinternals.h b/gdk/gdkinternals.h
index 586519c76d..a883589eff 100644
--- a/gdk/gdkinternals.h
+++ b/gdk/gdkinternals.h
@@ -268,6 +268,34 @@ typedef enum
GDK_OWNERSHIP_APPLICATION
} GdkGrabOwnership;
+typedef enum
+{
+ GDK_EXPOSURE_MASK = 1 << 1,
+ GDK_POINTER_MOTION_MASK = 1 << 2,
+ GDK_BUTTON_MOTION_MASK = 1 << 4,
+ GDK_BUTTON1_MOTION_MASK = 1 << 5,
+ GDK_BUTTON2_MOTION_MASK = 1 << 6,
+ GDK_BUTTON3_MOTION_MASK = 1 << 7,
+ GDK_BUTTON_PRESS_MASK = 1 << 8,
+ GDK_BUTTON_RELEASE_MASK = 1 << 9,
+ GDK_KEY_PRESS_MASK = 1 << 10,
+ GDK_KEY_RELEASE_MASK = 1 << 11,
+ GDK_ENTER_NOTIFY_MASK = 1 << 12,
+ GDK_LEAVE_NOTIFY_MASK = 1 << 13,
+ GDK_FOCUS_CHANGE_MASK = 1 << 14,
+ GDK_STRUCTURE_MASK = 1 << 15,
+ 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_ALL_EVENTS_MASK = 0x3FFFFFE
+} GdkEventMask;
+
GdkGrabStatus gdk_device_grab (GdkDevice *device,
GdkSurface *surface,
GdkGrabOwnership grab_ownership,
diff --git a/gdk/gdktypes.h b/gdk/gdktypes.h
index 4e1cc597c4..f05456d366 100644
--- a/gdk/gdktypes.h
+++ b/gdk/gdktypes.h
@@ -234,74 +234,6 @@ typedef enum
GDK_BUTTON1_MASK|GDK_BUTTON2_MASK|GDK_BUTTON3_MASK| \
GDK_BUTTON4_MASK|GDK_BUTTON5_MASK)
-/**
- * GdkEventMask:
- * @GDK_EXPOSURE_MASK: receive expose events
- * @GDK_POINTER_MOTION_MASK: receive all pointer motion events
- * @GDK_BUTTON_MOTION_MASK: receive pointer motion events while any button is pressed
- * @GDK_BUTTON1_MOTION_MASK: receive pointer motion events while 1 button is pressed
- * @GDK_BUTTON2_MOTION_MASK: receive pointer motion events while 2 button is pressed
- * @GDK_BUTTON3_MOTION_MASK: receive pointer motion events while 3 button is pressed
- * @GDK_BUTTON_PRESS_MASK: receive button press events
- * @GDK_BUTTON_RELEASE_MASK: receive button release events
- * @GDK_KEY_PRESS_MASK: receive key press events
- * @GDK_KEY_RELEASE_MASK: receive key release events
- * @GDK_ENTER_NOTIFY_MASK: receive surface enter events
- * @GDK_LEAVE_NOTIFY_MASK: receive surface leave events
- * @GDK_FOCUS_CHANGE_MASK: receive focus change events
- * @GDK_STRUCTURE_MASK: receive events about surface configuration change
- * @GDK_PROPERTY_CHANGE_MASK: receive property change events
- * @GDK_PROXIMITY_IN_MASK: receive proximity in events
- * @GDK_PROXIMITY_OUT_MASK: receive proximity out events
- * @GDK_SUBSTRUCTURE_MASK: receive events about surface configuration changes of child surfaces
- * @GDK_SCROLL_MASK: receive scroll events
- * @GDK_TOUCH_MASK: receive touch events
- * @GDK_SMOOTH_SCROLL_MASK: receive smooth scrolling events
- @GDK_TOUCHPAD_GESTURE_MASK: receive touchpad gesture events
- * @GDK_TABLET_PAD_MASK: receive tablet pad events
- * @GDK_ALL_EVENTS_MASK: the combination of all the above event masks.
- *
- * A set of bit-flags to indicate which events a surface is to receive.
- * Most of these masks map onto one or more of the #GdkEventType event types
- * above.
- *
- * See the [input handling overview][chap-input-handling] for details of
- * [event masks][event-masks] and [event propagation][event-propagation].
- *
- * If %GDK_TOUCH_MASK is enabled, the surface will receive touch events
- * from touch-enabled devices. Those will come as sequences of #GdkEventTouch
- * with type %GDK_TOUCH_UPDATE, enclosed by two events with
- * type %GDK_TOUCH_BEGIN and %GDK_TOUCH_END (or %GDK_TOUCH_CANCEL).
- * gdk_event_get_event_sequence() returns the event sequence for these
- * events, so different sequences may be distinguished.
- */
-typedef enum
-{
- GDK_EXPOSURE_MASK = 1 << 1,
- GDK_POINTER_MOTION_MASK = 1 << 2,
- GDK_BUTTON_MOTION_MASK = 1 << 4,
- GDK_BUTTON1_MOTION_MASK = 1 << 5,
- GDK_BUTTON2_MOTION_MASK = 1 << 6,
- GDK_BUTTON3_MOTION_MASK = 1 << 7,
- GDK_BUTTON_PRESS_MASK = 1 << 8,
- GDK_BUTTON_RELEASE_MASK = 1 << 9,
- GDK_KEY_PRESS_MASK = 1 << 10,
- GDK_KEY_RELEASE_MASK = 1 << 11,
- GDK_ENTER_NOTIFY_MASK = 1 << 12,
- GDK_LEAVE_NOTIFY_MASK = 1 << 13,
- GDK_FOCUS_CHANGE_MASK = 1 << 14,
- GDK_STRUCTURE_MASK = 1 << 15,
- 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_ALL_EVENTS_MASK = 0x3FFFFFE
-} GdkEventMask;
/**
* GdkGLError:
diff --git a/gdk/x11/gdkeventtranslator.h b/gdk/x11/gdkeventtranslator.h
index 4d3ea95154..2c4c415cb0 100644
--- a/gdk/x11/gdkeventtranslator.h
+++ b/gdk/x11/gdkeventtranslator.h
@@ -20,6 +20,7 @@
#include "gdktypes.h"
#include "gdkdisplay.h"
+#include "gdkinternals.h"
#include