macos: Set frame clock in ::constructed
This commit is contained in:
@@ -70,7 +70,9 @@ _gdk_macos_drag_surface_constructed (GObject *object)
|
||||
|
||||
GdkMacosWindow *window;
|
||||
GdkMacosSurface *self = GDK_MACOS_SURFACE (object);
|
||||
GdkSurface *surface = GDK_SURFACE (self);
|
||||
GdkDisplay *display = gdk_surface_get_display (GDK_SURFACE (self));
|
||||
GdkFrameClock *frame_clock;
|
||||
NSScreen *screen;
|
||||
NSUInteger style_mask;
|
||||
NSRect content_rect;
|
||||
@@ -100,6 +102,10 @@ _gdk_macos_drag_surface_constructed (GObject *object)
|
||||
|
||||
_gdk_macos_surface_set_native (self, window);
|
||||
|
||||
frame_clock = _gdk_frame_clock_idle_new ();
|
||||
gdk_surface_set_frame_clock (surface, frame_clock);
|
||||
g_object_unref (frame_clock);
|
||||
|
||||
GDK_END_MACOS_ALLOC_POOL;
|
||||
|
||||
G_OBJECT_CLASS (_gdk_macos_drag_surface_parent_class)->constructed (object);
|
||||
@@ -121,18 +127,11 @@ _gdk_macos_drag_surface_init (GdkMacosDragSurface *self)
|
||||
GdkMacosSurface *
|
||||
_gdk_macos_drag_surface_new (GdkMacosDisplay *display)
|
||||
{
|
||||
GdkFrameClock *frame_clock;
|
||||
|
||||
g_return_val_if_fail (GDK_IS_MACOS_DISPLAY (display), NULL);
|
||||
|
||||
frame_clock = _gdk_frame_clock_idle_new ();
|
||||
|
||||
self = g_object_new (GDK_TYPE_MACOS_DRAG_SURFACE,
|
||||
"display", display,
|
||||
"frame-clock", frame_clock,
|
||||
NULL);
|
||||
|
||||
g_object_unref (frame_clock);
|
||||
|
||||
return g_steal_pointer (&self);
|
||||
}
|
||||
|
||||
@@ -290,6 +290,7 @@ _gdk_macos_popup_surface_constructed (GObject *object)
|
||||
|
||||
GdkMacosWindow *window;
|
||||
GdkMacosPopupSurface *self = GDK_MACOS_POPUP_SURFACE (object);
|
||||
GdkSurface *surface = GDK_SURFACE (self);
|
||||
GdkDisplay *display = gdk_surface_get_display (GDK_SURFACE (self));
|
||||
NSScreen *screen;
|
||||
NSUInteger style_mask;
|
||||
@@ -322,6 +323,8 @@ _gdk_macos_popup_surface_constructed (GObject *object)
|
||||
|
||||
_gdk_macos_surface_set_native (GDK_MACOS_SURFACE (self), window);
|
||||
|
||||
gdk_surface_set_frame_clock (surface, gdk_surface_get_frame_clock (surface->parent));
|
||||
|
||||
GDK_END_MACOS_ALLOC_POOL;
|
||||
|
||||
G_OBJECT_CLASS (_gdk_macos_popup_surface_parent_class)->constructed (object);
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
#include "gdkdeviceprivate.h"
|
||||
#include "gdkdisplay.h"
|
||||
#include "gdkeventsprivate.h"
|
||||
#include "gdkframeclockidleprivate.h"
|
||||
#include "gdkframeclockprivate.h"
|
||||
#include "gdkseatprivate.h"
|
||||
#include "gdksurfaceprivate.h"
|
||||
|
||||
@@ -588,29 +588,21 @@ _gdk_macos_surface_new (GdkMacosDisplay *display,
|
||||
GdkSurfaceType surface_type,
|
||||
GdkSurface *parent)
|
||||
{
|
||||
GdkFrameClock *frame_clock;
|
||||
GdkMacosSurface *ret;
|
||||
|
||||
g_return_val_if_fail (GDK_IS_MACOS_DISPLAY (display), NULL);
|
||||
|
||||
if (parent != NULL)
|
||||
frame_clock = g_object_ref (parent->frame_clock);
|
||||
else
|
||||
frame_clock = _gdk_frame_clock_idle_new ();
|
||||
|
||||
switch (surface_type)
|
||||
{
|
||||
case GDK_SURFACE_TOPLEVEL:
|
||||
ret = g_object_new (GDK_TYPE_MACOS_TOPLEVEL_SURFACE,
|
||||
"display", display,
|
||||
"frame-clock", frame_clock,
|
||||
NULL);
|
||||
break;
|
||||
|
||||
case GDK_SURFACE_POPUP:
|
||||
ret = g_object_new (GDK_TYPE_MACOS_POPUP_SURFACE,
|
||||
"display", display,
|
||||
"frame-clock", frame_clock,
|
||||
"parent", parent,
|
||||
NULL);
|
||||
|
||||
@@ -622,8 +614,6 @@ _gdk_macos_surface_new (GdkMacosDisplay *display,
|
||||
ret = NULL;
|
||||
}
|
||||
|
||||
g_object_unref (frame_clock);
|
||||
|
||||
return g_steal_pointer (&ret);
|
||||
}
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
|
||||
#include "gdkmacostoplevelsurface-private.h"
|
||||
|
||||
#include "gdkframeclockidleprivate.h"
|
||||
#include "gdkseatprivate.h"
|
||||
#include "gdktoplevelprivate.h"
|
||||
|
||||
@@ -632,7 +633,9 @@ _gdk_macos_toplevel_surface_constructed (GObject *object)
|
||||
|
||||
GdkMacosWindow *window;
|
||||
GdkMacosToplevelSurface *self = GDK_MACOS_TOPLEVEL_SURFACE (object);
|
||||
GdkDisplay *display = gdk_surface_get_display (GDK_SURFACE (self));
|
||||
GdkSurface *surface = GDK_SURFACE (self);
|
||||
GdkMacosDisplay *display = GDK_MACOS_DISPLAY (gdk_surface_get_display (surface));
|
||||
GdkFrameClock *frame_clock;
|
||||
NSUInteger style_mask;
|
||||
NSRect content_rect;
|
||||
NSRect visible_frame;
|
||||
@@ -661,6 +664,10 @@ _gdk_macos_toplevel_surface_constructed (GObject *object)
|
||||
|
||||
_gdk_macos_surface_set_native (GDK_MACOS_SURFACE (self), window);
|
||||
|
||||
frame_clock = _gdk_frame_clock_idle_new ();
|
||||
gdk_surface_set_frame_clock (surface, frame_clock);
|
||||
g_object_unref (frame_clock);
|
||||
|
||||
GDK_END_MACOS_ALLOC_POOL;
|
||||
|
||||
G_OBJECT_CLASS (_gdk_macos_toplevel_surface_parent_class)->constructed (object);
|
||||
|
||||
Reference in New Issue
Block a user