summaryrefslogtreecommitdiff
path: root/gdk/x11
diff options
context:
space:
mode:
authorJonas Ådahl <jadahl@gmail.com>2019-06-28 18:45:44 +0200
committerJonas Ådahl <jadahl@gmail.com>2019-07-03 11:42:28 +0200
commit5db079b052fcb934566f69ea49dd7fc3f6314813 (patch)
tree3fd6be1c439e9c0bcf3d0c9422b593ea359a1618 /gdk/x11
parenta2ff6af4b32b9fb2e90c50c94cdea5ef1ae921c9 (diff)
downloadgtk+-5db079b052fcb934566f69ea49dd7fc3f6314813.tar.gz
gdk/frameclock: Make surfaces inhibit freeze
To make a frame clock tick as long as any of the associated surfaces expect to receive ticks, make the surfaces inhibit freezing the clock, instead of directly tell the frame clock to freeze itself. This makes it so that as long as any surface using a certain frame clock is not frozen (e.g. just received a frame event from the display server), the frame clock will not be frozen. With this, the frame clock is initiated as frozen, and won't be thawed until any surface inhibits freeze. It will be frozen again, when every surface has that previously inhibited freeze uninhibited freeze.
Diffstat (limited to 'gdk/x11')
-rw-r--r--gdk/x11/gdkdisplay-x11.c4
-rw-r--r--gdk/x11/gdksurface-x11.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c
index 60a8892c59..58ca9f1aa5 100644
--- a/gdk/x11/gdkdisplay-x11.c
+++ b/gdk/x11/gdkdisplay-x11.c
@@ -874,7 +874,7 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator,
surface_impl->toplevel->frame_pending)
{
surface_impl->toplevel->frame_pending = FALSE;
- _gdk_frame_clock_thaw (gdk_surface_get_frame_clock (event->any.surface));
+ gdk_surface_thaw_updates (event->any.surface);
}
if (toplevel)
@@ -1238,7 +1238,7 @@ _gdk_wm_protocols_filter (const XEvent *xevent,
if (surface_impl->toplevel->frame_pending)
{
surface_impl->toplevel->frame_pending = FALSE;
- _gdk_frame_clock_thaw (clock);
+ gdk_surface_thaw_updates (event->any.surface);
}
gdk_frame_clock_get_refresh_info (clock,
diff --git a/gdk/x11/gdksurface-x11.c b/gdk/x11/gdksurface-x11.c
index f4ecd5d2f8..654876e2b8 100644
--- a/gdk/x11/gdksurface-x11.c
+++ b/gdk/x11/gdksurface-x11.c
@@ -397,7 +397,7 @@ gdk_x11_surface_end_frame (GdkSurface *surface)
g_intern_static_string ("_NET_WM_FRAME_DRAWN")))
{
impl->toplevel->frame_pending = TRUE;
- _gdk_frame_clock_freeze (gdk_surface_get_frame_clock (surface));
+ gdk_surface_freeze_updates (surface);
timings->cookie = impl->toplevel->current_counter_value;
}
}