window: Improve set_titlebar() function
authorBenjamin Otte <otte@redhat.com>
Tue, 21 Sep 2021 01:39:19 +0000 (03:39 +0200)
committerBenjamin Otte <otte.benjamin@googlemail.com>
Tue, 21 Sep 2021 02:52:30 +0000 (02:52 +0000)
Get rid of a goto and check if the titlebar is already set.

gtk/gtkwindow.c

index a1a34359c94ddbf12b829542c2bd6e8d299572a9..dcb39a05c21211d56cb168034e811072835ff92a 100644 (file)
@@ -3000,6 +3000,9 @@ gtk_window_set_titlebar (GtkWindow *window,
 
   g_return_if_fail (GTK_IS_WINDOW (window));
 
+  if (priv->title_box == titlebar)
+    return;
+
   if ((!priv->title_box && titlebar) || (priv->title_box && !titlebar))
     {
       was_mapped = _gtk_widget_get_mapped (widget);
@@ -3020,19 +3023,18 @@ gtk_window_set_titlebar (GtkWindow *window,
       priv->client_decorated = FALSE;
       gtk_widget_remove_css_class (widget, "csd");
       gtk_widget_remove_css_class (widget, "solid-csd");
-
-      goto out;
     }
+  else
+    {
+      priv->use_client_shadow = gtk_window_supports_client_shadow (window);
 
-  priv->use_client_shadow = gtk_window_supports_client_shadow (window);
-
-  gtk_window_enable_csd (window);
-  priv->title_box = titlebar;
-  gtk_widget_insert_before (priv->title_box, widget, NULL);
+      gtk_window_enable_csd (window);
+      priv->title_box = titlebar;
+      gtk_widget_insert_before (priv->title_box, widget, NULL);
 
-  gtk_widget_add_css_class (titlebar, "titlebar");
+      gtk_widget_add_css_class (titlebar, "titlebar");
+    }
 
-out:
   if (was_mapped)
     gtk_widget_map (widget);
 }