SF.net SVN: geany-plugins:[1148] trunk/geanylatex/src/geanylatex.c
frlan at users.sourceforge.net
frlan at xxxxx
Sun Jan 31 20:06:17 UTC 2010
Revision: 1148
http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=1148&view=rev
Author: frlan
Date: 2010-01-31 20:06:16 +0000 (Sun, 31 Jan 2010)
Log Message:
-----------
GeanyLaTeX:
- Don't use ui_add_document_sensitive() as it seems to have some negative impact on use of gtk_action_set_sensitive()
- Move changing of sensitivity of toolbar item into a separate function
- Remove workaround which has been introduced previously to fix the issue caused by the problems with gtk_action_set_sensitive() mentioned before
- Ensure hidden preference to deactivate LaTeX only toolbar items is applied correctly
Modified Paths:
--------------
trunk/geanylatex/src/geanylatex.c
Modified: trunk/geanylatex/src/geanylatex.c
===================================================================
--- trunk/geanylatex/src/geanylatex.c 2010-01-31 18:15:57 UTC (rev 1147)
+++ trunk/geanylatex/src/geanylatex.c 2010-01-31 20:06:16 UTC (rev 1148)
@@ -142,12 +142,6 @@
toolbar = gtk_ui_manager_get_widget(uim, "/ui/glatex_format_toolbar");
gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(toolbar), FALSE, TRUE, 0);
gtk_box_reorder_child(GTK_BOX(box), toolbar, 2);
- ui_add_document_sensitive(gtk_ui_manager_get_widget(uim, "/ui/glatex_format_toolbar/Bold"));
- ui_add_document_sensitive(gtk_ui_manager_get_widget(uim, "/ui/glatex_format_toolbar/Underline"));
- ui_add_document_sensitive(gtk_ui_manager_get_widget(uim, "/ui/glatex_format_toolbar/Centered"));
- ui_add_document_sensitive(gtk_ui_manager_get_widget(uim, "/ui/glatex_format_toolbar/Italic"));
- ui_add_document_sensitive(gtk_ui_manager_get_widget(uim, "/ui/glatex_format_toolbar/Left"));
- ui_add_document_sensitive(gtk_ui_manager_get_widget(uim, "/ui/glatex_format_toolbar/Right"));
}
/* TODO maybe more error handling */
@@ -296,39 +290,43 @@
glatex_set_latextoggle_status(TRUE);
}
+static void toggle_toolbar_item(const gchar *path, gboolean new_status)
+{
+ if (gtk_action_get_sensitive(gtk_ui_manager_get_action(uim, path)) != new_status)
+ {
+ gtk_action_set_sensitive(gtk_ui_manager_get_action(uim, path), new_status);
+ }
+}
+
static void activate_toolbar_items()
{
- gtk_action_set_sensitive(gtk_ui_manager_get_action(uim, "/ui/glatex_format_toolbar/Bold"), TRUE);
- gtk_action_set_sensitive(gtk_ui_manager_get_action(uim, "/ui/glatex_format_toolbar/Underline"), TRUE);
- gtk_action_set_sensitive(gtk_ui_manager_get_action(uim, "/ui/glatex_format_toolbar/Centered"), TRUE);
- gtk_action_set_sensitive(gtk_ui_manager_get_action(uim, "/ui/glatex_format_toolbar/Italic"), TRUE);
- gtk_action_set_sensitive(gtk_ui_manager_get_action(uim, "/ui/glatex_format_toolbar/Left"), TRUE);
- gtk_action_set_sensitive(gtk_ui_manager_get_action(uim, "/ui/glatex_format_toolbar/Right"), TRUE);
+ toggle_toolbar_item("/ui/glatex_format_toolbar/Bold", TRUE);
+ toggle_toolbar_item("/ui/glatex_format_toolbar/Underline", TRUE);
+ toggle_toolbar_item("/ui/glatex_format_toolbar/Centered", TRUE);
+ toggle_toolbar_item("/ui/glatex_format_toolbar/Italic", TRUE);
+ toggle_toolbar_item("/ui/glatex_format_toolbar/Left", TRUE);
+ toggle_toolbar_item("/ui/glatex_format_toolbar/Right", TRUE);
+ gtk_ui_manager_ensure_update(uim);
}
static void deactivate_toolbar_items()
{
- gtk_action_set_sensitive(gtk_ui_manager_get_action(uim, "/ui/glatex_format_toolbar/Bold"), TRUE);
- gtk_action_set_sensitive(gtk_ui_manager_get_action(uim, "/ui/glatex_format_toolbar/Underline"), TRUE);
- gtk_action_set_sensitive(gtk_ui_manager_get_action(uim, "/ui/glatex_format_toolbar/Centered"), TRUE);
- gtk_action_set_sensitive(gtk_ui_manager_get_action(uim, "/ui/glatex_format_toolbar/Italic"), TRUE);
- gtk_action_set_sensitive(gtk_ui_manager_get_action(uim, "/ui/glatex_format_toolbar/Left"), TRUE);
- gtk_action_set_sensitive(gtk_ui_manager_get_action(uim, "/ui/glatex_format_toolbar/Right"), TRUE);
- gtk_action_set_sensitive(gtk_ui_manager_get_action(uim, "/ui/glatex_format_toolbar/Bold"), FALSE);
- gtk_action_set_sensitive(gtk_ui_manager_get_action(uim, "/ui/glatex_format_toolbar/Underline"), FALSE);
- gtk_action_set_sensitive(gtk_ui_manager_get_action(uim, "/ui/glatex_format_toolbar/Centered"), FALSE);
- gtk_action_set_sensitive(gtk_ui_manager_get_action(uim, "/ui/glatex_format_toolbar/Italic"), FALSE);
- gtk_action_set_sensitive(gtk_ui_manager_get_action(uim, "/ui/glatex_format_toolbar/Left"), FALSE);
- gtk_action_set_sensitive(gtk_ui_manager_get_action(uim, "/ui/glatex_format_toolbar/Right"), FALSE);
+ toggle_toolbar_item("/ui/glatex_format_toolbar/Bold", FALSE);
+ toggle_toolbar_item("/ui/glatex_format_toolbar/Underline", FALSE);
+ toggle_toolbar_item("/ui/glatex_format_toolbar/Centered", FALSE);
+ toggle_toolbar_item("/ui/glatex_format_toolbar/Italic", FALSE);
+ toggle_toolbar_item("/ui/glatex_format_toolbar/Left", FALSE);
+ toggle_toolbar_item("/ui/glatex_format_toolbar/Right", FALSE);
+ gtk_ui_manager_ensure_update(uim);
}
static void toggle_toolbar_items_by_file_type(gint id)
{
- if (glatex_set_toolbar_active == TRUE &&
- glatex_deactivate_toolbaritems_with_non_latex == TRUE)
+ if (glatex_set_toolbar_active == TRUE)
{
- if (id == GEANY_FILETYPES_LATEX)
+ if (id == GEANY_FILETYPES_LATEX ||
+ glatex_deactivate_toolbaritems_with_non_latex == FALSE)
{
activate_toolbar_items();
}
@@ -554,6 +552,16 @@
}
+void on_document_close(G_GNUC_UNUSED GObject *obj, GeanyDocument *doc,
+ G_GNUC_UNUSED gpointer user_data)
+{
+ g_return_if_fail(doc != NULL);
+
+ if (doc->index < 2)
+ deactivate_toolbar_items();
+}
+
+
void glatex_replace_special_character()
{
GeanyDocument *doc = NULL;
@@ -614,6 +622,7 @@
{ "document-filetype-set", (GCallback) &on_document_filetype_set, FALSE, NULL },
{ "document-new", (GCallback) &on_document_new, FALSE, NULL},
{ "geany-startup-complete", (GCallback) &on_geany_startup_complete, FALSE, NULL },
+ { "document-close", (GCallback) &on_document_close, FALSE, NULL},
{ NULL, NULL, FALSE, NULL }
};
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Plugins-Commits
mailing list