From 75c9289b87c94322caf554327ca79154439d98f2 Mon Sep 17 00:00:00 2001 From: Christian Persch Date: Sat, 18 Dec 2004 21:03:37 +0000 Subject: Disable Print and Print Preview while still loading the page. Fixes bug 2004-12-18 Christian Persch * src/ephy-window.c: (update_print_actions), (update_actions_sensitivity), (sync_tab_load_status): Disable Print and Print Preview while still loading the page. Fixes bug #116344. --- src/ephy-window.c | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/ephy-window.c b/src/ephy-window.c index da4785148..e9a0878be 100644 --- a/src/ephy-window.c +++ b/src/ephy-window.c @@ -1008,14 +1008,34 @@ update_chromes_actions (EphyWindow *window) window); } +static void +update_print_actions (EphyWindow *window, + gboolean enable) +{ + GtkActionGroup *action_group = window->priv->action_group; + GtkAction *action; + gboolean printing, print_setup; + + printing = !eel_gconf_get_boolean (CONF_LOCKDOWN_DISABLE_PRINTING); + print_setup = !eel_gconf_get_boolean (CONF_LOCKDOWN_DISABLE_PRINT_SETUP) && + !eel_gconf_get_boolean (CONF_LOCKDOWN_DISABLE_COMMAND_LINE); + + action = gtk_action_group_get_action (action_group, "FilePrintSetup"); + g_object_set (action, "sensitive", printing && print_setup, NULL); + action = gtk_action_group_get_action (action_group, "FilePrintPreview"); + g_object_set (action, "sensitive", enable && printing && print_setup, NULL); + action = gtk_action_group_get_action (action_group, "FilePrint"); + g_object_set (action, "sensitive", enable && printing, NULL); + +} + static void update_actions_sensitivity (EphyWindow *window) { GtkActionGroup *action_group = window->priv->action_group; GtkActionGroup *popups_action_group = window->priv->popups_action_group; GtkAction *action; - gboolean bookmarks_editable, save_to_disk; - gboolean printing, print_setup, fullscreen; + gboolean bookmarks_editable, save_to_disk, fullscreen; action = gtk_action_group_get_action (action_group, "ViewToolbar"); g_object_set (action, "sensitive", eel_gconf_key_is_writable (CONF_WINDOWS_SHOW_TOOLBARS), NULL); @@ -1053,17 +1073,6 @@ update_actions_sensitivity (EphyWindow *window) g_object_set (action, "sensitive", save_to_disk, NULL); action = gtk_action_group_get_action (popups_action_group, "SaveImageAs"); g_object_set (action, "sensitive", save_to_disk, NULL); - - printing = !eel_gconf_get_boolean (CONF_LOCKDOWN_DISABLE_PRINTING); - print_setup = !eel_gconf_get_boolean (CONF_LOCKDOWN_DISABLE_PRINT_SETUP) && - !eel_gconf_get_boolean (CONF_LOCKDOWN_DISABLE_COMMAND_LINE); - action = gtk_action_group_get_action (action_group, "FilePrintSetup"); - g_object_set (action, "sensitive", printing && print_setup, NULL); - action = gtk_action_group_get_action (action_group, "FilePrintPreview"); - g_object_set (action, "sensitive", printing && print_setup, NULL); - action = gtk_action_group_get_action (action_group, "FilePrint"); - g_object_set (action, "sensitive", printing, NULL); - action = gtk_action_group_get_action (popups_action_group, "SetImageAsBackground"); g_object_set (action, "sensitive", eel_gconf_key_is_writable (CONF_DESKTOP_BG_PICTURE), NULL); @@ -1077,6 +1086,8 @@ update_actions_sensitivity (EphyWindow *window) g_object_set (action, "sensitive", !fullscreen, NULL); action = gtk_action_group_get_action (action_group, "TabsDetach"); g_object_set (action, "sensitive", !fullscreen, NULL); + + update_print_actions (window, TRUE); } static void @@ -1419,6 +1430,9 @@ sync_tab_load_status (EphyTab *tab, GParamSpec *pspec, EphyWindow *window) status = ephy_tab_get_load_status (tab); g_object_set (action, "sensitive", status, NULL); + /* disable print while loading, see bug #116344 */ + update_print_actions (window, !status); + if (status) { toolbar_spinner_start (window->priv->toolbar); -- cgit v1.2.3