From 9d0448756f378a6271628cc8b7ec8ac129088931 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Fri, 21 Apr 2023 05:41:48 +0200 Subject: [PATCH] display: Remove ::create_surface() vfunc Instead, have a toplevel_type and popup_type in GdkDisplay and call g_object_new() with those types. --- gdk/broadway/gdkdisplay-broadway.c | 3 ++- gdk/broadway/gdkprivate-broadway.h | 3 --- gdk/broadway/gdksurface-broadway.c | 36 ----------------------------- gdk/broadway/gdksurface-broadway.h | 8 +++++++ gdk/gdkdisplay.c | 10 -------- gdk/gdkdisplayprivate.h | 9 ++------ gdk/gdksurface.c | 24 ++++++++----------- gdk/gdksurfaceprivate.h | 6 ----- gdk/macos/gdkmacosdisplay.c | 21 ++++------------- gdk/macos/gdkmacossurface-private.h | 3 --- gdk/macos/gdkmacossurface.c | 34 +-------------------------- gdk/wayland/gdkdisplay-wayland.c | 3 ++- gdk/wayland/gdkprivate-wayland.h | 4 ---- gdk/wayland/gdksurface-wayland.c | 30 ------------------------ gdk/win32/gdkdisplay-win32.c | 4 +++- gdk/win32/gdkprivate-win32.h | 4 ---- gdk/win32/gdksurface-win32.c | 36 ----------------------------- gdk/win32/gdksurface-win32.h | 8 +++++++ gdk/x11/gdkdisplay-x11.c | 3 ++- gdk/x11/gdkprivate-x11.h | 3 --- gdk/x11/gdksurface-x11.c | 36 ----------------------------- gdk/x11/gdksurface-x11.h | 8 +++++++ 22 files changed, 50 insertions(+), 246 deletions(-) diff --git a/gdk/broadway/gdkdisplay-broadway.c b/gdk/broadway/gdkdisplay-broadway.c index 1610bc1673..47305ba54c 100644 --- a/gdk/broadway/gdkdisplay-broadway.c +++ b/gdk/broadway/gdkdisplay-broadway.c @@ -477,6 +477,8 @@ gdk_broadway_display_class_init (GdkBroadwayDisplayClass * class) object_class->dispose = gdk_broadway_display_dispose; object_class->finalize = gdk_broadway_display_finalize; + display_class->toplevel_type = GDK_TYPE_BROADWAY_TOPLEVEL; + display_class->popup_type = GDK_TYPE_BROADWAY_POPUP; display_class->cairo_context_type = GDK_TYPE_BROADWAY_CAIRO_CONTEXT; display_class->get_name = gdk_broadway_display_get_name; @@ -488,7 +490,6 @@ gdk_broadway_display_class_init (GdkBroadwayDisplayClass * class) display_class->get_next_serial = gdk_broadway_display_get_next_serial; display_class->notify_startup_complete = gdk_broadway_display_notify_startup_complete; - display_class->create_surface = gdk_broadway_display_create_surface; display_class->get_keymap = _gdk_broadway_display_get_keymap; display_class->get_monitors = gdk_broadway_display_get_monitors; diff --git a/gdk/broadway/gdkprivate-broadway.h b/gdk/broadway/gdkprivate-broadway.h index 085f33010c..0295aa1021 100644 --- a/gdk/broadway/gdkprivate-broadway.h +++ b/gdk/broadway/gdkprivate-broadway.h @@ -103,9 +103,6 @@ void _gdk_broadway_display_get_default_cursor_size (GdkDisplay *display, void _gdk_broadway_display_get_maximal_cursor_size (GdkDisplay *display, guint *width, guint *height); -GdkSurface * gdk_broadway_display_create_surface (GdkDisplay *display, - GdkSurfaceType surface_type, - GdkSurface *parent); GdkKeymap* _gdk_broadway_display_get_keymap (GdkDisplay *display); void _gdk_broadway_display_consume_all_input (GdkDisplay *display); BroadwayInputMsg * _gdk_broadway_display_block_for_input (GdkDisplay *display, diff --git a/gdk/broadway/gdksurface-broadway.c b/gdk/broadway/gdksurface-broadway.c index 592a71c9fa..3937701fd9 100644 --- a/gdk/broadway/gdksurface-broadway.c +++ b/gdk/broadway/gdksurface-broadway.c @@ -49,14 +49,6 @@ G_DEFINE_TYPE (GdkBroadwaySurface, gdk_broadway_surface, GDK_TYPE_SURFACE) -GType gdk_broadway_toplevel_get_type (void) G_GNUC_CONST; -GType gdk_broadway_popup_get_type (void) G_GNUC_CONST; -GType gdk_broadway_drag_surface_get_type (void) G_GNUC_CONST; - -#define GDK_TYPE_BROADWAY_TOPLEVEL (gdk_broadway_toplevel_get_type ()) -#define GDK_TYPE_BROADWAY_POPUP (gdk_broadway_popup_get_type ()) -#define GDK_TYPE_BROADWAY_DRAG_SURFACE (gdk_broadway_drag_surface_get_type ()) - /* We need to flush in an idle rather than AFTER_PAINT, as the clock is frozen during e.g. surface resizes so the paint will not happen and the surface resize request is never flushed. */ @@ -227,34 +219,6 @@ _gdk_broadway_roundtrip_notify (GdkSurface *surface, } } -GdkSurface * -gdk_broadway_display_create_surface (GdkDisplay *display, - GdkSurfaceType surface_type, - GdkSurface *parent) -{ - GdkSurface *surface; - - switch (surface_type) - { - case GDK_SURFACE_TOPLEVEL: - surface = g_object_new (GDK_TYPE_BROADWAY_TOPLEVEL, - "display", display, - NULL); - break; - case GDK_SURFACE_POPUP: - surface = g_object_new (GDK_TYPE_BROADWAY_POPUP, - "parent", parent, - "display", display, - NULL); - break; - default: - g_assert_not_reached (); - break; - } - - return surface; -} - static void _gdk_broadway_surface_destroy (GdkSurface *surface, gboolean foreign_destroy) diff --git a/gdk/broadway/gdksurface-broadway.h b/gdk/broadway/gdksurface-broadway.h index 7048289168..776681f3c6 100644 --- a/gdk/broadway/gdksurface-broadway.h +++ b/gdk/broadway/gdksurface-broadway.h @@ -32,6 +32,14 @@ G_BEGIN_DECLS /* Surface implementation for Broadway */ +GType gdk_broadway_toplevel_get_type (void) G_GNUC_CONST; +GType gdk_broadway_popup_get_type (void) G_GNUC_CONST; +GType gdk_broadway_drag_surface_get_type (void) G_GNUC_CONST; + +#define GDK_TYPE_BROADWAY_TOPLEVEL (gdk_broadway_toplevel_get_type ()) +#define GDK_TYPE_BROADWAY_POPUP (gdk_broadway_popup_get_type ()) +#define GDK_TYPE_BROADWAY_DRAG_SURFACE (gdk_broadway_drag_surface_get_type ()) + struct _GdkBroadwaySurface { GdkSurface parent_instance; diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c index 87277f864d..1bdf40c711 100644 --- a/gdk/gdkdisplay.c +++ b/gdk/gdkdisplay.c @@ -1196,16 +1196,6 @@ _gdk_display_unpause_events (GdkDisplay *display) display->event_pause_count--; } -GdkSurface * -gdk_display_create_surface (GdkDisplay *display, - GdkSurfaceType surface_type, - GdkSurface *parent) -{ - return GDK_DISPLAY_GET_CLASS (display)->create_surface (display, - surface_type, - parent); -} - /*< private > * gdk_display_get_keymap: * @display: the `GdkDisplay` diff --git a/gdk/gdkdisplayprivate.h b/gdk/gdkdisplayprivate.h index 00fb70511b..022b3f6f3f 100644 --- a/gdk/gdkdisplayprivate.h +++ b/gdk/gdkdisplayprivate.h @@ -114,6 +114,8 @@ struct _GdkDisplayClass { GObjectClass parent_class; + GType toplevel_type; /* Type for GdkToplevel, must be set */ + GType popup_type; /* Type for GdkPopup, must be set */ GType cairo_context_type; /* type for GdkCairoContext, must be set */ GType vk_context_type; /* type for GdkVulkanContext, must be set if vk_extension_name != NULL */ const char *vk_extension_name; /* Name of required windowing vulkan extension or %NULL (default) if Vulkan isn't supported */ @@ -134,10 +136,6 @@ struct _GdkDisplayClass const char *startup_id); const char * (*get_startup_notification_id) (GdkDisplay *display); - GdkSurface * (*create_surface) (GdkDisplay *display, - GdkSurfaceType surface_type, - GdkSurface *parent); - GdkKeymap * (*get_keymap) (GdkDisplay *display); GdkGLContext * (* init_gl) (GdkDisplay *display, @@ -203,9 +201,6 @@ void _gdk_display_pointer_info_foreach (GdkDisplay *display gulong _gdk_display_get_next_serial (GdkDisplay *display); void _gdk_display_pause_events (GdkDisplay *display); void _gdk_display_unpause_events (GdkDisplay *display); -GdkSurface * gdk_display_create_surface (GdkDisplay *display, - GdkSurfaceType surface_type, - GdkSurface *parent); GdkGLContext * gdk_display_get_gl_context (GdkDisplay *display); diff --git a/gdk/gdksurface.c b/gdk/gdksurface.c index 209ae3080d..981a511935 100644 --- a/gdk/gdksurface.c +++ b/gdk/gdksurface.c @@ -853,16 +853,6 @@ _gdk_surface_update_size (GdkSurface *surface) g_object_notify (G_OBJECT (surface), "height"); } -static GdkSurface * -gdk_surface_new (GdkDisplay *display, - GdkSurfaceType surface_type, - GdkSurface *parent) -{ - return gdk_display_create_surface (display, - surface_type, - parent); -} - /** * gdk_surface_new_toplevel: (constructor) * @display: the display to create the surface on @@ -876,8 +866,9 @@ gdk_surface_new_toplevel (GdkDisplay *display) { g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL); - return gdk_surface_new (display, GDK_SURFACE_TOPLEVEL, - NULL); + return g_object_new (GDK_DISPLAY_GET_CLASS (display)->toplevel_type, + "display", display, + NULL); } /** @@ -897,11 +888,16 @@ gdk_surface_new_popup (GdkSurface *parent, gboolean autohide) { GdkSurface *surface; + GdkDisplay *display; g_return_val_if_fail (GDK_IS_SURFACE (parent), NULL); - surface = gdk_surface_new (parent->display, GDK_SURFACE_POPUP, - parent); + display = gdk_surface_get_display (parent); + + surface = g_object_new (GDK_DISPLAY_GET_CLASS (display)->popup_type, + "display", display, + "parent", parent, + NULL); surface->autohide = autohide; diff --git a/gdk/gdksurfaceprivate.h b/gdk/gdksurfaceprivate.h index b9e5c8f066..1bf930822f 100644 --- a/gdk/gdksurfaceprivate.h +++ b/gdk/gdksurfaceprivate.h @@ -26,12 +26,6 @@ G_BEGIN_DECLS -typedef enum -{ - GDK_SURFACE_TOPLEVEL, - GDK_SURFACE_POPUP, -} GdkSurfaceType; - struct _GdkSurface { GObject parent_instance; diff --git a/gdk/macos/gdkmacosdisplay.c b/gdk/macos/gdkmacosdisplay.c index d4996239eb..e73c012aeb 100644 --- a/gdk/macos/gdkmacosdisplay.c +++ b/gdk/macos/gdkmacosdisplay.c @@ -36,8 +36,10 @@ #include "gdkmacosglcontext-private.h" #include "gdkmacoskeymap-private.h" #include "gdkmacosmonitor-private.h" +#include "gdkmacospopupsurface-private.h" #include "gdkmacosseat-private.h" #include "gdkmacossurface-private.h" +#include "gdkmacostoplevelsurface-private.h" #include "gdkmacosutils-private.h" G_DEFINE_TYPE (GdkMacosDisplay, gdk_macos_display, GDK_TYPE_DISPLAY) @@ -539,22 +541,6 @@ _gdk_macos_display_surface_resigned_main (GdkMacosDisplay *self, _gdk_macos_display_clear_sorting (self); } -static GdkSurface * -gdk_macos_display_create_surface (GdkDisplay *display, - GdkSurfaceType surface_type, - GdkSurface *parent) -{ - GdkMacosDisplay *self = (GdkMacosDisplay *)display; - GdkMacosSurface *surface; - - g_assert (GDK_IS_MACOS_DISPLAY (self)); - g_assert (!parent || GDK_IS_MACOS_SURFACE (parent)); - - surface = _gdk_macos_surface_new (self, surface_type, parent); - - return GDK_SURFACE (surface); -} - static GdkKeymap * gdk_macos_display_get_keymap (GdkDisplay *display) { @@ -610,10 +596,11 @@ gdk_macos_display_class_init (GdkMacosDisplayClass *klass) object_class->finalize = gdk_macos_display_finalize; + display_class->toplevel_type = GDK_TYPE_MACOS_TOPLEVEL_SURFACE; + display_class->popup_type = GDK_TYPE_MACOS_POPUP_SURFACE; display_class->cairo_context_type = GDK_TYPE_MACOS_CAIRO_CONTEXT; display_class->beep = gdk_macos_display_beep; - display_class->create_surface = gdk_macos_display_create_surface; display_class->flush = gdk_macos_display_flush; display_class->get_keymap = gdk_macos_display_get_keymap; display_class->get_monitors = gdk_macos_display_get_monitors; diff --git a/gdk/macos/gdkmacossurface-private.h b/gdk/macos/gdkmacossurface-private.h index bab6e717b6..d10485bc4b 100644 --- a/gdk/macos/gdkmacossurface-private.h +++ b/gdk/macos/gdkmacossurface-private.h @@ -84,9 +84,6 @@ struct _GdkMacosSurfaceClass GdkSurfaceClass parent_class; }; -GdkMacosSurface *_gdk_macos_surface_new (GdkMacosDisplay *display, - GdkSurfaceType surface_type, - GdkSurface *parent); NSWindow *_gdk_macos_surface_get_native (GdkMacosSurface *self); void _gdk_macos_surface_set_native (GdkMacosSurface *self, GdkMacosWindow *window); diff --git a/gdk/macos/gdkmacossurface.c b/gdk/macos/gdkmacossurface.c index 51f6ff0cad..3f46194904 100644 --- a/gdk/macos/gdkmacossurface.c +++ b/gdk/macos/gdkmacossurface.c @@ -44,6 +44,7 @@ #include "gdkmacosmonitor-private.h" #include "gdkmacospopupsurface-private.h" #include "gdkmacosutils-private.h" +#include "gdkmacostoplevelsurface-private.h" G_DEFINE_ABSTRACT_TYPE (GdkMacosSurface, gdk_macos_surface, GDK_TYPE_SURFACE) @@ -586,39 +587,6 @@ gdk_macos_surface_init (GdkMacosSurface *self) self->monitors = g_ptr_array_new_with_free_func (g_object_unref); } -GdkMacosSurface * -_gdk_macos_surface_new (GdkMacosDisplay *display, - GdkSurfaceType surface_type, - GdkSurface *parent) -{ - GdkMacosSurface *ret; - - g_return_val_if_fail (GDK_IS_MACOS_DISPLAY (display), NULL); - - switch (surface_type) - { - case GDK_SURFACE_TOPLEVEL: - ret = g_object_new (GDK_TYPE_MACOS_TOPLEVEL_SURFACE, - "display", display, - NULL); - break; - - case GDK_SURFACE_POPUP: - ret = g_object_new (GDK_TYPE_MACOS_POPUP_SURFACE, - "display", display, - "parent", parent, - NULL); - - break; - - default: - g_warn_if_reached (); - ret = NULL; - } - - return g_steal_pointer (&ret); -} - void _gdk_macos_surface_get_shadow (GdkMacosSurface *self, int *top, diff --git a/gdk/wayland/gdkdisplay-wayland.c b/gdk/wayland/gdkdisplay-wayland.c index 04dd738649..941a6d00f4 100644 --- a/gdk/wayland/gdkdisplay-wayland.c +++ b/gdk/wayland/gdkdisplay-wayland.c @@ -967,6 +967,8 @@ gdk_wayland_display_class_init (GdkWaylandDisplayClass *class) object_class->dispose = gdk_wayland_display_dispose; object_class->finalize = gdk_wayland_display_finalize; + display_class->toplevel_type = GDK_TYPE_WAYLAND_TOPLEVEL; + display_class->popup_type = GDK_TYPE_WAYLAND_POPUP; display_class->cairo_context_type = GDK_TYPE_WAYLAND_CAIRO_CONTEXT; #ifdef GDK_RENDERING_VULKAN @@ -987,7 +989,6 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS display_class->get_startup_notification_id = gdk_wayland_display_get_startup_notification_id; G_GNUC_END_IGNORE_DEPRECATIONS display_class->notify_startup_complete = gdk_wayland_display_notify_startup_complete; - display_class->create_surface = gdk_wayland_display_create_surface; display_class->get_keymap = _gdk_wayland_display_get_keymap; display_class->init_gl = gdk_wayland_display_init_gl; diff --git a/gdk/wayland/gdkprivate-wayland.h b/gdk/wayland/gdkprivate-wayland.h index 3df11880f2..0860f118b4 100644 --- a/gdk/wayland/gdkprivate-wayland.h +++ b/gdk/wayland/gdkprivate-wayland.h @@ -157,10 +157,6 @@ void gdk_wayland_drop_set_source_actions (GdkDrop void gdk_wayland_drop_set_action (GdkDrop *drop, uint32_t action); -GdkSurface * gdk_wayland_display_create_surface (GdkDisplay *display, - GdkSurfaceType surface_type, - GdkSurface *parent); - void _gdk_wayland_display_create_seat (GdkWaylandDisplay *display, guint32 id, struct wl_seat *seat); diff --git a/gdk/wayland/gdksurface-wayland.c b/gdk/wayland/gdksurface-wayland.c index 816d47243e..4dd546aab6 100644 --- a/gdk/wayland/gdksurface-wayland.c +++ b/gdk/wayland/gdksurface-wayland.c @@ -841,36 +841,6 @@ gdk_wayland_surface_destroy_wl_surface (GdkWaylandSurface *self) g_clear_pointer (&self->display_server.outputs, g_slist_free); } -GdkSurface * -gdk_wayland_display_create_surface (GdkDisplay *display, - GdkSurfaceType surface_type, - GdkSurface *parent) -{ - GdkSurface *surface; - - switch (surface_type) - { - case GDK_SURFACE_TOPLEVEL: - g_warn_if_fail (parent == NULL); - surface = g_object_new (GDK_TYPE_WAYLAND_TOPLEVEL, - "display", display, - NULL); - break; - case GDK_SURFACE_POPUP: - g_warn_if_fail (parent != NULL); - surface = g_object_new (GDK_TYPE_WAYLAND_POPUP, - "parent", parent, - "display", display, - NULL); - break; - default: - g_assert_not_reached (); - break; - } - - return surface; -} - static void maybe_notify_mapped (GdkSurface *surface) { diff --git a/gdk/win32/gdkdisplay-win32.c b/gdk/win32/gdkdisplay-win32.c index f8aa2a97c1..bad1076866 100644 --- a/gdk/win32/gdkdisplay-win32.c +++ b/gdk/win32/gdkdisplay-win32.c @@ -28,6 +28,7 @@ #include "gdkdisplay-win32.h" #include "gdkdevicemanager-win32.h" #include "gdkglcontext-win32.h" +#include "gdksurface-win32.h" #include "gdkwin32display.h" #include "gdkwin32screen.h" #include "gdkwin32surface.h" @@ -1268,6 +1269,8 @@ gdk_win32_display_class_init (GdkWin32DisplayClass *klass) object_class->dispose = gdk_win32_display_dispose; object_class->finalize = gdk_win32_display_finalize; + display_class->toplevel_type = GDK_TYPE_WIN32_TOPLEVEL; + display_class->popup_type = GDK_TYPE_WIN32_POPUP; display_class->cairo_context_type = GDK_TYPE_WIN32_CAIRO_CONTEXT; display_class->get_name = gdk_win32_display_get_name; @@ -1281,7 +1284,6 @@ gdk_win32_display_class_init (GdkWin32DisplayClass *klass) display_class->get_next_serial = gdk_win32_display_get_next_serial; display_class->notify_startup_complete = gdk_win32_display_notify_startup_complete; - display_class->create_surface = gdk_win32_display_create_surface; display_class->get_keymap = _gdk_win32_display_get_keymap; diff --git a/gdk/win32/gdkprivate-win32.h b/gdk/win32/gdkprivate-win32.h index 6433da545d..918e961aa0 100644 --- a/gdk/win32/gdkprivate-win32.h +++ b/gdk/win32/gdkprivate-win32.h @@ -381,10 +381,6 @@ GdkModifierType _gdk_win32_keymap_get_mod_mask (GdkWin32Keymap *keymap); GdkKeymap *_gdk_win32_display_get_keymap (GdkDisplay *display); -GdkSurface *gdk_win32_display_create_surface (GdkDisplay *display, - GdkSurfaceType surface_type, - GdkSurface *parent); - /* stray GdkSurfaceImplWin32 members */ void _gdk_win32_surface_register_dnd (GdkSurface *window); void _gdk_win32_surface_unregister_dnd (GdkSurface *window); diff --git a/gdk/win32/gdksurface-win32.c b/gdk/win32/gdksurface-win32.c index a40b946ec7..aa18e117b3 100644 --- a/gdk/win32/gdksurface-win32.c +++ b/gdk/win32/gdksurface-win32.c @@ -135,14 +135,6 @@ static void gdk_win32_impl_frame_clock_after_paint (GdkFrameClock *clock, G_DEFINE_TYPE (GdkWin32Surface, gdk_win32_surface, GDK_TYPE_SURFACE) -GType gdk_win32_toplevel_get_type (void) G_GNUC_CONST; -GType gdk_win32_popup_get_type (void) G_GNUC_CONST; -GType gdk_win32_drag_surface_get_type (void) G_GNUC_CONST; - -#define GDK_TYPE_WIN32_TOPLEVEL (gdk_win32_toplevel_get_type ()) -#define GDK_TYPE_WIN32_POPUP (gdk_win32_popup_get_type ()) -#define GDK_TYPE_WIN32_DRAG_SURFACE (gdk_win32_drag_surface_get_type ()) - static void gdk_win32_surface_init (GdkWin32Surface *impl) { @@ -435,34 +427,6 @@ RegisterGdkClass (GType wtype) return klass; } -GdkSurface * -gdk_win32_display_create_surface (GdkDisplay *display, - GdkSurfaceType surface_type, - GdkSurface *parent) -{ - GdkSurface *surface; - - switch (surface_type) - { - case GDK_SURFACE_TOPLEVEL: - surface = g_object_new (GDK_TYPE_WIN32_TOPLEVEL, - "display", display, - NULL); - break; - case GDK_SURFACE_POPUP: - surface = g_object_new (GDK_TYPE_WIN32_POPUP, - "parent", parent, - "display", display, - NULL); - break; - default: - g_assert_not_reached (); - break; - } - - return surface; -} - static void gdk_win32_surface_constructed (GObject *object) { diff --git a/gdk/win32/gdksurface-win32.h b/gdk/win32/gdksurface-win32.h index 89d3202729..afe8d42010 100644 --- a/gdk/win32/gdksurface-win32.h +++ b/gdk/win32/gdksurface-win32.h @@ -39,6 +39,14 @@ G_BEGIN_DECLS +GType gdk_win32_toplevel_get_type (void) G_GNUC_CONST; +GType gdk_win32_popup_get_type (void) G_GNUC_CONST; +GType gdk_win32_drag_surface_get_type (void) G_GNUC_CONST; + +#define GDK_TYPE_WIN32_TOPLEVEL (gdk_win32_toplevel_get_type ()) +#define GDK_TYPE_WIN32_POPUP (gdk_win32_popup_get_type ()) +#define GDK_TYPE_WIN32_DRAG_SURFACE (gdk_win32_drag_surface_get_type ()) + typedef enum { GDK_DECOR_ALL = 1 << 0, diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c index c8786a5601..f93941d359 100644 --- a/gdk/x11/gdkdisplay-x11.c +++ b/gdk/x11/gdkdisplay-x11.c @@ -3028,6 +3028,8 @@ gdk_x11_display_class_init (GdkX11DisplayClass * class) object_class->dispose = gdk_x11_display_dispose; object_class->finalize = gdk_x11_display_finalize; + display_class->toplevel_type = GDK_TYPE_X11_TOPLEVEL; + display_class->popup_type = GDK_TYPE_X11_POPUP; display_class->cairo_context_type = GDK_TYPE_X11_CAIRO_CONTEXT; #ifdef GDK_RENDERING_VULKAN display_class->vk_context_type = GDK_TYPE_X11_VULKAN_CONTEXT; @@ -3048,7 +3050,6 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS display_class->get_startup_notification_id = gdk_x11_display_get_startup_notification_id; G_GNUC_END_IGNORE_DEPRECATIONS display_class->notify_startup_complete = gdk_x11_display_notify_startup_complete; - display_class->create_surface = gdk_x11_display_create_surface; display_class->get_keymap = gdk_x11_display_get_keymap; display_class->init_gl = gdk_x11_display_init_gl; diff --git a/gdk/x11/gdkprivate-x11.h b/gdk/x11/gdkprivate-x11.h index 1bedb10703..d60b97f6b6 100644 --- a/gdk/x11/gdkprivate-x11.h +++ b/gdk/x11/gdkprivate-x11.h @@ -173,9 +173,6 @@ void _gdk_x11_display_get_maximal_cursor_size (GdkDisplay *display, guint *width, guint *height); -GdkSurface * gdk_x11_display_create_surface (GdkDisplay *display, - GdkSurfaceType surface_type, - GdkSurface *parent); GList * gdk_x11_display_get_toplevel_windows (GdkDisplay *display); void _gdk_x11_precache_atoms (GdkDisplay *display, diff --git a/gdk/x11/gdksurface-x11.c b/gdk/x11/gdksurface-x11.c index cf901acce4..9f6c7b2d2d 100644 --- a/gdk/x11/gdksurface-x11.c +++ b/gdk/x11/gdksurface-x11.c @@ -130,14 +130,6 @@ static void gdk_x11_surface_set_geometry_hints (GdkSurface *surface, G_DEFINE_TYPE (GdkX11Surface, gdk_x11_surface, GDK_TYPE_SURFACE) -GType gdk_x11_toplevel_get_type (void) G_GNUC_CONST; -GType gdk_x11_popup_get_type (void) G_GNUC_CONST; -GType gdk_x11_drag_surface_get_type (void) G_GNUC_CONST; - -#define GDK_TYPE_X11_TOPLEVEL (gdk_x11_toplevel_get_type ()) -#define GDK_TYPE_X11_POPUP (gdk_x11_popup_get_type ()) -#define GDK_TYPE_X11_DRAG_SURFACE (gdk_x11_drag_surface_get_type ()) - static void gdk_x11_surface_init (GdkX11Surface *impl) { @@ -1239,34 +1231,6 @@ gdk_x11_surface_create_pixmap_surface (GdkSurface *surface, static void gdk_x11_surface_set_type_hint (GdkSurface *surface, GdkSurfaceTypeHint hint); -GdkSurface * -gdk_x11_display_create_surface (GdkDisplay *display, - GdkSurfaceType surface_type, - GdkSurface *parent) -{ - GdkSurface *surface; - - switch (surface_type) - { - case GDK_SURFACE_TOPLEVEL: - surface = g_object_new (GDK_TYPE_X11_TOPLEVEL, - "display", display, - NULL); - break; - case GDK_SURFACE_POPUP: - surface = g_object_new (GDK_TYPE_X11_POPUP, - "parent", parent, - "display", display, - NULL); - break; - default: - g_assert_not_reached (); - break; - } - - return surface; -} - static void gdk_toplevel_x11_free_contents (GdkDisplay *display, GdkToplevelX11 *toplevel) diff --git a/gdk/x11/gdksurface-x11.h b/gdk/x11/gdksurface-x11.h index 2967cf1b66..150920d45b 100644 --- a/gdk/x11/gdksurface-x11.h +++ b/gdk/x11/gdksurface-x11.h @@ -36,6 +36,14 @@ G_BEGIN_DECLS +GType gdk_x11_toplevel_get_type (void) G_GNUC_CONST; +GType gdk_x11_popup_get_type (void) G_GNUC_CONST; +GType gdk_x11_drag_surface_get_type (void) G_GNUC_CONST; + +#define GDK_TYPE_X11_TOPLEVEL (gdk_x11_toplevel_get_type ()) +#define GDK_TYPE_X11_POPUP (gdk_x11_popup_get_type ()) +#define GDK_TYPE_X11_DRAG_SURFACE (gdk_x11_drag_surface_get_type ()) + typedef struct _GdkToplevelX11 GdkToplevelX11; typedef struct _GdkXPositionInfo GdkXPositionInfo; -- 2.30.2