|
|
d2f20c |
diff -up evolution-3.28.5/src/shell/e-shell-window.c.new-button evolution-3.28.5/src/shell/e-shell-window.c
|
|
|
d2f20c |
--- evolution-3.28.5/src/shell/e-shell-window.c.new-button 2018-07-30 15:37:05.000000000 +0200
|
|
|
d2f20c |
+++ evolution-3.28.5/src/shell/e-shell-window.c 2022-09-26 09:27:18.862555829 +0200
|
|
|
d2f20c |
@@ -47,6 +47,7 @@ enum {
|
|
|
d2f20c |
enum {
|
|
|
d2f20c |
CLOSE_ALERT,
|
|
|
d2f20c |
SHELL_VIEW_CREATED,
|
|
|
d2f20c |
+ UPDATE_NEW_MENU,
|
|
|
d2f20c |
LAST_SIGNAL
|
|
|
d2f20c |
};
|
|
|
d2f20c |
|
|
|
d2f20c |
@@ -120,6 +121,17 @@ shell_window_toolbar_update_new_menu (Gt
|
|
|
d2f20c |
gtk_menu_tool_button_set_menu (menu_tool_button, menu);
|
|
|
d2f20c |
}
|
|
|
d2f20c |
|
|
|
d2f20c |
+static void
|
|
|
d2f20c |
+shell_window_toolbar_update_new_menu_sig (EShellWindow *shell_window,
|
|
|
d2f20c |
+ GtkMenuToolButton *menu_tool_button)
|
|
|
d2f20c |
+{
|
|
|
d2f20c |
+ GtkWidget *menu;
|
|
|
d2f20c |
+
|
|
|
d2f20c |
+ /* Update the "New" menu tool button submenu. */
|
|
|
d2f20c |
+ menu = e_shell_window_create_new_menu (shell_window);
|
|
|
d2f20c |
+ gtk_menu_tool_button_set_menu (menu_tool_button, menu);
|
|
|
d2f20c |
+}
|
|
|
d2f20c |
+
|
|
|
d2f20c |
static gboolean
|
|
|
d2f20c |
shell_window_active_view_to_prefer_item (GBinding *binding,
|
|
|
d2f20c |
const GValue *source_value,
|
|
|
d2f20c |
@@ -160,6 +172,8 @@ shell_window_set_notebook_page (EShellWi
|
|
|
d2f20c |
g_return_if_fail (page_num >= 0);
|
|
|
d2f20c |
|
|
|
d2f20c |
gtk_notebook_set_current_page (notebook, page_num);
|
|
|
d2f20c |
+
|
|
|
d2f20c |
+ g_signal_emit (shell_window, signals[UPDATE_NEW_MENU], 0, NULL);
|
|
|
d2f20c |
}
|
|
|
d2f20c |
|
|
|
d2f20c |
static void
|
|
|
d2f20c |
@@ -512,8 +526,8 @@ shell_window_construct_menubar (EShellWi
|
|
|
d2f20c |
main_menu, "visible",
|
|
|
d2f20c |
G_BINDING_SYNC_CREATE);
|
|
|
d2f20c |
|
|
|
d2f20c |
- e_signal_connect_notify (
|
|
|
d2f20c |
- shell_window, "notify::active-view",
|
|
|
d2f20c |
+ g_signal_connect (
|
|
|
d2f20c |
+ shell_window, "update-new-menu",
|
|
|
d2f20c |
G_CALLBACK (shell_window_menubar_update_new_menu), NULL);
|
|
|
d2f20c |
|
|
|
d2f20c |
return main_menu;
|
|
|
d2f20c |
@@ -593,6 +607,11 @@ shell_window_construct_toolbar (EShellWi
|
|
|
d2f20c |
G_CALLBACK (shell_window_toolbar_update_new_menu),
|
|
|
d2f20c |
shell_window);
|
|
|
d2f20c |
|
|
|
d2f20c |
+ g_signal_connect_object (
|
|
|
d2f20c |
+ shell_window, "update-new-menu",
|
|
|
d2f20c |
+ G_CALLBACK (shell_window_toolbar_update_new_menu_sig),
|
|
|
d2f20c |
+ item, 0);
|
|
|
d2f20c |
+
|
|
|
d2f20c |
gtk_box_pack_start (GTK_BOX (box), toolbar, TRUE, TRUE, 0);
|
|
|
d2f20c |
|
|
|
d2f20c |
toolbar = e_shell_window_get_managed_widget (
|
|
|
d2f20c |
@@ -1176,6 +1195,24 @@ e_shell_window_class_init (EShellWindowC
|
|
|
d2f20c |
G_TYPE_NONE, 1,
|
|
|
d2f20c |
E_TYPE_SHELL_VIEW);
|
|
|
d2f20c |
|
|
|
d2f20c |
+ /*
|
|
|
d2f20c |
+ * EShellWindow::update-new-menu
|
|
|
d2f20c |
+ * @shell_window: the #EShellWindow
|
|
|
d2f20c |
+ *
|
|
|
d2f20c |
+ * Emitted when the 'New' menu should be updated.
|
|
|
d2f20c |
+ *
|
|
|
d2f20c |
+ * Since: 3.44.5
|
|
|
d2f20c |
+ */
|
|
|
d2f20c |
+ signals[UPDATE_NEW_MENU] = g_signal_new (
|
|
|
d2f20c |
+ "update-new-menu",
|
|
|
d2f20c |
+ G_OBJECT_CLASS_TYPE (object_class),
|
|
|
d2f20c |
+ G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
|
|
|
d2f20c |
+ 0,
|
|
|
d2f20c |
+ NULL, NULL,
|
|
|
d2f20c |
+ g_cclosure_marshal_VOID__VOID,
|
|
|
d2f20c |
+ G_TYPE_NONE, 0,
|
|
|
d2f20c |
+ G_TYPE_NONE);
|
|
|
d2f20c |
+
|
|
|
d2f20c |
binding_set = gtk_binding_set_by_class (class);
|
|
|
d2f20c |
gtk_binding_entry_add_signal (
|
|
|
d2f20c |
binding_set, GDK_KEY_Escape, 0, "close-alert", 0);
|
|
|
d2f20c |
@@ -2029,6 +2066,8 @@ e_shell_window_register_new_item_actions
|
|
|
d2f20c |
G_OBJECT (action),
|
|
|
d2f20c |
"primary", GINT_TO_POINTER (TRUE));
|
|
|
d2f20c |
}
|
|
|
d2f20c |
+
|
|
|
d2f20c |
+ g_signal_emit (shell_window, signals[UPDATE_NEW_MENU], 0, NULL);
|
|
|
d2f20c |
}
|
|
|
d2f20c |
|
|
|
d2f20c |
/**
|
|
|
d2f20c |
@@ -2106,4 +2145,6 @@ e_shell_window_register_new_source_actio
|
|
|
d2f20c |
G_OBJECT (action),
|
|
|
d2f20c |
"backend-name", (gpointer) backend_name);
|
|
|
d2f20c |
}
|
|
|
d2f20c |
+
|
|
|
d2f20c |
+ g_signal_emit (shell_window, signals[UPDATE_NEW_MENU], 0, NULL);
|
|
|
d2f20c |
}
|