... instead of passing it to g_object_new().
return FALSE;
}
+static void
+gdk_wayland_drag_surface_constructed (GObject *object)
+{
+ GdkSurface *surface = GDK_SURFACE (object);
+ GdkFrameClock *frame_clock;
+
+ frame_clock = _gdk_frame_clock_idle_new ();
+ gdk_surface_set_frame_clock (surface, frame_clock);
+ g_object_unref (frame_clock);
+
+ G_OBJECT_CLASS (gdk_wayland_drag_surface_parent_class)->constructed (object);
+}
+
static void
gdk_wayland_drag_surface_class_init (GdkWaylandDragSurfaceClass *class)
{
+ GObjectClass *object_class = G_OBJECT_CLASS (class);
GdkSurfaceClass *surface_class = GDK_SURFACE_CLASS (class);
+ object_class->constructed = gdk_wayland_drag_surface_constructed;
+
surface_class->compute_size = gdk_wayland_drag_surface_compute_size;
}
{
}
+static void
+gdk_wayland_popup_constructed (GObject *object)
+{
+ GdkWaylandPopup *self = GDK_WAYLAND_POPUP (object);
+ GdkSurface *surface = GDK_SURFACE (self);
+
+ gdk_surface_set_frame_clock (surface, gdk_surface_get_frame_clock (gdk_popup_get_parent (GDK_POPUP (self))));
+
+ G_OBJECT_CLASS (gdk_wayland_popup_parent_class)->constructed (object);
+}
+
static void
gdk_wayland_popup_get_property (GObject *object,
guint prop_id,
GdkSurfaceClass *surface_class = GDK_SURFACE_CLASS (class);
GdkWaylandSurfaceClass *wayland_surface_class = GDK_WAYLAND_SURFACE_CLASS (class);
+ object_class->constructed = gdk_wayland_popup_constructed;
object_class->get_property = gdk_wayland_popup_get_property;
object_class->set_property = gdk_wayland_popup_set_property;
GdkSurface *parent)
{
GdkSurface *surface;
- GdkFrameClock *frame_clock;
-
- if (parent)
- frame_clock = g_object_ref (gdk_surface_get_frame_clock (parent));
- else
- frame_clock = _gdk_frame_clock_idle_new ();
switch (surface_type)
{
g_warn_if_fail (parent == NULL);
surface = g_object_new (GDK_TYPE_WAYLAND_TOPLEVEL,
"display", display,
- "frame-clock", frame_clock,
"title", get_default_title (),
NULL);
break;
surface = g_object_new (GDK_TYPE_WAYLAND_POPUP,
"parent", parent,
"display", display,
- "frame-clock", frame_clock,
NULL);
break;
case GDK_SURFACE_DRAG:
g_warn_if_fail (parent == NULL);
surface = g_object_new (GDK_TYPE_WAYLAND_DRAG_SURFACE,
"display", display,
- "frame-clock", frame_clock,
NULL);
break;
default:
break;
}
- g_object_unref (frame_clock);
-
return surface;
}
static void
gdk_wayland_toplevel_constructed (GObject *object)
{
- GdkWaylandDisplay *display_wayland = GDK_WAYLAND_DISPLAY (gdk_surface_get_display (GDK_SURFACE (object)));
+ GdkSurface *surface = GDK_SURFACE (object);
+ GdkWaylandDisplay *display_wayland = GDK_WAYLAND_DISPLAY (gdk_surface_get_display (surface));
+ GdkFrameClock *frame_clock;
+
+ frame_clock = _gdk_frame_clock_idle_new ();
+ gdk_surface_set_frame_clock (surface, frame_clock);
+ g_object_unref (frame_clock);
display_wayland->toplevels = g_list_prepend (display_wayland->toplevels, object);