Merge branch 'issue5593' into gtk-3-24

This commit is contained in:
John Ralls 2023-03-25 13:41:08 -07:00
commit f2c8b8b0d2
3 changed files with 12 additions and 7 deletions

View File

@ -96,7 +96,6 @@ _gdk_quartz_display_add_frame_callback (GdkDisplay *display,
display_quartz = GDK_QUARTZ_DISPLAY (display);
impl->frame_link.data = window;
impl->frame_link.prev = NULL;
impl->frame_link.next = display_quartz->windows_awaiting_frame;
display_quartz->windows_awaiting_frame = &impl->frame_link;
@ -110,14 +109,14 @@ _gdk_quartz_display_remove_frame_callback (GdkDisplay *display,
GdkWindow *window)
{
GdkQuartzDisplay *display_quartz = GDK_QUARTZ_DISPLAY (display);
GList *link;
GSList *link;
link = g_list_find (display_quartz->windows_awaiting_frame, window);
link = g_slist_find (display_quartz->windows_awaiting_frame, window);
if (link != NULL)
{
display_quartz->windows_awaiting_frame =
g_list_remove_link (display_quartz->windows_awaiting_frame, link);
g_slist_remove_link (display_quartz->windows_awaiting_frame, link);
}
if (display_quartz->windows_awaiting_frame == NULL)
@ -129,7 +128,7 @@ gdk_quartz_display_frame_cb (gpointer data)
{
GdkDisplayLinkSource *source;
GdkQuartzDisplay *display_quartz = data;
GList *iter;
GSList *iter, **last_next = NULL;
gint64 presentation_time;
gint64 now;
@ -154,6 +153,12 @@ gdk_quartz_display_frame_cb (gpointer data)
GdkFrameClock *frame_clock = gdk_window_get_frame_clock (window);
GdkFrameTimings *timings;
/* Clear the frame_link */
iter->data = NULL;
if (last_next && *last_next)
*last_next = NULL;
last_next = &iter->next;
if (frame_clock == NULL)
continue;

View File

@ -39,7 +39,7 @@ struct _GdkQuartzDisplay
GPtrArray *monitors;
/* This structure is not allocated. It points to an embedded
* GList in the GdkWindow. */
GList *windows_awaiting_frame;
GSList *windows_awaiting_frame;
GSource *frame_source;
};

View File

@ -66,7 +66,7 @@ struct _GdkWindowImplQuartz
gint shadow_max;
gboolean use_cg_context;
GList frame_link;
GSList frame_link;
gint pending_frame_counter;
};