From 6d3cdce656785a9b1f2af22ea3c350865bc05c59 Mon Sep 17 00:00:00 2001 From: John Ralls Date: Thu, 26 May 2011 23:13:45 +0000 Subject: [PATCH] Separate window menu to separate ui file, separate function load function called only when not using MAC_INTEGRATION. Quartz takes care of this on its own, and having Gnucash do it too creates two lists. The old approach, of just ifdeffing away the actions, worked but caused the trace log to fill up with "action missing" errors. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@20690 57a11ea4-9604-0410-9ed3-97b8803252fd --- src/gnome-utils/gnc-main-window.c | 28 ++++++++++++++++++++++- src/gnome-utils/ui/Makefile.am | 2 ++ src/gnome-utils/ui/gnc-main-window-ui.xml | 17 ++------------ 3 files changed, 31 insertions(+), 16 deletions(-) diff --git a/src/gnome-utils/gnc-main-window.c b/src/gnome-utils/gnc-main-window.c index 2fd17f85eb..7dddf7046c 100644 --- a/src/gnome-utils/gnc-main-window.c +++ b/src/gnome-utils/gnc-main-window.c @@ -3220,6 +3220,32 @@ connect_proxy (GtkUIManager *merge, } /* CS: end copied code from gtk+/test/testmerge.c */ +static void +gnc_main_window_window_menu (GncMainWindow *window) +{ + GncMainWindowPrivate *priv; + guint merge_id; +#ifdef MAC_INTEGRATION + gchar *filename = gnc_gnome_locate_ui_file("gnc-window-menu-ui-quartz.xml"); +#else + gchar *filename = gnc_gnome_locate_ui_file("gnc-window-menu-ui.xml"); +#endif + GError *error = NULL; + g_assert(filename); + merge_id = gtk_ui_manager_add_ui_from_file(window->ui_merge, filename, + &error); + g_free(filename); + g_assert(merge_id); +#ifndef MAC_INTEGRATION + priv = GNC_MAIN_WINDOW_GET_PRIVATE(window); + gtk_action_group_add_radio_actions (priv->action_group, + radio_entries, n_radio_entries, + 0, + G_CALLBACK(gnc_main_window_cmd_window_raise), + window); +#endif +}; + static void gnc_main_window_setup_window (GncMainWindow *window) { @@ -3334,7 +3360,7 @@ gnc_main_window_setup_window (GncMainWindow *window) g_assert(merge_id != 0); } g_free(filename); - + gnc_main_window_window_menu(window); gnc_gconf_add_notification(G_OBJECT(window), GCONF_GENERAL, gnc_main_window_gconf_changed, GNC_MAIN_WINDOW_NAME); diff --git a/src/gnome-utils/ui/Makefile.am b/src/gnome-utils/ui/Makefile.am index 01901c6c87..446dca2e97 100644 --- a/src/gnome-utils/ui/Makefile.am +++ b/src/gnome-utils/ui/Makefile.am @@ -1,6 +1,8 @@ uidir = $(GNC_UI_DIR) ui_DATA = \ gnc-main-window-ui.xml \ + gnc-windows-menu-ui.xml \ + gnc-windows-menu-ui-quartz.xml \ osx_accel_map EXTRA_DIST = $(ui_DATA) diff --git a/src/gnome-utils/ui/gnc-main-window-ui.xml b/src/gnome-utils/ui/gnc-main-window-ui.xml index 94c76a9e4c..669ca388ff 100644 --- a/src/gnome-utils/ui/gnc-main-window-ui.xml +++ b/src/gnome-utils/ui/gnc-main-window-ui.xml @@ -107,21 +107,8 @@ - - - - - - - - - - - - - - - + +