[gtk: 10/88] wayland: Apply new surface state at the beginning of a frame
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk: 10/88] wayland: Apply new surface state at the beginning of a frame
- Date: Tue, 8 Dec 2020 15:38:39 +0000 (UTC)
commit 251bd15597a0d622546bd371f3aa52b8231f305f
Author: Jonas Ã…dahl <jadahl gmail com>
Date: Mon Nov 23 17:26:06 2020 +0100
wayland: Apply new surface state at the beginning of a frame
Concentrate state application to the start of a frame; this is to avoid
having GTK going back and forth between different state if so would
happen between two frames.
gdk/wayland/gdksurface-wayland.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
---
diff --git a/gdk/wayland/gdksurface-wayland.c b/gdk/wayland/gdksurface-wayland.c
index 39e815a219..bcbc647a28 100644
--- a/gdk/wayland/gdksurface-wayland.c
+++ b/gdk/wayland/gdksurface-wayland.c
@@ -587,6 +587,8 @@ on_frame_clock_before_paint (GdkFrameClock *clock,
*/
timings->predicted_presentation_time = timings->frame_time + refresh_interval / 2 + refresh_interval;
}
+
+ gdk_surface_apply_state_change (surface);
}
void
@@ -1401,7 +1403,7 @@ gdk_wayland_surface_configure_toplevel (GdkSurface *surface)
(new_state & GDK_TOPLEVEL_STATE_FOCUSED) ? " focused" : "",
(new_state & GDK_TOPLEVEL_STATE_TILED) ? " tiled" : ""));
- gdk_surface_set_state (surface, new_state);
+ gdk_surface_queue_state_change (surface, ~0 & ~new_state, new_state);
switch (display_wayland->shell_variant)
{
@@ -1482,10 +1484,7 @@ maybe_notify_mapped (GdkSurface *surface)
return;
if (!GDK_SURFACE_IS_MAPPED (surface))
- {
- gdk_synthesize_surface_state (surface, GDK_TOPLEVEL_STATE_WITHDRAWN, 0);
- gdk_surface_invalidate_rect (surface, NULL);
- }
+ gdk_surface_queue_state_change (surface, GDK_TOPLEVEL_STATE_WITHDRAWN, 0);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]