[epiphany/overview] ephy-window: sync window's overview state with embed's overview mode
- From: Claudio Saavedra <csaavedra src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [epiphany/overview] ephy-window: sync window's overview state with embed's overview mode
- Date: Mon, 20 Aug 2012 16:13:35 +0000 (UTC)
commit 5565f00d629e394b9dbaea8028bda4ebaab66363
Author: Claudio Saavedra <csaavedra igalia com>
Date: Mon Aug 20 18:45:15 2012 +0300
ephy-window: sync window's overview state with embed's overview mode
src/ephy-window.c | 86 ++++++++++++++++++++++++++++++++---------------------
1 files changed, 52 insertions(+), 34 deletions(-)
---
diff --git a/src/ephy-window.c b/src/ephy-window.c
index 749b58d..6f8f8e3 100644
--- a/src/ephy-window.c
+++ b/src/ephy-window.c
@@ -1686,6 +1686,51 @@ sync_tab_title (EphyEmbed *embed,
ephy_embed_get_title (embed));
}
+
+static void
+ephy_window_prepare_for_overview (EphyWindow *window)
+{
+ GtkAction *action;
+
+ ephy_window_set_location (window, "");
+ g_object_set (window->priv->location_controller, "show-icon", FALSE, NULL);
+ _ephy_window_set_security_state (window, FALSE, STOCK_LOCK_INSECURE);
+ _ephy_window_action_set_favicon (window, NULL);
+ _ephy_window_set_navigation_flags (window, 0);
+
+ /* Update sensitivity of actions */
+
+ action = gtk_action_group_get_action (window->priv->toolbar_action_group,
+ "ViewCombinedStopReload");
+ ephy_combined_stop_reload_action_set_loading (EPHY_COMBINED_STOP_RELOAD_ACTION (action),
+ FALSE);
+}
+
+static void
+ephy_window_toggle_overview (EphyWindow *window, gboolean overview_mode)
+{
+ if (overview_mode) {
+ /* ephy_window_disconnect_active_embed (window); */
+ ephy_window_prepare_for_overview (window);
+ ephy_window_activate_location (window);
+ } else {
+ gtk_widget_grab_focus (GTK_WIDGET(window->priv->active_embed));
+ sync_tab_address (ephy_embed_get_web_view (window->priv->active_embed),
+ NULL, window);
+ /* ephy_window_connect_active_embed (window); */
+ }
+ _ephy_window_set_default_actions_sensitive (window, SENS_FLAG_OVERVIEW, overview_mode);
+}
+
+static void
+sync_tab_overview (EphyEmbed *embed,
+ GParamSpec *pspec,
+ EphyWindow *window)
+{
+ ephy_window_toggle_overview (window,
+ ephy_embed_get_overview_mode (embed));
+}
+
static void
sync_network_status (EphyEmbedSingle *single,
GParamSpec *pspec,
@@ -2502,6 +2547,7 @@ ephy_window_connect_active_embed (EphyWindow *window)
sync_tab_is_blank (view, NULL, window);
sync_tab_navigation (view, NULL, window);
sync_tab_title (embed, NULL, window);
+ sync_tab_overview (embed, NULL, window);
sync_tab_address (view, NULL, window);
sync_tab_icon (view, NULL, window);
sync_tab_popup_windows (view, NULL, window);
@@ -2552,6 +2598,9 @@ ephy_window_connect_active_embed (EphyWindow *window)
g_signal_connect_object (embed, "notify::title",
G_CALLBACK (sync_tab_title),
window, 0);
+ g_signal_connect_object (embed, "notify::overview-mode",
+ G_CALLBACK (sync_tab_overview),
+ window, 0);
g_signal_connect_object (view, "notify::address",
G_CALLBACK (sync_tab_address),
window, 0);
@@ -2660,6 +2709,9 @@ ephy_window_disconnect_active_embed (EphyWindow *window)
g_signal_handlers_disconnect_by_func (embed,
G_CALLBACK (sync_tab_title),
window);
+ g_signal_handlers_disconnect_by_func (embed,
+ G_CALLBACK (sync_tab_overview),
+ window);
g_signal_handlers_disconnect_by_func (view,
G_CALLBACK (sync_tab_address),
window);
@@ -4099,40 +4151,6 @@ ephy_window_get_overview_mode (EphyWindow *window)
return window->priv->overview_mode;
}
-static void
-ephy_window_prepare_for_overview (EphyWindow *window)
-{
- GtkAction *action;
-
- gtk_window_set_title (GTK_WINDOW (window), _(("Web overview")));
- ephy_window_set_location (window, "");
- g_object_set (window->priv->location_controller, "show-icon", FALSE, NULL);
- _ephy_window_set_security_state (window, FALSE, STOCK_LOCK_INSECURE);
- _ephy_window_action_set_favicon (window, NULL);
- _ephy_window_set_navigation_flags (window, 0);
-
- /* Update sensitivity of actions */
-
- action = gtk_action_group_get_action (window->priv->toolbar_action_group,
- "ViewCombinedStopReload");
- ephy_combined_stop_reload_action_set_loading (EPHY_COMBINED_STOP_RELOAD_ACTION (action),
- FALSE);
-}
-
-static void
-ephy_window_toggle_overview (EphyWindow *window, gboolean overview_mode)
-{
- if (overview_mode) {
- ephy_window_disconnect_active_embed (window);
- ephy_window_prepare_for_overview (window);
- ephy_window_activate_location (window);
- } else {
- gtk_widget_grab_focus (GTK_WIDGET(window->priv->active_embed));
- ephy_window_connect_active_embed (window);
- }
- _ephy_window_set_default_actions_sensitive (window, SENS_FLAG_OVERVIEW, overview_mode);
-}
-
void
ephy_window_set_overview_mode (EphyWindow *window, gboolean overview_mode)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]