x11: Add private gdk_x11_drag_surface_new()
authorBenjamin Otte <otte@redhat.com>
Fri, 21 Apr 2023 18:52:58 +0000 (20:52 +0200)
committerBenjamin Otte <otte@redhat.com>
Wed, 26 Apr 2023 19:03:34 +0000 (21:03 +0200)
... and use it.

gdk/x11/gdkdisplay-x11.c
gdk/x11/gdkdrag-x11.c
gdk/x11/gdksurface-x11.c
gdk/x11/gdksurface-x11.h

index ba03482b8c99f40a4bd7ec1920e80b6ef0689304..c8786a5601daaae3f6fc57398e1dc26180d97821 100644 (file)
@@ -1391,9 +1391,7 @@ gdk_x11_display_init_leader_surface (GdkX11Display *self)
 
   gdk_event_init (display);
 
-  self->leader_gdk_surface = gdk_x11_display_create_surface (display,
-                                                             GDK_SURFACE_DRAG,
-                                                             NULL);
+  self->leader_gdk_surface = gdk_x11_drag_surface_new (display);
 
   (_gdk_x11_surface_get_toplevel (self->leader_gdk_surface))->is_leader = TRUE;
   self->leader_window = GDK_SURFACE_XID (self->leader_gdk_surface);
index abd2f138ab2a577354e49b703c03386c0857965b..97e0038a89ebda3ee27b660fa0cf8eb96d6f1e05 100644 (file)
@@ -1255,18 +1255,6 @@ gdk_drag_do_leave (GdkX11Drag *drag_x11)
     }
 }
 
-static GdkSurface *
-create_drag_surface (GdkDisplay *display)
-{
-  GdkSurface *surface;
-
-  surface = gdk_x11_display_create_surface (display,
-                                            GDK_SURFACE_DRAG,
-                                            NULL);
-
-  return surface;
-}
-
 static Window
 _gdk_x11_display_get_drag_protocol (GdkDisplay      *display,
                                     Window           xid,
@@ -2000,9 +1988,7 @@ _gdk_x11_surface_drag_begin (GdkSurface         *surface,
 
   display = gdk_surface_get_display (surface);
 
-  ipc_surface = gdk_x11_display_create_surface (display,
-                                                GDK_SURFACE_DRAG,
-                                                NULL);
+  ipc_surface = gdk_x11_drag_surface_new (display);
 
   drag = (GdkDrag *) g_object_new (GDK_TYPE_X11_DRAG,
                                    "surface", ipc_surface,
@@ -2036,7 +2022,7 @@ _gdk_x11_surface_drag_begin (GdkSurface         *surface,
   gdk_surface_set_is_mapped (x11_drag->ipc_surface, TRUE);
   gdk_x11_surface_show (x11_drag->ipc_surface, FALSE);
 
-  x11_drag->drag_surface = create_drag_surface (display);
+  x11_drag->drag_surface = gdk_x11_drag_surface_new (display);
 
   if (!drag_grab (drag))
     {
index 2cb30b6ac6f7e4ea517f0b97559301a92bb4f1bf..fd4b29945ec21d4304ed0329698f013e49ee09e4 100644 (file)
@@ -1260,10 +1260,6 @@ gdk_x11_display_create_surface (GdkDisplay     *display,
                               NULL);
       break;
     case GDK_SURFACE_DRAG:
-      surface = g_object_new (GDK_TYPE_X11_DRAG_SURFACE,
-                              "display", display,
-                              NULL);
-      break;
     default:
       g_assert_not_reached ();
       break;
@@ -4354,10 +4350,7 @@ create_moveresize_surface (MoveResizeData *mv_resize,
 
   g_assert (mv_resize->moveresize_emulation_surface == NULL);
 
-  mv_resize->moveresize_emulation_surface =
-      gdk_x11_display_create_surface (mv_resize->display,
-                                      GDK_SURFACE_DRAG,
-                                      NULL);
+  mv_resize->moveresize_emulation_surface = gdk_x11_drag_surface_new (mv_resize->display);
 
   gdk_surface_set_is_mapped (mv_resize->moveresize_emulation_surface, TRUE);
   gdk_x11_surface_show (mv_resize->moveresize_emulation_surface, FALSE);
@@ -5453,3 +5446,12 @@ gdk_x11_drag_surface_iface_init (GdkDragSurfaceInterface *iface)
 {
   iface->present = gdk_x11_drag_surface_present;
 }
+
+GdkSurface *
+gdk_x11_drag_surface_new (GdkDisplay *display)
+{
+  return g_object_new (GDK_TYPE_X11_DRAG_SURFACE,
+                       "display", display,
+                       NULL);
+}
+
index c548cd206af69476eba6e1a469c4b37905b77681..2967cf1b66bf12f07969448dd861d5edbc2e8853 100644 (file)
@@ -191,6 +191,8 @@ struct _GdkToplevelX11
 #endif
 };
 
+GdkSurface     *gdk_x11_drag_surface_new             (GdkDisplay *display);
+
 GdkToplevelX11 *_gdk_x11_surface_get_toplevel        (GdkSurface *window);
 
 GdkCursor      *_gdk_x11_surface_get_cursor          (GdkSurface *window);