xed-window: Fix the tabs/spaces label in the statusbar (#283)

This was broken in the commit that added the new highlight mode selection
dialog. Get it working again.
This commit is contained in:
JosephMcc 2019-05-05 02:20:53 -07:00 committed by Clement Lefebvre
parent fb0002bdcd
commit 43ee0436d8
1 changed files with 18 additions and 13 deletions

View File

@ -1316,17 +1316,27 @@ tab_width_button_clicked (GtkMenuItem *item,
} }
static void static void
set_tab_spaces_label (XedWindow *window, set_tab_spaces_label (XedView *view,
XedWindow *window,
gboolean use_spaces) gboolean use_spaces)
{ {
gchar *label;
guint tab_width;
tab_width = gtk_source_view_get_tab_width (GTK_SOURCE_VIEW (view));
if (use_spaces) if (use_spaces)
{ {
xed_status_menu_button_set_label (XED_STATUS_MENU_BUTTON (window->priv->tab_width_button), _("Spaces")); label = g_strdup_printf (_("Spaces: %u"), tab_width);
} }
else else
{ {
xed_status_menu_button_set_label (XED_STATUS_MENU_BUTTON (window->priv->tab_width_button), _("Tabs")); label = g_strdup_printf (_("Tabs: %u"), tab_width);
} }
xed_status_menu_button_set_label (XED_STATUS_MENU_BUTTON (window->priv->tab_width_button), label);
g_free (label);
} }
static void static void
@ -1339,7 +1349,7 @@ use_spaces_toggled (GtkCheckMenuItem *item,
view = xed_window_get_active_view (window); view = xed_window_get_active_view (window);
use_spaces = gtk_check_menu_item_get_active (item); use_spaces = gtk_check_menu_item_get_active (item);
set_tab_spaces_label (window, use_spaces); set_tab_spaces_label (view, window, use_spaces);
g_signal_handler_block (view, window->priv->spaces_instead_of_tabs_id); g_signal_handler_block (view, window->priv->spaces_instead_of_tabs_id);
gtk_source_view_set_insert_spaces_instead_of_tabs (GTK_SOURCE_VIEW (view), use_spaces); gtk_source_view_set_insert_spaces_instead_of_tabs (GTK_SOURCE_VIEW (view), use_spaces);
@ -1360,7 +1370,6 @@ setup_tab_width_menu (XedWindow *window)
guint i = 0; guint i = 0;
GtkWidget *item; GtkWidget *item;
gboolean use_spaces;
window->priv->tab_width_menu = gtk_menu_new (); window->priv->tab_width_menu = gtk_menu_new ();
@ -1391,9 +1400,6 @@ setup_tab_width_menu (XedWindow *window)
gtk_widget_show (item); gtk_widget_show (item);
g_signal_connect(item, "toggled", G_CALLBACK (use_spaces_toggled), window); g_signal_connect(item, "toggled", G_CALLBACK (use_spaces_toggled), window);
use_spaces = g_settings_get_boolean (window->priv->editor_settings, "insert-spaces");
set_tab_spaces_label (window, use_spaces);
} }
static void static void
@ -1787,12 +1793,13 @@ tab_width_changed (GObject *object,
GList *items; GList *items;
GList *item; GList *item;
guint new_tab_width; guint new_tab_width;
gchar *label; gboolean use_spaces;
gboolean found = FALSE; gboolean found = FALSE;
items = gtk_container_get_children (GTK_CONTAINER (window->priv->tab_width_menu)); items = gtk_container_get_children (GTK_CONTAINER (window->priv->tab_width_menu));
new_tab_width = gtk_source_view_get_tab_width (GTK_SOURCE_VIEW(object)); new_tab_width = gtk_source_view_get_tab_width (GTK_SOURCE_VIEW (object));
use_spaces = gtk_source_view_get_insert_spaces_instead_of_tabs (GTK_SOURCE_VIEW (object));
for (item = items; item; item = item->next) for (item = items; item; item = item->next)
{ {
@ -1826,10 +1833,8 @@ tab_width_changed (GObject *object,
} }
} }
label = g_strdup_printf (_("Tab Width: %u"), new_tab_width); set_tab_spaces_label (XED_VIEW (object), window, use_spaces);
xed_status_menu_button_set_label (XED_STATUS_MENU_BUTTON (window->priv->tab_width_button), label);
g_free (label);
g_list_free (items); g_list_free (items);
} }