From: Timm Bäder Date: Wed, 20 May 2020 08:11:37 +0000 (+0200) Subject: window: Create default titlebar directly in realize X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1^2~18^2~16^2~137^2~1 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=9cc6ddf80d026d9204d7ab0b67f6ebcbea6391ab;p=gtk4.git window: Create default titlebar directly in realize Instead of having two functions that are only called from one place but look like they can be called from anywhere. --- diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index 944a1e5d2b..32d31a5ee5 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -3762,17 +3762,6 @@ update_window_actions (GtkWindow *window) update_csd_visibility (window); } -static GtkWidget * -create_titlebar (GtkWindow *window) -{ - GtkWidget *titlebar = gtk_header_bar_new (); - gtk_header_bar_set_show_title_buttons (GTK_HEADER_BAR (titlebar), TRUE); - gtk_widget_add_css_class (titlebar, GTK_STYLE_CLASS_TITLEBAR); - gtk_widget_add_css_class (titlebar, "default-decoration"); - - return titlebar; -} - void _gtk_window_request_csd (GtkWindow *window) { @@ -3817,28 +3806,6 @@ gtk_window_should_use_csd (GtkWindow *window) return (g_strcmp0 (csd_env, "1") == 0); } -static void -create_decoration (GtkWidget *widget) -{ - GtkWindow *window = GTK_WINDOW (widget); - GtkWindowPrivate *priv = gtk_window_get_instance_private (window); - - priv->use_client_shadow = gtk_window_supports_client_shadow (window); - if (!priv->use_client_shadow) - return; - - gtk_window_enable_csd (window); - - if (priv->title_box == NULL) - { - priv->titlebar = create_titlebar (window); - gtk_widget_set_parent (priv->titlebar, widget); - priv->title_box = priv->titlebar; - } - - update_window_actions (window); -} - static void gtk_window_show (GtkWidget *widget) { @@ -4331,8 +4298,28 @@ gtk_window_realize (GtkWidget *widget) GdkSurface *surface; GtkBorder shadow; + /* Create default title bar */ if (!priv->client_decorated && gtk_window_should_use_csd (window)) - create_decoration (widget); + { + priv->use_client_shadow = gtk_window_supports_client_shadow (window); + if (priv->use_client_shadow) + { + gtk_window_enable_csd (window); + + if (priv->title_box == NULL) + { + priv->titlebar = gtk_header_bar_new (); + gtk_header_bar_set_show_title_buttons (GTK_HEADER_BAR (priv->titlebar), TRUE); + gtk_widget_add_css_class (priv->titlebar, GTK_STYLE_CLASS_TITLEBAR); + gtk_widget_add_css_class (priv->titlebar, "default-decoration"); + + gtk_widget_set_parent (priv->titlebar, widget); + priv->title_box = priv->titlebar; + } + + update_window_actions (window); + } + } get_shadow_width (window, &shadow);