widget: Queue an allocate on native widgets when changing opacity
authorTimm Bäder <mail@baedert.org>
Wed, 28 Aug 2019 12:24:50 +0000 (14:24 +0200)
committerTimm Bäder <mail@baedert.org>
Mon, 9 Sep 2019 15:36:25 +0000 (17:36 +0200)
This way the opacity change works on toplevel windows on wayland.

gtk/gtkwidget.c

index 9dcfd581d5148f79e6b7b5ca96b0116293e270f5..9d33ffdb6648971ba00eea344b8283e8d844491b 100644 (file)
@@ -11287,9 +11287,14 @@ gtk_widget_update_alpha (GtkWidget *widget)
   if (_gtk_widget_get_realized (widget))
     {
       if (GTK_IS_NATIVE (widget))
-       gdk_surface_set_opacity (priv->surface, priv->alpha / 255.0);
-
-      gtk_widget_queue_draw (widget);
+        {
+          gdk_surface_set_opacity (priv->surface, priv->alpha / 255.0);
+          gtk_widget_queue_allocate (widget);
+        }
+      else
+        {
+          gtk_widget_queue_draw (widget);
+        }
     }
 }