[Xfce4-commits] <mousepad:matt/gtksourceview> Select filetype radio menu item when detecting filetype.

Matthew Brush noreply at xfce.org
Thu Oct 6 23:20:10 CEST 2011


Updating branch refs/heads/matt/gtksourceview
         to 05b3c46c8b9877fa62b07fd6a04b1b82fc5576ed (commit)
       from 66a2d472174195507aa00ae8287ff4c1b62c6604 (commit)

commit 05b3c46c8b9877fa62b07fd6a04b1b82fc5576ed
Author: Matthew Brush <matt at xfce.org>
Date:   Thu Oct 6 03:11:18 2011 -0700

    Select filetype radio menu item when detecting filetype.
    
    Fix setting filetype to None.

 mousepad/mousepad-window.c |   37 ++++++++++++++++++++++++++++++++++++-
 1 files changed, 36 insertions(+), 1 deletions(-)

diff --git a/mousepad/mousepad-window.c b/mousepad/mousepad-window.c
index 313ec76..5897108 100644
--- a/mousepad/mousepad-window.c
+++ b/mousepad/mousepad-window.c
@@ -1687,6 +1687,34 @@ mousepad_window_language_changed (MousepadDocument  *document,
                                   GtkSourceLanguage *language,
                                   MousepadWindow    *window)
 {
+  gchar     *path;
+  GtkWidget *item;
+
+  if (!GTK_IS_SOURCE_LANGUAGE (language))
+    goto set_none;
+
+  path = g_strdup_printf ("/main-menu/document-menu/language-menu/"
+                          "placeholder-language-section-items/"
+                          "language-section-%s/language-%s",
+                          gtk_source_language_get_section (language),
+                          gtk_source_language_get_id (language));
+  item = gtk_ui_manager_get_widget (window->ui_manager, path);
+  g_free (path);
+
+  /* activate the appropriate menu item for the new language */
+  if (GTK_IS_CHECK_MENU_ITEM (item))
+    {
+      gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item), TRUE);
+      goto set_statusbar;
+    }
+
+set_none:
+  item = gtk_ui_manager_get_widget (window->ui_manager,
+                                        "/main-menu/document-menu/language-menu/language-none");
+  if (GTK_IS_CHECK_MENU_ITEM (item))
+    gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item), TRUE);
+
+set_statusbar:
   /* set the filetype in the statusbar */
   if (window->statusbar)
     mousepad_statusbar_set_language (MOUSEPAD_STATUSBAR (window->statusbar), language);
@@ -4835,6 +4863,14 @@ mousepad_window_action_language (GtkToggleAction *action,
   GtkSourceBuffer          *buffer;
 
   lang_hash = (guint) gtk_radio_action_get_current_value (GTK_RADIO_ACTION (action));
+  buffer = GTK_SOURCE_BUFFER (gtk_text_view_get_buffer (GTK_TEXT_VIEW (window->active->textview)));
+
+  if (lang_hash == g_str_hash ("none"))
+    {
+      gtk_source_buffer_set_language (buffer, NULL);
+      return;
+    }
+
   manager = gtk_source_language_manager_get_default ();
   lang_id = gtk_source_language_manager_get_language_ids (manager);
 
@@ -4843,7 +4879,6 @@ mousepad_window_action_language (GtkToggleAction *action,
       if (g_str_hash (*lang_id) == lang_hash)
         {
           language = gtk_source_language_manager_get_language (manager, *lang_id);
-          buffer = GTK_SOURCE_BUFFER (gtk_text_view_get_buffer (GTK_TEXT_VIEW (window->active->textview)));
           gtk_source_buffer_set_language (buffer, language);
           break;
         }


More information about the Xfce4-commits mailing list