diff --git a/gdk/gdkcairoprivate.h b/gdk/gdkcairoprivate.h
new file mode 100644
index 0000000000..b735becc8d
--- /dev/null
+++ b/gdk/gdkcairoprivate.h
@@ -0,0 +1,37 @@
+/* GDK - The GIMP Drawing Kit
+ * Copyright (C) 2020 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see .
+ */
+
+#ifndef __GDK_CAIRO_PRIVATE_H___
+#define __GDK_CAIRO_PRIVATE_H__
+
+#include
+#include
+
+G_BEGIN_DECLS
+
+gboolean _gdk_cairo_surface_extents (cairo_surface_t *surface,
+ GdkRectangle *extents);
+
+void gdk_cairo_surface_paint_pixbuf (cairo_surface_t *surface,
+ const GdkPixbuf *pixbuf);
+
+cairo_region_t *gdk_cairo_region_from_clip (cairo_t *cr);
+
+
+G_END_DECLS
+
+#endif /* __GDK_CAIRO_PRIVATE_H__ */
diff --git a/gdk/gdkdebug.h b/gdk/gdkdebug.h
new file mode 100644
index 0000000000..2098774739
--- /dev/null
+++ b/gdk/gdkdebug.h
@@ -0,0 +1,73 @@
+/* GDK - The GIMP Drawing Kit
+ * Copyright (C) 2020 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see .
+ */
+
+#ifndef __GDK_DEBUG_H__
+#define __GDK_DEBUG_H__
+
+G_BEGIN_DECLS
+
+
+typedef enum {
+ GDK_DEBUG_MISC = 1 << 0,
+ GDK_DEBUG_EVENTS = 1 << 1,
+ GDK_DEBUG_DND = 1 << 2,
+ GDK_DEBUG_INPUT = 1 << 3,
+ GDK_DEBUG_EVENTLOOP = 1 << 4,
+ GDK_DEBUG_FRAMES = 1 << 5,
+ GDK_DEBUG_SETTINGS = 1 << 6,
+ GDK_DEBUG_OPENGL = 1 << 7,
+ GDK_DEBUG_VULKAN = 1 << 8,
+ GDK_DEBUG_SELECTION = 1 << 9,
+ GDK_DEBUG_CLIPBOARD = 1 << 10,
+ /* flags below are influencing behavior */
+ GDK_DEBUG_NOGRABS = 1 << 11,
+ GDK_DEBUG_GL_DISABLE = 1 << 12,
+ GDK_DEBUG_GL_SOFTWARE = 1 << 13,
+ GDK_DEBUG_GL_TEXTURE_RECT = 1 << 14,
+ GDK_DEBUG_GL_LEGACY = 1 << 15,
+ GDK_DEBUG_GL_GLES = 1 << 16,
+ GDK_DEBUG_GL_DEBUG = 1 << 17,
+ GDK_DEBUG_VULKAN_DISABLE = 1 << 18,
+ GDK_DEBUG_VULKAN_VALIDATE = 1 << 19,
+ GDK_DEBUG_DEFAULT_SETTINGS= 1 << 20
+} GdkDebugFlags;
+
+extern guint _gdk_debug_flags;
+
+GdkDebugFlags gdk_display_get_debug_flags (GdkDisplay *display);
+void gdk_display_set_debug_flags (GdkDisplay *display,
+ GdkDebugFlags flags);
+
+#ifdef G_ENABLE_DEBUG
+
+#define GDK_DISPLAY_DEBUG_CHECK(display,type) \
+ G_UNLIKELY (gdk_display_get_debug_flags (display) & GDK_DEBUG_##type)
+#define GDK_DISPLAY_NOTE(display,type,action) G_STMT_START { \
+ if (GDK_DISPLAY_DEBUG_CHECK (display,type)) \
+ { action; }; } G_STMT_END
+
+#else /* !G_ENABLE_DEBUG */
+
+#define GDK_DISPLAY_DEBUG_CHECK(display,type) 0
+#define GDK_DISPLAY_NOTE(display,type,action)
+
+#endif /* G_ENABLE_DEBUG */
+
+#define GDK_DEBUG_CHECK(type) GDK_DISPLAY_DEBUG_CHECK (NULL,type)
+#define GDK_NOTE(type,action) GDK_DISPLAY_NOTE (NULL,type,action)
+
+#endif
diff --git a/gdk/gdkdevice.c b/gdk/gdkdevice.c
index 3dbc4ec2c4..d812290b9f 100644
--- a/gdk/gdkdevice.c
+++ b/gdk/gdkdevice.c
@@ -35,9 +35,8 @@
* The #GdkDevice object represents a single input device, such
* as a keyboard, a mouse, a touchpad, etc.
*
- * See the #GdkSeat documentation for more information
- * about the various kinds of logical and physical devices, and their
- * relationships.
+ * See the #GdkSeat documentation for more information about the
+ * various kinds of devices, and their relationships.
*/
/**
@@ -477,25 +476,6 @@ gdk_device_get_property (GObject *object,
}
}
-/*
- * gdk_device_get_position:
- * @device: pointer device to query status about.
- * @x: (out): location to store root window X coordinate of @device
- * @y: (out): location to store root window Y coordinate of @device
- *
- * Gets the current location of @device in double precision.
- */
-void
-gdk_device_get_position (GdkDevice *device,
- double *x,
- double *y)
-{
- g_return_if_fail (GDK_IS_DEVICE (device));
- g_return_if_fail (device->source != GDK_SOURCE_KEYBOARD);
-
- _gdk_device_query_state (device, NULL, NULL, x, y, NULL);
-}
-
/**
* gdk_device_get_surface_at_position:
* @device: pointer #GdkDevice to query info to.
@@ -536,7 +516,8 @@ gdk_device_get_surface_at_position (GdkDevice *device,
* gdk_device_get_name:
* @device: a #GdkDevice
*
- * Determines the name of the device.
+ * Determines the name of the device, suitable
+ * for showing in a user interface.
*
* Returns: a name
**/
@@ -553,7 +534,8 @@ gdk_device_get_name (GdkDevice *device)
* @device: a #GdkDevice
*
* Determines whether the pointer follows device motion.
- * This is not meaningful for keyboard devices, which don't have a pointer.
+ * This is not meaningful for keyboard devices, which
+ * don't have a pointer.
*
* Returns: %TRUE if the pointer follows device motion
**/
@@ -642,7 +624,7 @@ _gdk_device_set_associated_device (GdkDevice *device,
device->associated = g_object_ref (associated);
}
-/**
+/*
* gdk_device_list_physical_devices:
* @device: a logical #GdkDevice
*
@@ -681,7 +663,7 @@ _gdk_device_remove_physical_device (GdkDevice *device,
device->physical_devices = g_list_delete_link (device->physical_devices, elem);
}
-/**
+/*
* gdk_device_get_n_axes:
* @device: a pointer #GdkDevice
*
@@ -698,7 +680,7 @@ gdk_device_get_n_axes (GdkDevice *device)
return device->axes->len;
}
-/**
+/*
* gdk_device_get_axis: (skip)
* @device: a #GdkDevice
* @axes: (array): pointer to an array of axes
@@ -1194,8 +1176,7 @@ gdk_device_set_seat (GdkDevice *device,
*
* Returns the #GdkSeat the device belongs to.
*
- * Returns: (transfer none): A #GdkSeat. This memory is owned by GTK+ and
- * must not be freed.
+ * Returns: (transfer none): a #GdkSeat
**/
GdkSeat *
gdk_device_get_seat (GdkDevice *device)
diff --git a/gdk/gdkdevice.h b/gdk/gdkdevice.h
index 9501041aa7..16508c27a3 100644
--- a/gdk/gdkdevice.h
+++ b/gdk/gdkdevice.h
@@ -78,57 +78,45 @@ struct _GdkTimeCoord
};
GDK_AVAILABLE_IN_ALL
-GType gdk_device_get_type (void) G_GNUC_CONST;
+GType gdk_device_get_type (void) G_GNUC_CONST;
GDK_AVAILABLE_IN_ALL
-const char * gdk_device_get_name (GdkDevice *device);
+const char * gdk_device_get_name (GdkDevice *device);
GDK_AVAILABLE_IN_ALL
-gboolean gdk_device_get_has_cursor (GdkDevice *device);
-
-/* Functions to configure a device */
+const char * gdk_device_get_vendor_id (GdkDevice *device);
GDK_AVAILABLE_IN_ALL
-GdkInputSource gdk_device_get_source (GdkDevice *device);
+const char * gdk_device_get_product_id (GdkDevice *device);
GDK_AVAILABLE_IN_ALL
-GdkSurface * gdk_device_get_surface_at_position (GdkDevice *device,
- double *win_x,
- double *win_y);
+GdkDisplay * gdk_device_get_display (GdkDevice *device);
+GDK_AVAILABLE_IN_ALL
+GdkSeat * gdk_device_get_seat (GdkDevice *device);
+GDK_AVAILABLE_IN_ALL
+GdkDeviceTool * gdk_device_get_device_tool (GdkDevice *device);
GDK_AVAILABLE_IN_ALL
-GdkDisplay * gdk_device_get_display (GdkDevice *device);
+GdkInputSource gdk_device_get_source (GdkDevice *device);
+GDK_AVAILABLE_IN_ALL
+gboolean gdk_device_get_has_cursor (GdkDevice *device);
+GDK_AVAILABLE_IN_ALL
+guint gdk_device_get_num_touches (GdkDevice *device);
+GDK_AVAILABLE_IN_ALL
+GdkModifierType gdk_device_get_modifier_state (GdkDevice *device);
+GDK_AVAILABLE_IN_ALL
+PangoDirection gdk_device_get_direction (GdkDevice *device);
+GDK_AVAILABLE_IN_ALL
+gboolean gdk_device_has_bidi_layouts (GdkDevice *device);
+GDK_AVAILABLE_IN_ALL
+gboolean gdk_device_get_caps_lock_state (GdkDevice *device);
+GDK_AVAILABLE_IN_ALL
+gboolean gdk_device_get_num_lock_state (GdkDevice *device);
+GDK_AVAILABLE_IN_ALL
+gboolean gdk_device_get_scroll_lock_state (GdkDevice *device);
GDK_AVAILABLE_IN_ALL
-const char *gdk_device_get_vendor_id (GdkDevice *device);
-GDK_AVAILABLE_IN_ALL
-const char *gdk_device_get_product_id (GdkDevice *device);
-
-GDK_AVAILABLE_IN_ALL
-GdkSeat *gdk_device_get_seat (GdkDevice *device);
-
-GDK_AVAILABLE_IN_ALL
-guint gdk_device_get_num_touches (GdkDevice *device);
-
-GDK_AVAILABLE_IN_ALL
-GdkDeviceTool * gdk_device_get_device_tool (GdkDevice *device);
-
-GDK_AVAILABLE_IN_ALL
-gboolean gdk_device_get_caps_lock_state (GdkDevice *device);
-
-GDK_AVAILABLE_IN_ALL
-gboolean gdk_device_get_num_lock_state (GdkDevice *device);
-
-GDK_AVAILABLE_IN_ALL
-gboolean gdk_device_get_scroll_lock_state (GdkDevice *device);
-
-GDK_AVAILABLE_IN_ALL
-GdkModifierType gdk_device_get_modifier_state (GdkDevice *device);
-
-GDK_AVAILABLE_IN_ALL
-PangoDirection gdk_device_get_direction (GdkDevice *device);
-
-GDK_AVAILABLE_IN_ALL
-gboolean gdk_device_has_bidi_layouts (GdkDevice *device);
-
+GdkSurface * gdk_device_get_surface_at_position (GdkDevice *device,
+ double *win_x,
+ double *win_y);
G_END_DECLS
#endif /* __GDK_DEVICE_H__ */
diff --git a/gdk/gdkdeviceprivate.h b/gdk/gdkdeviceprivate.h
index c2d49fe068..39fdba34f0 100644
--- a/gdk/gdkdeviceprivate.h
+++ b/gdk/gdkdeviceprivate.h
@@ -22,10 +22,47 @@
#include "gdkdevicetool.h"
#include "gdkevents.h"
#include "gdkseat.h"
-#include "gdkinternals.h"
G_BEGIN_DECLS
+typedef enum
+{
+ GDK_GRAB_SUCCESS = 0,
+ GDK_GRAB_ALREADY_GRABBED = 1,
+ GDK_GRAB_INVALID_TIME = 2,
+ GDK_GRAB_NOT_VIEWABLE = 3,
+ GDK_GRAB_FROZEN = 4,
+ GDK_GRAB_FAILED = 5
+} GdkGrabStatus;
+
+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;
+
#define GDK_DEVICE_CLASS(c) (G_TYPE_CHECK_CLASS_CAST ((c), GDK_TYPE_DEVICE, GdkDeviceClass))
#define GDK_IS_DEVICE_CLASS(c) (G_TYPE_CHECK_CLASS_TYPE ((c), GDK_TYPE_DEVICE))
#define GDK_DEVICE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDK_TYPE_DEVICE, GdkDeviceClass))
@@ -154,6 +191,23 @@ void gdk_device_set_seat (GdkDevice *device,
void gdk_device_update_tool (GdkDevice *device,
GdkDeviceTool *tool);
+GdkGrabStatus gdk_device_grab (GdkDevice *device,
+ GdkSurface *surface,
+ gboolean owner_events,
+ GdkEventMask event_mask,
+ GdkCursor *cursor,
+ guint32 time_);
+void gdk_device_ungrab (GdkDevice *device,
+ guint32 time_);
+int gdk_device_get_n_axes (GdkDevice *device);
+gboolean gdk_device_get_axis (GdkDevice *device,
+ double *axes,
+ GdkAxisUse use,
+ double *value);
+GdkAxisUse gdk_device_get_axis_use (GdkDevice *device,
+ guint index_);
+
+
G_END_DECLS
#endif /* __GDK_DEVICE_PRIVATE_H__ */
diff --git a/gdk/gdkdevicetool.h b/gdk/gdkdevicetool.h
index d1e5b28e21..1a6a90d756 100644
--- a/gdk/gdkdevicetool.h
+++ b/gdk/gdkdevicetool.h
@@ -60,19 +60,19 @@ typedef enum {
} GdkDeviceToolType;
GDK_AVAILABLE_IN_ALL
-GType gdk_device_tool_get_type (void) G_GNUC_CONST;
+GType gdk_device_tool_get_type (void) G_GNUC_CONST;
GDK_AVAILABLE_IN_ALL
-guint64 gdk_device_tool_get_serial (GdkDeviceTool *tool);
+guint64 gdk_device_tool_get_serial (GdkDeviceTool *tool);
GDK_AVAILABLE_IN_ALL
-guint64 gdk_device_tool_get_hardware_id (GdkDeviceTool *tool);
+guint64 gdk_device_tool_get_hardware_id (GdkDeviceTool *tool);
GDK_AVAILABLE_IN_ALL
-GdkDeviceToolType gdk_device_tool_get_tool_type (GdkDeviceTool *tool);
+GdkDeviceToolType gdk_device_tool_get_tool_type (GdkDeviceTool *tool);
GDK_AVAILABLE_IN_ALL
-GdkAxisFlags gdk_device_tool_get_axes (GdkDeviceTool *tool);
+GdkAxisFlags gdk_device_tool_get_axes (GdkDeviceTool *tool);
G_END_DECLS
diff --git a/gdk/gdkdisplayprivate.h b/gdk/gdkdisplayprivate.h
index 3b5af7e01d..3add2aa31f 100644
--- a/gdk/gdkdisplayprivate.h
+++ b/gdk/gdkdisplayprivate.h
@@ -22,7 +22,10 @@
#include "gdksurface.h"
#include "gdkcursor.h"
#include "gdkmonitor.h"
-#include "gdkinternals.h"
+#include "gdkdebug.h"
+#include "gdksurfaceprivate.h"
+#include "gdkkeysprivate.h"
+#include "gdkdeviceprivate.h"
#ifdef GDK_RENDERING_VULKAN
#include
@@ -241,6 +244,16 @@ GdkEvent * gdk_display_get_event (GdkDisplay *display
GdkEvent * gdk_display_peek_event (GdkDisplay *display);
gboolean gdk_display_has_pending (GdkDisplay *display);
+GdkKeymap * gdk_display_get_keymap (GdkDisplay *display);
+
+void _gdk_display_set_surface_under_pointer (GdkDisplay *display,
+ GdkDevice *device,
+ GdkSurface *surface);
+
+void _gdk_windowing_got_event (GdkDisplay *display,
+ GList *event_link,
+ GdkEvent *event,
+ gulong serial);
G_END_DECLS
diff --git a/gdk/gdkdrawcontext.c b/gdk/gdkdrawcontext.c
index 6819cb74bd..75d7e61546 100644
--- a/gdk/gdkdrawcontext.c
+++ b/gdk/gdkdrawcontext.c
@@ -35,7 +35,7 @@
* rendering methods, such as #GdkGLContext or #GdkVulkanContext. It provides
* shared functionality between those contexts.
*
- * You will always interact with one of those s.ubclasses.
+ * You will always interact with one of those subclasses.
*
* A GdkDrawContext is always associated with a single toplevel surface.
*/
@@ -161,7 +161,7 @@ gdk_draw_context_class_init (GdkDrawContextClass *klass)
/**
* GdkDrawContext:surface:
*
- * The #GdkSurface the gl context is bound to.
+ * The #GdkSurface the context is bound to.
*/
pspecs[PROP_SURFACE] =
g_param_spec_object ("surface",
diff --git a/gdk/gdkevents.c b/gdk/gdkevents.c
index 67a536462c..e1b78a3de9 100644
--- a/gdk/gdkevents.c
+++ b/gdk/gdkevents.c
@@ -564,11 +564,11 @@ _gdk_event_queue_append (GdkDisplay *display,
return g_queue_peek_tail_link (&display->queued_events);
}
-/**
+/*
* _gdk_event_queue_remove_link:
* @display: a #GdkDisplay
* @node: node to remove
- *
+ *
* Removes a specified list node from the event queue.
**/
void
@@ -578,13 +578,13 @@ _gdk_event_queue_remove_link (GdkDisplay *display,
g_queue_unlink (&display->queued_events, node);
}
-/**
+/*
* _gdk_event_unqueue:
* @display: a #GdkDisplay
- *
+ *
* Removes and returns the first event from the event
* queue that is not still being filled in.
- *
+ *
* Returns: (nullable): the event, or %NULL. Ownership is transferred
* to the caller.
**/
diff --git a/gdk/gdkeventsprivate.h b/gdk/gdkeventsprivate.h
index b7eae78706..a521ca5ab5 100644
--- a/gdk/gdkeventsprivate.h
+++ b/gdk/gdkeventsprivate.h
@@ -599,6 +599,34 @@ GdkEvent * gdk_grab_broken_event_new (GdkSurface *surface,
GdkTranslatedKey * gdk_key_event_get_translated_key (GdkEvent *event,
gboolean no_lock);
+typedef enum
+{
+ /* Following flag is set for events on the event queue during
+ * translation and cleared afterwards.
+ */
+ GDK_EVENT_PENDING = 1 << 0,
+
+ /* When we are ready to draw a frame, we pause event delivery,
+ * mark all events in the queue with this flag, and deliver
+ * only those events until we finish the frame.
+ */
+ GDK_EVENT_FLUSHED = 1 << 2
+} GdkEventFlags;
+
+GdkEvent* _gdk_event_unqueue (GdkDisplay *display);
+
+void _gdk_event_emit (GdkEvent *event);
+GList* _gdk_event_queue_find_first (GdkDisplay *display);
+void _gdk_event_queue_remove_link (GdkDisplay *display,
+ GList *node);
+GList* _gdk_event_queue_append (GdkDisplay *display,
+ GdkEvent *event);
+
+void _gdk_event_queue_handle_motion_compression (GdkDisplay *display);
+void gdk_event_queue_handle_scroll_compression (GdkDisplay *display);
+void _gdk_event_queue_flush (GdkDisplay *display);
+
+
G_END_DECLS
#endif /* __GDK_EVENTS_PRIVATE_H__ */
diff --git a/gdk/gdkglcontextprivate.h b/gdk/gdkglcontextprivate.h
index 67fe1a825d..8991332b56 100644
--- a/gdk/gdkglcontextprivate.h
+++ b/gdk/gdkglcontextprivate.h
@@ -108,6 +108,18 @@ gboolean gdk_gl_context_has_debug (GdkGLContext
gboolean gdk_gl_context_use_es_bgra (GdkGLContext *context);
+typedef struct {
+ float x1, y1, x2, y2;
+ float u1, v1, u2, v2;
+} GdkTexturedQuad;
+
+void gdk_gl_texture_quads (GdkGLContext *context,
+ guint texture_target,
+ int n_quads,
+ GdkTexturedQuad *quads,
+ gboolean flip_colors);
+
+
G_END_DECLS
#endif /* __GDK_GL_CONTEXT_PRIVATE_H__ */
diff --git a/gdk/gdkinternals.h b/gdk/gdkinternals.h
index f0a7f6916a..d3559e46c5 100644
--- a/gdk/gdkinternals.h
+++ b/gdk/gdkinternals.h
@@ -28,362 +28,16 @@
#define __GDK_INTERNALS_H__
#include
-#include "gdkdisplay.h"
+#include "gdkenumtypes.h"
#include "gdkeventsprivate.h"
#include "gdksurfaceprivate.h"
-#include "gdkenumtypes.h"
#include "gdkdragprivate.h"
#include "gdkkeysprivate.h"
-
-G_BEGIN_DECLS
-
-/**********************
- * General Facilities *
- **********************/
-
-/* Debugging support */
-
-typedef enum {
- GDK_DEBUG_MISC = 1 << 0,
- GDK_DEBUG_EVENTS = 1 << 1,
- GDK_DEBUG_DND = 1 << 2,
- GDK_DEBUG_INPUT = 1 << 3,
- GDK_DEBUG_EVENTLOOP = 1 << 4,
- GDK_DEBUG_FRAMES = 1 << 5,
- GDK_DEBUG_SETTINGS = 1 << 6,
- GDK_DEBUG_OPENGL = 1 << 7,
- GDK_DEBUG_VULKAN = 1 << 8,
- GDK_DEBUG_SELECTION = 1 << 9,
- GDK_DEBUG_CLIPBOARD = 1 << 10,
- /* flags below are influencing behavior */
- GDK_DEBUG_NOGRABS = 1 << 11,
- GDK_DEBUG_GL_DISABLE = 1 << 12,
- GDK_DEBUG_GL_SOFTWARE = 1 << 13,
- GDK_DEBUG_GL_TEXTURE_RECT = 1 << 14,
- GDK_DEBUG_GL_LEGACY = 1 << 15,
- GDK_DEBUG_GL_GLES = 1 << 16,
- GDK_DEBUG_GL_DEBUG = 1 << 17,
- GDK_DEBUG_VULKAN_DISABLE = 1 << 18,
- GDK_DEBUG_VULKAN_VALIDATE = 1 << 19,
- GDK_DEBUG_DEFAULT_SETTINGS= 1 << 20
-} GdkDebugFlags;
-
-extern guint _gdk_debug_flags;
-
-GdkDebugFlags gdk_display_get_debug_flags (GdkDisplay *display);
-void gdk_display_set_debug_flags (GdkDisplay *display,
- GdkDebugFlags flags);
-
-#ifdef G_ENABLE_DEBUG
-
-#define GDK_DISPLAY_DEBUG_CHECK(display,type) \
- G_UNLIKELY (gdk_display_get_debug_flags (display) & GDK_DEBUG_##type)
-#define GDK_DISPLAY_NOTE(display,type,action) G_STMT_START { \
- if (GDK_DISPLAY_DEBUG_CHECK (display,type)) \
- { action; }; } G_STMT_END
-
-#else /* !G_ENABLE_DEBUG */
-
-#define GDK_DISPLAY_DEBUG_CHECK(display,type) 0
-#define GDK_DISPLAY_NOTE(display,type,action)
-
-#endif /* G_ENABLE_DEBUG */
-
-#define GDK_DEBUG_CHECK(type) GDK_DISPLAY_DEBUG_CHECK (NULL,type)
-#define GDK_NOTE(type,action) GDK_DISPLAY_NOTE (NULL,type,action)
-
-/* Event handling */
-
-typedef enum
-{
- /* Following flag is set for events on the event queue during
- * translation and cleared afterwards.
- */
- GDK_EVENT_PENDING = 1 << 0,
-
- /* When we are ready to draw a frame, we pause event delivery,
- * mark all events in the queue with this flag, and deliver
- * only those events until we finish the frame.
- */
- GDK_EVENT_FLUSHED = 1 << 2
-} GdkEventFlags;
-
-typedef struct _GdkSurfacePaint GdkSurfacePaint;
-
-#define GDK_SURFACE_TYPE(d) ((((GdkSurface *)(d)))->surface_type)
-#define GDK_SURFACE_DESTROYED(d) (((GdkSurface *)(d))->destroyed)
-
-GdkEvent* _gdk_event_unqueue (GdkDisplay *display);
-
-void _gdk_event_emit (GdkEvent *event);
-GList* _gdk_event_queue_find_first (GdkDisplay *display);
-void _gdk_event_queue_remove_link (GdkDisplay *display,
- GList *node);
-GList* _gdk_event_queue_append (GdkDisplay *display,
- GdkEvent *event);
-
-void _gdk_event_queue_handle_motion_compression (GdkDisplay *display);
-void gdk_event_queue_handle_scroll_compression (GdkDisplay *display);
-void _gdk_event_queue_flush (GdkDisplay *display);
-
-gboolean _gdk_cairo_surface_extents (cairo_surface_t *surface,
- GdkRectangle *extents);
-
-typedef struct {
- float x1, y1, x2, y2;
- float u1, v1, u2, v2;
-} GdkTexturedQuad;
-
-void gdk_gl_texture_quads (GdkGLContext *paint_context,
- guint texture_target,
- int n_quads,
- GdkTexturedQuad *quads,
- gboolean flip_colors);
-
-void gdk_cairo_surface_paint_pixbuf (cairo_surface_t *surface,
- const GdkPixbuf *pixbuf);
-
-cairo_region_t *gdk_cairo_region_from_clip (cairo_t *cr);
-
-/*************************************
- * Interfaces used by windowing code *
- *************************************/
-
-void _gdk_surface_destroy (GdkSurface *surface,
- gboolean foreign_destroy);
-void gdk_surface_invalidate_rect (GdkSurface *surface,
- const GdkRectangle *rect);
-void gdk_surface_invalidate_region (GdkSurface *surface,
- const cairo_region_t *region);
-void _gdk_surface_clear_update_area (GdkSurface *surface);
-void _gdk_surface_update_size (GdkSurface *surface);
-GdkGLContext * gdk_surface_get_paint_gl_context (GdkSurface *surface,
- GError **error);
-void gdk_surface_get_unscaled_size (GdkSurface *surface,
- int *unscaled_width,
- int *unscaled_height);
-gboolean gdk_surface_handle_event (GdkEvent *event);
-GdkSeat * gdk_surface_get_seat_from_event (GdkSurface *surface,
- GdkEvent *event);
-
-void gdk_surface_enter_monitor (GdkSurface *surface,
- GdkMonitor *monitor);
-void gdk_surface_leave_monitor (GdkSurface *surface,
- GdkMonitor *monitor);
-
-/*****************************************
- * Interfaces provided by windowing code *
- *****************************************/
-
-void _gdk_windowing_got_event (GdkDisplay *display,
- GList *event_link,
- GdkEvent *event,
- gulong serial);
-
-#define GDK_SURFACE_IS_MAPPED(surface) (((surface)->state & GDK_SURFACE_STATE_WITHDRAWN) == 0)
-
-void _gdk_synthesize_crossing_events (GdkDisplay *display,
- GdkSurface *src,
- GdkSurface *dest,
- GdkDevice *device,
- GdkDevice *source_device,
- GdkCrossingMode mode,
- double toplevel_x,
- double toplevel_y,
- GdkModifierType mask,
- guint32 time_,
- GdkEvent *event_in_queue,
- gulong serial,
- gboolean non_linear);
-void _gdk_display_set_surface_under_pointer (GdkDisplay *display,
- GdkDevice *device,
- GdkSurface *surface);
-
-void gdk_surface_destroy_notify (GdkSurface *surface);
-
-void gdk_synthesize_surface_state (GdkSurface *surface,
- GdkSurfaceState unset_flags,
- GdkSurfaceState set_flags);
-
-/**
- * GdkGrabStatus:
- * @GDK_GRAB_SUCCESS: the resource was successfully grabbed.
- * @GDK_GRAB_ALREADY_GRABBED: the resource is actively grabbed by another client.
- * @GDK_GRAB_INVALID_TIME: the resource was grabbed more recently than the
- * specified time.
- * @GDK_GRAB_NOT_VIEWABLE: the grab surface or the @confine_to surface are not
- * viewable.
- * @GDK_GRAB_FROZEN: the resource is frozen by an active grab of another client.
- * @GDK_GRAB_FAILED: the grab failed for some other reason
- *
- * Returned by gdk_device_grab() to indicate success or the reason for the
- * failure of the grab attempt.
- */
-typedef enum
-{
- GDK_GRAB_SUCCESS = 0,
- GDK_GRAB_ALREADY_GRABBED = 1,
- GDK_GRAB_INVALID_TIME = 2,
- GDK_GRAB_NOT_VIEWABLE = 3,
- GDK_GRAB_FROZEN = 4,
- GDK_GRAB_FAILED = 5
-} GdkGrabStatus;
-
-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,
- gboolean owner_events,
- GdkEventMask event_mask,
- GdkCursor *cursor,
- guint32 time_);
-void gdk_device_ungrab (GdkDevice *device,
- guint32 time_);
-void gdk_device_get_position (GdkDevice *device,
- double *x,
- double *y);
-int gdk_device_get_n_axes (GdkDevice *device);
-gboolean gdk_device_get_axis (GdkDevice *device,
- double *axes,
- GdkAxisUse use,
- double *value);
-GdkAxisUse gdk_device_get_axis_use (GdkDevice *device,
- guint index_);
-
-void gdk_surface_get_root_coords (GdkSurface *surface,
- int x,
- int y,
- int *root_x,
- int *root_y);
-void gdk_surface_get_origin (GdkSurface *surface,
- int *x,
- int *y);
-
-
-void gdk_surface_get_geometry (GdkSurface *surface,
- int *x,
- int *y,
- int *width,
- int *height);
-
-GdkGLContext *gdk_surface_get_shared_data_gl_context (GdkSurface *surface);
-
-typedef enum
-{
- GDK_HINT_MIN_SIZE = 1 << 1,
- GDK_HINT_MAX_SIZE = 1 << 2,
-} GdkSurfaceHints;
-
-typedef enum
-{
- GDK_SURFACE_TYPE_HINT_NORMAL,
- GDK_SURFACE_TYPE_HINT_DIALOG,
- GDK_SURFACE_TYPE_HINT_MENU, /* Torn off menu */
- GDK_SURFACE_TYPE_HINT_TOOLBAR,
- GDK_SURFACE_TYPE_HINT_SPLASHSCREEN,
- GDK_SURFACE_TYPE_HINT_UTILITY,
- GDK_SURFACE_TYPE_HINT_DOCK,
- GDK_SURFACE_TYPE_HINT_DESKTOP,
- GDK_SURFACE_TYPE_HINT_DROPDOWN_MENU, /* A drop down menu (from a menubar) */
- GDK_SURFACE_TYPE_HINT_POPUP_MENU, /* A popup menu (from right-click) */
- GDK_SURFACE_TYPE_HINT_TOOLTIP,
- GDK_SURFACE_TYPE_HINT_NOTIFICATION,
- GDK_SURFACE_TYPE_HINT_COMBO,
- GDK_SURFACE_TYPE_HINT_DND
-} GdkSurfaceTypeHint;
-
-typedef struct _GdkGeometry GdkGeometry;
-
-struct _GdkGeometry
-{
- int min_width;
- int min_height;
- int max_width;
- int max_height;
-};
-
-GDK_AVAILABLE_IN_ALL
-void gdk_surface_constrain_size (GdkGeometry *geometry,
- GdkSurfaceHints flags,
- int width,
- int height,
- int *new_width,
- int *new_height);
-
-/*
- * GdkSeatGrabPrepareFunc:
- * @seat: the #GdkSeat being grabbed
- * @surface: the #GdkSurface being grabbed
- * @user_data: user data passed in gdk_seat_grab()
- *
- * Type of the callback used to set up @surface so it can be
- * grabbed. A typical action would be ensuring the surface is
- * visible, although there's room for other initialization
- * actions.
- */
-typedef void (* GdkSeatGrabPrepareFunc) (GdkSeat *seat,
- GdkSurface *surface,
- gpointer user_data);
-
-GdkGrabStatus gdk_seat_grab (GdkSeat *seat,
- GdkSurface *surface,
- GdkSeatCapabilities capabilities,
- gboolean owner_events,
- GdkCursor *cursor,
- GdkEvent *event,
- GdkSeatGrabPrepareFunc prepare_func,
- gpointer prepare_func_data);
-void gdk_seat_ungrab (GdkSeat *seat);
-GdkSurface * gdk_surface_new_temp (GdkDisplay *display,
- const GdkRectangle *position);
-
-GdkKeymap * gdk_display_get_keymap (GdkDisplay *display);
-
-void gdk_surface_begin_resize_drag (GdkSurface *surface,
- GdkSurfaceEdge edge,
- GdkDevice *device,
- int button,
- int x,
- int y,
- guint32 timestamp);
-
-void gdk_surface_begin_move_drag (GdkSurface *surface,
- GdkDevice *device,
- int button,
- int x,
- int y,
- guint32 timestamp);
-
-void gdk_surface_freeze_updates (GdkSurface *surface);
-void gdk_surface_thaw_updates (GdkSurface *surface);
-
-
-G_END_DECLS
+#include "gdkdeviceprivate.h"
+#include "gdkseatprivate.h"
+#include "gdkdisplayprivate.h"
+#include "gdkcairoprivate.h"
+#include "gdkglcontextprivate.h"
+#include "gdkdebug.h"
#endif /* __GDK_INTERNALS_H__ */
diff --git a/gdk/gdkseat.c b/gdk/gdkseat.c
index a88e8e7785..75ef348a2d 100644
--- a/gdk/gdkseat.c
+++ b/gdk/gdkseat.c
@@ -232,7 +232,7 @@ gdk_seat_get_capabilities (GdkSeat *seat)
return seat_class->get_capabilities (seat);
}
-/**
+/*
* gdk_seat_grab:
* @seat: a #GdkSeat
* @surface: the #GdkSurface which will own the grab
@@ -306,7 +306,7 @@ gdk_seat_grab (GdkSeat *seat,
event, prepare_func, prepare_func_data);
}
-/**
+/*
* gdk_seat_ungrab:
* @seat: a #GdkSeat
*
@@ -332,7 +332,7 @@ gdk_seat_ungrab (GdkSeat *seat)
*
* Returns: (transfer container) (element-type GdkDevice): A list of #GdkDevices.
* The list must be freed with g_list_free(), the elements are owned
- * by GDK and must not be freed.
+ * by GTK and must not be freed.
**/
GList *
gdk_seat_get_devices (GdkSeat *seat,
@@ -350,9 +350,9 @@ gdk_seat_get_devices (GdkSeat *seat,
* gdk_seat_get_pointer:
* @seat: a #GdkSeat
*
- * Returns the logical device that routes pointer events.
+ * Returns the device that routes pointer events.
*
- * Returns: (transfer none) (nullable): a logical #GdkDevice with pointer
+ * Returns: (transfer none) (nullable): a #GdkDevice with pointer
* capabilities. This object is owned by GTK and must not be freed.
**/
GdkDevice *
@@ -370,9 +370,9 @@ gdk_seat_get_pointer (GdkSeat *seat)
* gdk_seat_get_keyboard:
* @seat: a #GdkSeat
*
- * Returns the logical device that routes keyboard events.
+ * Returns the device that routes keyboard events.
*
- * Returns: (transfer none) (nullable): a logical #GdkDevice with keyboard
+ * Returns: (transfer none) (nullable): a #GdkDevice with keyboard
* capabilities. This object is owned by GTK and must not be freed.
**/
GdkDevice *
@@ -468,8 +468,8 @@ gdk_seat_get_tool (GdkSeat *seat,
* Returns all #GdkDeviceTools that are known to the
* application.
*
- * Returns: (transfer container) (element-type Gdk.DeviceTool): A list of tools. Free with
- * g_list_free().
+ * Returns: (transfer container) (element-type Gdk.DeviceTool):
+ * A list of tools. Free with g_list_free().
**/
GList *
gdk_seat_get_tools (GdkSeat *seat)
diff --git a/gdk/gdkseatprivate.h b/gdk/gdkseatprivate.h
index 171a3bde3a..12453896ad 100644
--- a/gdk/gdkseatprivate.h
+++ b/gdk/gdkseatprivate.h
@@ -23,7 +23,11 @@
typedef struct _GdkSeatClass GdkSeatClass;
#include "gdkseat.h"
-#include "gdkinternals.h"
+#include "gdkdeviceprivate.h"
+
+typedef void (* GdkSeatGrabPrepareFunc) (GdkSeat *seat,
+ GdkSurface *surface,
+ gpointer user_data);
#define GDK_SEAT_CLASS(c) (G_TYPE_CHECK_CLASS_CAST ((c), GDK_TYPE_SEAT, GdkSeatClass))
#define GDK_IS_SEAT_CLASS(c) (G_TYPE_CHECK_CLASS_TYPE ((c), GDK_TYPE_SEAT))
@@ -75,4 +79,15 @@ GdkDeviceTool *
guint64 serial,
guint64 hw_id);
+GdkGrabStatus gdk_seat_grab (GdkSeat *seat,
+ GdkSurface *surface,
+ GdkSeatCapabilities capabilities,
+ gboolean owner_events,
+ GdkCursor *cursor,
+ GdkEvent *event,
+ GdkSeatGrabPrepareFunc prepare_func,
+ gpointer prepare_func_data);
+void gdk_seat_ungrab (GdkSeat *seat);
+
+
#endif /* __GDK_SEAT_PRIVATE_H__ */
diff --git a/gdk/gdksurface.c b/gdk/gdksurface.c
index db48e34f5a..2145736901 100644
--- a/gdk/gdksurface.c
+++ b/gdk/gdksurface.c
@@ -1562,7 +1562,7 @@ gdk_surface_thaw_toplevel_updates (GdkSurface *surface)
}
-/**
+/*
* gdk_surface_constrain_size:
* @geometry: a #GdkGeometry structure
* @flags: a mask indicating what portions of @geometry are set
diff --git a/gdk/gdksurfaceprivate.h b/gdk/gdksurfaceprivate.h
index c9410f506e..e0a0c20b50 100644
--- a/gdk/gdksurfaceprivate.h
+++ b/gdk/gdksurfaceprivate.h
@@ -171,6 +171,11 @@ struct _GdkSurfaceClass
GError **error);
};
+#define GDK_SURFACE_DESTROYED(d) (((GdkSurface *)(d))->destroyed)
+
+#define GDK_SURFACE_IS_MAPPED(surface) (((surface)->state & GDK_SURFACE_STATE_WITHDRAWN) == 0)
+
+
void gdk_surface_set_state (GdkSurface *surface,
GdkSurfaceState new_state);
@@ -247,6 +252,84 @@ gdk_gravity_flip_vertically (GdkGravity anchor)
g_assert_not_reached ();
}
+void _gdk_surface_destroy (GdkSurface *surface,
+ gboolean foreign_destroy);
+void gdk_surface_invalidate_rect (GdkSurface *surface,
+ const GdkRectangle *rect);
+void gdk_surface_invalidate_region (GdkSurface *surface,
+ const cairo_region_t *region);
+void _gdk_surface_clear_update_area (GdkSurface *surface);
+void _gdk_surface_update_size (GdkSurface *surface);
+
+GdkGLContext * gdk_surface_get_paint_gl_context (GdkSurface *surface,
+ GError **error);
+GdkGLContext * gdk_surface_get_shared_data_gl_context (GdkSurface *surface);
+
+void gdk_surface_get_unscaled_size (GdkSurface *surface,
+ int *unscaled_width,
+ int *unscaled_height);
+gboolean gdk_surface_handle_event (GdkEvent *event);
+GdkSeat * gdk_surface_get_seat_from_event (GdkSurface *surface,
+ GdkEvent *event);
+
+void gdk_surface_enter_monitor (GdkSurface *surface,
+ GdkMonitor *monitor);
+void gdk_surface_leave_monitor (GdkSurface *surface,
+ GdkMonitor *monitor);
+
+GdkSurface * gdk_surface_new_temp (GdkDisplay *display,
+ const GdkRectangle *position);
+
+void gdk_surface_destroy_notify (GdkSurface *surface);
+
+void gdk_synthesize_surface_state (GdkSurface *surface,
+ GdkSurfaceState unset_flags,
+ GdkSurfaceState set_flags);
+
+void gdk_surface_get_root_coords (GdkSurface *surface,
+ int x,
+ int y,
+ int *root_x,
+ int *root_y);
+void gdk_surface_get_origin (GdkSurface *surface,
+ int *x,
+ int *y);
+
+
+void gdk_surface_get_geometry (GdkSurface *surface,
+ int *x,
+ int *y,
+ int *width,
+ int *height);
+
+void gdk_surface_freeze_updates (GdkSurface *surface);
+void gdk_surface_thaw_updates (GdkSurface *surface);
+
+
+typedef enum
+{
+ GDK_HINT_MIN_SIZE = 1 << 1,
+ GDK_HINT_MAX_SIZE = 1 << 2,
+} GdkSurfaceHints;
+
+typedef struct _GdkGeometry GdkGeometry;
+
+struct _GdkGeometry
+{
+ int min_width;
+ int min_height;
+ int max_width;
+ int max_height;
+};
+
+GDK_AVAILABLE_IN_ALL
+void gdk_surface_constrain_size (GdkGeometry *geometry,
+ GdkSurfaceHints flags,
+ int width,
+ int height,
+ int *new_width,
+ int *new_height);
+
G_END_DECLS
#endif /* __GDK_SURFACE_PRIVATE_H__ */
diff --git a/gdk/wayland/gdksurface-wayland.c b/gdk/wayland/gdksurface-wayland.c
index a7ecb7b19b..b788be2ce7 100644
--- a/gdk/wayland/gdksurface-wayland.c
+++ b/gdk/wayland/gdksurface-wayland.c
@@ -106,7 +106,6 @@ struct _GdkWaylandSurface
unsigned int awaiting_frame : 1;
unsigned int awaiting_frame_frozen : 1;
unsigned int is_drag_surface : 1;
- GdkSurfaceTypeHint hint;
int pending_buffer_offset_x;
int pending_buffer_offset_y;
diff --git a/gdk/win32/gdkdrag-win32.c b/gdk/win32/gdkdrag-win32.c
index 9bb6f91539..73b0933077 100644
--- a/gdk/win32/gdkdrag-win32.c
+++ b/gdk/win32/gdkdrag-win32.c
@@ -1730,7 +1730,7 @@ _gdk_win32_surface_drag_begin (GdkSurface *surface,
GDK_NOTE (DND, g_print ("_gdk_win32_surface_drag_begin\n"));
- gdk_device_get_position (device, &px, &py);
+ _gdk_device_query_state (device, NULL, NULL, &px, &py, NULL);
x_root = round (px + dx);
y_root = round (py + dy);
diff --git a/gdk/win32/gdksurface-win32.c b/gdk/win32/gdksurface-win32.c
index a559cb3271..4078635148 100644
--- a/gdk/win32/gdksurface-win32.c
+++ b/gdk/win32/gdksurface-win32.c
@@ -140,7 +140,6 @@ gdk_win32_surface_init (GdkWin32Surface *impl)
impl->hicon_big = NULL;
impl->hicon_small = NULL;
impl->hint_flags = 0;
- impl->type_hint = GDK_SURFACE_TYPE_HINT_NORMAL;
impl->transient_owner = NULL;
impl->transient_children = NULL;
impl->num_transients = 0;
@@ -332,7 +331,7 @@ get_default_title (void)
* get its own class
*/
static ATOM
-RegisterGdkClass (GdkSurfaceType wtype, GdkSurfaceTypeHint wtype_hint)
+RegisterGdkClass (GdkSurfaceType wtype)
{
static ATOM klassTOPLEVEL = 0;
static ATOM klassTEMP = 0;
@@ -613,7 +612,7 @@ _gdk_win32_display_create_surface (GdkDisplay *display,
* under the mouse cursor, this will kill any DND.
*/
- klass = RegisterGdkClass (surface_type, impl->type_hint);
+ klass = RegisterGdkClass (surface_type);
wtitle = g_utf8_to_utf16 (title, -1, NULL, NULL, NULL);
diff --git a/gdk/win32/gdksurface-win32.h b/gdk/win32/gdksurface-win32.h
index 1f54b7b070..603401f856 100644
--- a/gdk/win32/gdksurface-win32.h
+++ b/gdk/win32/gdksurface-win32.h
@@ -256,8 +256,6 @@ struct _GdkWin32Surface
*/
GdkDrop *drop;
- GdkSurfaceTypeHint type_hint;
-
GdkSurface *transient_owner;
GSList *transient_children;
int num_transients;
diff --git a/gdk/x11/gdksurface-x11.c b/gdk/x11/gdksurface-x11.c
index b0a49cc737..31ef5878c1 100644
--- a/gdk/x11/gdksurface-x11.c
+++ b/gdk/x11/gdksurface-x11.c
@@ -884,6 +884,24 @@ disconnect_frame_clock (GdkSurface *surface)
}
}
+typedef enum
+{
+ GDK_SURFACE_TYPE_HINT_NORMAL,
+ GDK_SURFACE_TYPE_HINT_DIALOG,
+ GDK_SURFACE_TYPE_HINT_MENU, /* Torn off menu */
+ GDK_SURFACE_TYPE_HINT_TOOLBAR,
+ GDK_SURFACE_TYPE_HINT_SPLASHSCREEN,
+ GDK_SURFACE_TYPE_HINT_UTILITY,
+ GDK_SURFACE_TYPE_HINT_DOCK,
+ GDK_SURFACE_TYPE_HINT_DESKTOP,
+ GDK_SURFACE_TYPE_HINT_DROPDOWN_MENU, /* A drop down menu (from a menubar) */
+ GDK_SURFACE_TYPE_HINT_POPUP_MENU, /* A popup menu (from right-click) */
+ GDK_SURFACE_TYPE_HINT_TOOLTIP,
+ GDK_SURFACE_TYPE_HINT_NOTIFICATION,
+ GDK_SURFACE_TYPE_HINT_COMBO,
+ GDK_SURFACE_TYPE_HINT_DND
+} GdkSurfaceTypeHint;
+
static void gdk_x11_surface_set_title (GdkSurface *surface,
const char *title);
static void gdk_x11_surface_set_type_hint (GdkSurface *surface,