From cf89e7ea3fdd12433c25cafc865d7becb4e9c28f Mon Sep 17 00:00:00 2001 From: Not Zed Date: Tue, 13 Apr 2004 10:37:19 +0000 Subject: add a component name argument, so we don't use 'this_component', and 2004-04-13 Not Zed * e-user-creatable-items-handler.c (create_verb): add a component name argument, so we don't use 'this_component', and everything comes from tasks! Fix callers to pass the component alias. (struct _EUserCreatableItemsHandlerPrivate): change default_menu_item to be fallback_menu_item for the mail message new fallback. Make default_menu_item be the default for the view (which some code seems to think it should be). Fixes #56866. (ensure_menu_items): setup the fallback_menu_item here. (get_default_action_for_view): use the fallback as the fallback, not default. (setup_toolbar_button): set the default menu item here for the current view. svn path=/trunk/; revision=25429 --- shell/e-user-creatable-items-handler.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) (limited to 'shell/e-user-creatable-items-handler.c') diff --git a/shell/e-user-creatable-items-handler.c b/shell/e-user-creatable-items-handler.c index ba6c006c8d..2de8832ecd 100644 --- a/shell/e-user-creatable-items-handler.c +++ b/shell/e-user-creatable-items-handler.c @@ -90,6 +90,7 @@ struct _EUserCreatableItemsHandlerPrivate { component in the view we are in doesn't provide a default user creatable type. This pointer always points to one of the menu items in ->objects. */ + const MenuItem *fallback_menu_item; const MenuItem *default_menu_item; char *menu_xml; @@ -216,15 +217,11 @@ item_is_default (const MenuItem *item, } static char * -create_verb (EUserCreatableItemsHandler *handler, - int component_num, const char *type_id) +create_verb (EUserCreatableItemsHandler *handler, int component_num, const char *comp, const char *type_id) { - return g_strdup_printf ("EUserCreatableItemsHandler-%s:%d:%s", - handler->priv->this_component, - component_num, type_id); + return g_strdup_printf ("EUserCreatableItemsHandler-%s:%d:%s", comp, component_num, type_id); } - /* Setting up menu items for the "File -> New" submenu and the "New" toolbar button. */ @@ -259,7 +256,7 @@ ensure_menu_items (EUserCreatableItemsHandler *handler) item = g_new (MenuItem, 1); item->label = corba_item->menuDescription; item->shortcut = corba_item->menuShortcut; - item->verb = create_verb (handler, component_num, corba_item->id); + item->verb = create_verb (handler, component_num, component->alias, corba_item->id); item->tooltip = corba_item->tooltip; item->component = g_strdup (component->alias); @@ -288,14 +285,14 @@ ensure_menu_items (EUserCreatableItemsHandler *handler) priv->objects = g_slist_reverse (objects); priv->folders = g_slist_reverse (folders); - priv->default_menu_item = NULL; + priv->fallback_menu_item = NULL; if (default_verb != NULL) { for (p = priv->objects; p != NULL; p = p->next) { const MenuItem *item; item = (const MenuItem *) p->data; if (strcmp (item->verb, default_verb) == 0) - priv->default_menu_item = item; + priv->fallback_menu_item = item; } } } @@ -340,7 +337,7 @@ get_default_action_for_view (EUserCreatableItemsHandler *handler) return item; } - return priv->default_menu_item; + return priv->fallback_menu_item; } @@ -427,6 +424,7 @@ add_verbs (EUserCreatableItemsHandler *handler, verb_name = create_verb (handler, component_num, + component->alias, component->type_list->_buffer[i].id); bonobo_ui_component_add_verb (ui_component, verb_name, verb_fn, handler); @@ -671,7 +669,6 @@ static void setup_toolbar_button (EUserCreatableItemsHandler *handler) { EUserCreatableItemsHandlerPrivate *priv; - const MenuItem *default_menu_item; priv = handler->priv; @@ -691,8 +688,8 @@ setup_toolbar_button (EUserCreatableItemsHandler *handler) priv->new_control = bonobo_control_new (priv->new_button); - default_menu_item = get_default_action_for_view (handler); - if (!default_menu_item) { + priv->default_menu_item = get_default_action_for_view (handler); + if (!priv->default_menu_item) { gtk_widget_set_sensitive (priv->new_button, FALSE); return; } @@ -700,13 +697,13 @@ setup_toolbar_button (EUserCreatableItemsHandler *handler) gtk_widget_set_sensitive (priv->new_button, TRUE); e_combo_button_set_icon (E_COMBO_BUTTON (priv->new_button), - default_menu_item->icon); + priv->default_menu_item->icon); priv->tooltips = gtk_tooltips_new (); gtk_object_ref (GTK_OBJECT (priv->tooltips)); gtk_object_sink (GTK_OBJECT (priv->tooltips)); gtk_tooltips_set_tip (priv->tooltips, priv->new_button, - default_menu_item->tooltip, NULL); + priv->default_menu_item->tooltip, NULL); } -- cgit v1.2.3