[gthumb/ext] update the catalog list from the file context menu as well



commit 35dd7f817ee876153775c2f3dba97c50bf482632
Author: Paolo Bacchilega <paobac src gnome org>
Date:   Thu Oct 29 20:43:54 2009 +0100

    update the catalog list from the file context menu as well

 extensions/catalogs/callbacks.c |   15 +++++++++++++++
 extensions/catalogs/callbacks.h |    1 +
 extensions/catalogs/main.c      |    1 +
 gthumb/gth-browser.c            |    2 ++
 gthumb/gth-main-default-hooks.c |    7 +++++++
 5 files changed, 26 insertions(+), 0 deletions(-)
---
diff --git a/extensions/catalogs/callbacks.c b/extensions/catalogs/callbacks.c
index 2a66485..43c6aad 100644
--- a/extensions/catalogs/callbacks.c
+++ b/extensions/catalogs/callbacks.c
@@ -503,6 +503,21 @@ catalogs__gth_browser_file_list_popup_before_cb (GthBrowser *browser)
 
 
 void
+catalogs__gth_browser_file_popup_before_cb (GthBrowser *browser)
+{
+	BrowserData *data;
+
+	data = g_object_get_data (G_OBJECT (browser), BROWSER_DATA_KEY);
+	g_return_if_fail (data != NULL);
+
+	if (! data->catalog_menu_loaded) {
+		data->catalog_menu_loaded = TRUE;
+		update_catalog_menu (data);
+	}
+}
+
+
+void
 catalogs__gth_browser_folder_tree_popup_before_cb (GthBrowser    *browser,
 						   GthFileSource *file_source,
 					           GthFileData   *folder)
diff --git a/extensions/catalogs/callbacks.h b/extensions/catalogs/callbacks.h
index 01c6f41..5ed9dfb 100644
--- a/extensions/catalogs/callbacks.h
+++ b/extensions/catalogs/callbacks.h
@@ -30,6 +30,7 @@ void catalogs__initialize_cb                           (void);
 void catalogs__gth_browser_construct_cb                (GthBrowser    *browser);
 void catalogs__gth_browser_update_sensitivity_cb       (GthBrowser    *browser);
 void catalogs__gth_browser_file_list_popup_before_cb   (GthBrowser    *browser);
+void catalogs__gth_browser_file_popup_before_cb        (GthBrowser    *browser);
 void catalogs__gth_browser_folder_tree_popup_before_cb (GthBrowser    *browser,
 							GthFileSource *file_source,
 					                GFile         *folder);
diff --git a/extensions/catalogs/main.c b/extensions/catalogs/main.c
index 71c60f2..ffc080e 100644
--- a/extensions/catalogs/main.c
+++ b/extensions/catalogs/main.c
@@ -47,6 +47,7 @@ gthumb_extension_activate (void)
 	gth_hook_add_callback ("gth-browser-construct", 10, G_CALLBACK (catalogs__gth_browser_construct_cb), NULL);
 	gth_hook_add_callback ("gth-browser-update-sensitivity", 10, G_CALLBACK (catalogs__gth_browser_update_sensitivity_cb), NULL);
 	gth_hook_add_callback ("gth-browser-file-list-popup-before", 10, G_CALLBACK (catalogs__gth_browser_file_list_popup_before_cb), NULL);
+	gth_hook_add_callback ("gth-browser-file-popup-before", 10, G_CALLBACK (catalogs__gth_browser_file_popup_before_cb), NULL);
 	gth_hook_add_callback ("gth-browser-folder-tree-popup-before", 10, G_CALLBACK (catalogs__gth_browser_folder_tree_popup_before_cb), NULL);
 	gth_hook_add_callback ("gth-browser-load-location-after", 10, G_CALLBACK (catalogs__gth_browser_load_location_after_cb), NULL);
 }
diff --git a/gthumb/gth-browser.c b/gthumb/gth-browser.c
index 63c5c8c..4688b88 100644
--- a/gthumb/gth-browser.c
+++ b/gthumb/gth-browser.c
@@ -5008,6 +5008,8 @@ void
 gth_browser_file_menu_popup (GthBrowser     *browser,
 			     GdkEventButton *event)
 {
+	gth_hook_invoke ("gth-browser-file-popup-before", browser);
+	gtk_ui_manager_ensure_update (browser->priv->ui);
 	gtk_menu_popup (GTK_MENU (browser->priv->file_popup),
 			NULL,
 			NULL,
diff --git a/gthumb/gth-main-default-hooks.c b/gthumb/gth-main-default-hooks.c
index d304dd4..0a08f9c 100644
--- a/gthumb/gth-main-default-hooks.c
+++ b/gthumb/gth-main-default-hooks.c
@@ -116,6 +116,13 @@ gth_main_register_default_hooks (void)
 	gth_hook_register ("gth-browser-file-list-popup-before", 1);
 
 	/**
+	 * Called before displaying the file popup menu.
+	 *
+	 * @browser (GthBrowser*): the relative window.
+	 **/
+	gth_hook_register ("gth-browser-file-popup-before", 1);
+
+	/**
 	 * Called before displaying the folder tree popup menu.
 	 *
 	 * @browser (GthBrowser*): the relative window.



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