aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog11
-rw-r--r--src/ephy-tab.c5
-rw-r--r--src/ephy-tabs-menu.c6
-rw-r--r--src/ephy-window.c6
4 files changed, 18 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 099dd6885..2439b4df9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
2003-09-24 Marco Pesenti Gritti <marco@gnome.org>
+ * src/ephy-tab.c: (ephy_tab_init):
+ * src/ephy-tabs-menu.c: (tab_added_cb), (tab_removed_cb),
+ (ephy_tabs_menu_init):
+ * src/ephy-window.c: (ephy_window_set_active_tab):
+
+ Simplify and solve bugs by using a checkbox with radio
+ appeareance. That way we can get rid of groups that
+ doesnt really work well for our needs.
+
+2003-09-24 Marco Pesenti Gritti <marco@gnome.org>
+
* data/epiphany.schemas.in:
correct wrong key
diff --git a/src/ephy-tab.c b/src/ephy-tab.c
index 8e5b4605a..e0455a194 100644
--- a/src/ephy-tab.c
+++ b/src/ephy-tab.c
@@ -71,7 +71,7 @@ struct EphyTabPrivate
int total_requests;
int width;
int height;
- GtkRadioAction *action;
+ GtkToggleAction *action;
float zoom;
EmbedSecurityLevel security_level;
TabNavigationFlags nav_flags;
@@ -1010,9 +1010,10 @@ ephy_tab_init (EphyTab *tab)
id = g_strdup_printf ("Tab%lu", tab_id++);
- tab->priv->action = g_object_new (GTK_TYPE_RADIO_ACTION,
+ tab->priv->action = g_object_new (GTK_TYPE_TOGGLE_ACTION,
"name", id,
"label", _("Blank page"),
+ "draw_as_radio", TRUE,
NULL);
g_free (id);
diff --git a/src/ephy-tabs-menu.c b/src/ephy-tabs-menu.c
index 4a6e7ca25..9b7c6c6fc 100644
--- a/src/ephy-tabs-menu.c
+++ b/src/ephy-tabs-menu.c
@@ -48,7 +48,6 @@ struct _EphyTabsMenuPrivate
{
EphyWindow *window;
GtkActionGroup *action_group;
- GSList *radio_group;
guint ui_id;
};
@@ -108,9 +107,6 @@ tab_added_cb (EphyNotebook *notebook, GtkWidget *child, EphyTabsMenu *menu)
action = GTK_ACTION (ephy_tab_get_action (tab));
gtk_action_group_add_action (menu->priv->action_group, action);
- gtk_radio_action_set_group (GTK_RADIO_ACTION (action), menu->priv->radio_group);
- menu->priv->radio_group = gtk_radio_action_get_group (GTK_RADIO_ACTION (action));
-
ephy_tabs_menu_update (menu);
}
@@ -124,7 +120,6 @@ tab_removed_cb (EphyNotebook *notebook, GtkWidget *child, EphyTabsMenu *menu)
tab = EPHY_TAB (g_object_get_data (G_OBJECT (child), "EphyTab"));
action = GTK_ACTION (ephy_tab_get_action (tab));
- gtk_radio_action_set_group (GTK_RADIO_ACTION (action), NULL);
gtk_action_group_remove_action (menu->priv->action_group, action);
ephy_tabs_menu_update (menu);
@@ -209,7 +204,6 @@ ephy_tabs_menu_init (EphyTabsMenu *menu)
menu->priv = EPHY_TABS_MENU_GET_PRIVATE (menu);
menu->priv->ui_id = 0;
- menu->priv->radio_group = NULL;
menu->priv->action_group = NULL;
}
diff --git a/src/ephy-window.c b/src/ephy-window.c
index bdbd7822e..89f337db3 100644
--- a/src/ephy-window.c
+++ b/src/ephy-window.c
@@ -1081,6 +1081,7 @@ ephy_window_set_active_tab (EphyWindow *window, EphyTab *new_tab)
{
EphyTab *old_tab;
EphyEmbed *embed;
+ GtkToggleAction *action;
g_return_if_fail (EPHY_IS_WINDOW (window));
if (ephy_tab_get_window (new_tab) != window) return;
@@ -1123,14 +1124,15 @@ ephy_window_set_active_tab (EphyWindow *window, EphyTab *new_tab)
g_signal_handlers_disconnect_by_func (G_OBJECT (embed),
G_CALLBACK (tab_context_menu_cb),
window);
+
+ action = GTK_TOGGLE_ACTION (ephy_tab_get_action (old_tab));
+ gtk_toggle_action_set_active (action, FALSE);
}
window->priv->active_tab = new_tab;
if (new_tab)
{
- GtkToggleAction *action;
-
sync_tab_address (new_tab, NULL, window);
sync_tab_icon (new_tab, NULL, window);
sync_tab_load_progress (new_tab, NULL, window);