[gtk/matthiasc/surface-state-rework: 5/80] gtk/window: Don't gdk_toplevel_present() if not mapped




commit ebb7807a057374fc2ed4492d624b16aaa5a88c01
Author: Jonas Ã…dahl <jadahl gmail com>
Date:   Fri Nov 20 17:11:44 2020 +0100

    gtk/window: Don't gdk_toplevel_present() if not mapped
    
    That would map the window too early.

 gtk/gtkwindow.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
---
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index 996e09c64b..e1d83addbd 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -3856,7 +3856,8 @@ gtk_window_update_toplevel (GtkWindow *window)
       g_clear_pointer (&priv->layout, gdk_toplevel_layout_unref);
       priv->layout = gtk_window_compute_layout (window);
 
-      gdk_toplevel_present (GDK_TOPLEVEL (priv->surface), priv->layout);
+      if (_gtk_widget_get_mapped (GTK_WIDGET (window)))
+        gdk_toplevel_present (GDK_TOPLEVEL (priv->surface), priv->layout);
     }
 }
 
@@ -5660,7 +5661,8 @@ gtk_window_move_resize (GtkWindow *window)
       if (configure_request_pos_changed)
         g_warning ("configure request position changed. This should not happen. Ignoring the position");
 
-      gdk_toplevel_present (GDK_TOPLEVEL (priv->surface), priv->layout);
+      if (_gtk_widget_get_mapped (widget))
+        gdk_toplevel_present (GDK_TOPLEVEL (priv->surface), priv->layout);
     }
   else
     {
@@ -5869,8 +5871,6 @@ gtk_window_present_with_time (GtkWindow *window,
 
       g_assert (surface != NULL);
 
-      gtk_window_present_toplevel (window);
-
       /* Translate a timestamp of GDK_CURRENT_TIME appropriately */
       if (timestamp == GDK_CURRENT_TIME)
         {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]