[gedit/wip/redesign2] window: Fix the location of the buttons in the headerbar when is split



commit 146204506e9d1477b42dfe6c3496f816665e99d6
Author: Yosef Or Boczko <yoseforb gmail com>
Date:   Mon Jan 6 15:12:23 2014 +0200

    window: Fix the location of the buttons in the headerbar when is split

 gedit/gedit-window.c |   29 +++++++++++++++++++++++++++++
 1 files changed, 29 insertions(+), 0 deletions(-)
---
diff --git a/gedit/gedit-window.c b/gedit/gedit-window.c
index 9f0ad5f..c9061c1 100644
--- a/gedit/gedit-window.c
+++ b/gedit/gedit-window.c
@@ -2609,6 +2609,7 @@ side_panel_visibility_changed (GtkWidget   *panel,
        gboolean visible;
        GAction *action;
        GtkStyleContext *context;
+       gchar *layout_desc;
 
        visible = gtk_widget_get_visible (panel);
 
@@ -2632,6 +2633,34 @@ side_panel_visibility_changed (GtkWidget   *panel,
                gtk_style_context_remove_class (context, "gedit-titlebar-right");
                gtk_widget_grab_focus (GTK_WIDGET (window->priv->multi_notebook));
        }
+
+       g_object_get (gtk_settings_get_default (),
+                     "gtk-decoration-layout", &layout_desc,
+                     NULL);
+       if (visible)
+       {
+               gchar **tokens;
+
+               tokens = g_strsplit (layout_desc, ":", 2);
+               if (tokens)
+               {
+                       gchar *layout_headerbar;
+
+                       layout_headerbar = g_strdup_printf ("%c%s", ':', tokens[1]);
+                       gtk_header_bar_set_decoration_layout (GTK_HEADER_BAR (window->priv->headerbar), 
layout_headerbar);
+                       gtk_header_bar_set_decoration_layout (GTK_HEADER_BAR (window->priv->side_headerbar), 
tokens[0]);
+
+                       g_free (layout_headerbar);
+                       g_strfreev (tokens);
+               }
+       }
+       else
+       {
+               gtk_header_bar_set_decoration_layout (GTK_HEADER_BAR (window->priv->headerbar), layout_desc);
+               gtk_header_bar_set_decoration_layout (GTK_HEADER_BAR (window->priv->side_headerbar), NULL);
+       }
+
+       g_free (layout_desc);
 }
 
 static void


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