diff options
-rw-r--r-- | ChangeLog | 13 | ||||
-rw-r--r-- | embed/ephy-embed.c | 7 | ||||
-rw-r--r-- | embed/ephy-embed.h | 9 | ||||
-rw-r--r-- | embed/mozilla/mozilla-embed.cpp | 1 | ||||
-rw-r--r-- | src/ephy-window.c | 39 |
5 files changed, 44 insertions, 25 deletions
@@ -1,3 +1,16 @@ +2004-04-01 Christian Persch <chpe@cvs.gnome.org> + + * embed/ephy-embed.c: (ephy_embed_chrome_get_type): + * embed/ephy-embed.h: + * embed/mozilla/mozilla-embed.cpp: + * src/ephy-window.c: (get_chromes_visibility), + (sync_chromes_visibility), (update_chromes_actions), + (get_default_chrome), (ephy_window_init), (sync_prefs_with_chrome), + (ephy_window_view_bookmarksbar_cb): + + Fix bookmarks toolbar visibility in fullscreen and print preview mode, as + well as for javascript popups. Fixes bug #138520. + 2004-03-31 Christian Persch <chpe@cvs.gnome.org> * configure.in: diff --git a/embed/ephy-embed.c b/embed/ephy-embed.c index 00f8b25d8..9f1686840 100644 --- a/embed/ephy-embed.c +++ b/embed/ephy-embed.c @@ -40,9 +40,10 @@ ephy_embed_chrome_get_type (void) static const GFlagsValue values[] = { { EPHY_EMBED_CHROME_DEFAULT, "EPHY_EMBED_CHROME_DEFAULT", "default" }, - { EPHY_EMBED_CHROME_MENUBAR, "EPHY_EMBED_CHROME_MENUBARON", "menubar" }, - { EPHY_EMBED_CHROME_TOOLBAR, "EPHY_EMBED_CHROME_TOOLBARON", "toolbar" }, - { EPHY_EMBED_CHROME_STATUSBAR, "EPHY_EMBED_CHROME_STATUSBARON", "statusbar" }, + { EPHY_EMBED_CHROME_MENUBAR, "EPHY_EMBED_CHROME_MENUBAR", "menubar" }, + { EPHY_EMBED_CHROME_TOOLBAR, "EPHY_EMBED_CHROME_TOOLBAR", "toolbar" }, + { EPHY_EMBED_CHROME_STATUSBAR, "EPHY_EMBED_CHROME_STATUSBAR", "statusbar" }, + { EPHY_EMBED_CHROME_BOOKMARKSBAR, "EPHY_EMBED_CHROME_BOOKMARKSBAR", "bookmarksbar" }, { 0, NULL, NULL } }; diff --git a/embed/ephy-embed.h b/embed/ephy-embed.h index 217d3df2a..c2fcb2e91 100644 --- a/embed/ephy-embed.h +++ b/embed/ephy-embed.h @@ -59,10 +59,11 @@ typedef enum typedef enum { - EPHY_EMBED_CHROME_DEFAULT = 1 << 0, - EPHY_EMBED_CHROME_MENUBAR = 1 << 1, - EPHY_EMBED_CHROME_TOOLBAR = 1 << 2, - EPHY_EMBED_CHROME_STATUSBAR = 1 << 3 + EPHY_EMBED_CHROME_DEFAULT = 1 << 0, + EPHY_EMBED_CHROME_MENUBAR = 1 << 1, + EPHY_EMBED_CHROME_TOOLBAR = 1 << 2, + EPHY_EMBED_CHROME_STATUSBAR = 1 << 3, + EPHY_EMBED_CHROME_BOOKMARKSBAR = 1 << 4 } EphyEmbedChrome; typedef enum diff --git a/embed/mozilla/mozilla-embed.cpp b/embed/mozilla/mozilla-embed.cpp index e02abad73..8f0fe578b 100644 --- a/embed/mozilla/mozilla-embed.cpp +++ b/embed/mozilla/mozilla-embed.cpp @@ -1001,6 +1001,7 @@ mozilla_embed_new_window_cb (GtkMozEmbed *embed, { GTK_MOZ_EMBED_FLAG_MENUBARON, EPHY_EMBED_CHROME_MENUBAR }, { GTK_MOZ_EMBED_FLAG_TOOLBARON, EPHY_EMBED_CHROME_TOOLBAR }, { GTK_MOZ_EMBED_FLAG_STATUSBARON, EPHY_EMBED_CHROME_STATUSBAR }, + { GTK_MOZ_EMBED_FLAG_PERSONALTOOLBARON, EPHY_EMBED_CHROME_BOOKMARKSBAR }, { 0, 0 } }; diff --git a/src/ephy-window.c b/src/ephy-window.c index 967d38236..89aa3504b 100644 --- a/src/ephy-window.c +++ b/src/ephy-window.c @@ -338,7 +338,6 @@ struct EphyWindowPrivate guint help_message_cid; EphyEmbedChrome chrome; - gboolean show_bookmarksbar; gboolean should_save_chrome; guint disable_arbitrary_url_notifier_id; @@ -457,7 +456,8 @@ exit_fullscreen_button_clicked_cb (GtkWidget *button, EphyWindow *window) static void get_chromes_visibility (EphyWindow *window, gboolean *show_menubar, - gboolean *show_statusbar, gboolean *show_toolbar) + gboolean *show_statusbar, gboolean *show_toolbar, + gboolean *show_bookmarksbar) { EphyEmbedChrome flags = window->priv->chrome; @@ -467,13 +467,14 @@ get_chromes_visibility (EphyWindow *window, gboolean *show_menubar, *show_menubar = flags & EPHY_EMBED_CHROME_MENUBAR; *show_statusbar = flags & EPHY_EMBED_CHROME_STATUSBAR; *show_toolbar = flags & EPHY_EMBED_CHROME_TOOLBAR; + *show_bookmarksbar = flags & EPHY_EMBED_CHROME_BOOKMARKSBAR; break; case EPHY_WINDOW_MODE_FULLSCREEN: *show_toolbar = flags & EPHY_EMBED_CHROME_TOOLBAR; - *show_menubar = *show_statusbar = FALSE; + *show_menubar = *show_statusbar = *show_bookmarksbar = FALSE; break; default: - *show_menubar = *show_statusbar = *show_toolbar = FALSE; + *show_menubar = *show_statusbar = *show_toolbar = *show_bookmarksbar = FALSE; } } @@ -481,10 +482,11 @@ static void sync_chromes_visibility (EphyWindow *window) { GtkWidget *menubar; - gboolean show_statusbar, show_menubar, show_toolbar; + gboolean show_statusbar, show_menubar, show_toolbar, show_bookmarksbar; get_chromes_visibility (window, &show_menubar, - &show_statusbar, &show_toolbar); + &show_statusbar, &show_toolbar, + &show_bookmarksbar); menubar = gtk_ui_manager_get_widget (GTK_UI_MANAGER (window->ui_merge), "/menubar"); @@ -500,7 +502,7 @@ sync_chromes_visibility (EphyWindow *window) } toolbar_set_visibility (window->priv->toolbar, show_toolbar, - window->priv->show_bookmarksbar); + show_bookmarksbar); if (show_statusbar) @@ -866,10 +868,11 @@ update_chromes_actions (EphyWindow *window) { GtkActionGroup *action_group = GTK_ACTION_GROUP (window->priv->action_group); GtkAction *action; - gboolean show_statusbar, show_menubar, show_toolbar; + gboolean show_statusbar, show_menubar, show_toolbar, show_bookmarksbar; get_chromes_visibility (window, &show_menubar, - &show_statusbar, &show_toolbar); + &show_statusbar, &show_toolbar, + &show_bookmarksbar); action = gtk_action_group_get_action (action_group, "ViewToolbar"); g_signal_handlers_block_by_func (G_OBJECT (action), @@ -884,8 +887,7 @@ update_chromes_actions (EphyWindow *window) g_signal_handlers_block_by_func (G_OBJECT (action), G_CALLBACK (ephy_window_view_bookmarksbar_cb), window); - gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), - window->priv->show_bookmarksbar); + gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), show_bookmarksbar); g_signal_handlers_unblock_by_func (G_OBJECT (action), G_CALLBACK (ephy_window_view_bookmarksbar_cb), window); @@ -1739,6 +1741,11 @@ get_default_chrome (void) chrome_mask |= EPHY_EMBED_CHROME_MENUBAR; } + if (eel_gconf_get_boolean (CONF_WINDOWS_SHOW_BOOKMARKS_BAR)) + { + chrome_mask |= EPHY_EMBED_CHROME_BOOKMARKSBAR; + } + return chrome_mask; } @@ -1915,8 +1922,6 @@ ephy_window_init (EphyWindow *window) window->priv->has_size = FALSE; window->priv->should_save_chrome = FALSE; window->priv->mode = EPHY_WINDOW_MODE_NORMAL; - window->priv->show_bookmarksbar = - eel_gconf_get_boolean (CONF_WINDOWS_SHOW_BOOKMARKS_BAR); ensure_default_icon (); @@ -2574,7 +2579,7 @@ sync_prefs_with_chrome (EphyWindow *window) if (window->priv->should_save_chrome) { eel_gconf_set_boolean (CONF_WINDOWS_SHOW_BOOKMARKS_BAR, - window->priv->show_bookmarksbar); + flags & EPHY_EMBED_CHROME_BOOKMARKSBAR); eel_gconf_set_boolean (CONF_WINDOWS_SHOW_TOOLBARS, flags & EPHY_EMBED_CHROME_TOOLBAR); eel_gconf_set_boolean (CONF_WINDOWS_SHOW_STATUSBAR, @@ -2616,8 +2621,6 @@ static void ephy_window_view_bookmarksbar_cb (GtkAction *action, EphyWindow *window) { - window->priv->show_bookmarksbar = gtk_toggle_action_get_active - (GTK_TOGGLE_ACTION (action)); - sync_chromes_visibility (window); - sync_prefs_with_chrome (window); + sync_chrome_with_view_toggle (action, window, + EPHY_EMBED_CHROME_BOOKMARKSBAR); } |