diff options
author | Christian Persch <chpe@cvs.gnome.org> | 2004-11-01 03:42:45 +0800 |
---|---|---|
committer | Christian Persch <chpe@src.gnome.org> | 2004-11-01 03:42:45 +0800 |
commit | 735b9b230fca8245f80825c0c4bd326385c477ae (patch) | |
tree | a40c2574c1b4d0b33d517d05bd74d9a086b1efb1 /src | |
parent | 0f75d0f02d8ac2b959a88b25009d7577c30c0612 (diff) | |
download | gsoc2013-epiphany-735b9b230fca8245f80825c0c4bd326385c477ae.tar gsoc2013-epiphany-735b9b230fca8245f80825c0c4bd326385c477ae.tar.gz gsoc2013-epiphany-735b9b230fca8245f80825c0c4bd326385c477ae.tar.bz2 gsoc2013-epiphany-735b9b230fca8245f80825c0c4bd326385c477ae.tar.lz gsoc2013-epiphany-735b9b230fca8245f80825c0c4bd326385c477ae.tar.xz gsoc2013-epiphany-735b9b230fca8245f80825c0c4bd326385c477ae.tar.zst gsoc2013-epiphany-735b9b230fca8245f80825c0c4bd326385c477ae.zip |
Emit ::tab-removed after the tab has been removed. Fixes bug 151607.
2004-10-31 Christian Persch <chpe@cvs.gnome.org>
* src/ephy-notebook.c: (ephy_notebook_remove_tab):
* src/ephy-window.c: (ephy_window_show),
(ephy_window_get_active_tab):
Emit ::tab-removed after the tab has been removed. Fixes bug 151607.
Diffstat (limited to 'src')
-rw-r--r-- | src/ephy-notebook.c | 19 | ||||
-rw-r--r-- | src/ephy-window.c | 2 |
2 files changed, 7 insertions, 14 deletions
diff --git a/src/ephy-notebook.c b/src/ephy-notebook.c index a6629ae14..88ddddd68 100644 --- a/src/ephy-notebook.c +++ b/src/ephy-notebook.c @@ -1001,23 +1001,12 @@ void ephy_notebook_remove_tab (EphyNotebook *nb, EphyTab *tab) { - int num, position, curr; + int position, curr; GtkWidget *label, *ebox; g_return_if_fail (EPHY_IS_NOTEBOOK (nb)); g_return_if_fail (EPHY_IS_TAB (tab)); - num = gtk_notebook_get_n_pages (GTK_NOTEBOOK (nb)); - if (num <= 1) - { - GtkWidget *window; - window = gtk_widget_get_toplevel (GTK_WIDGET (nb)); - - g_signal_emit (G_OBJECT (nb), signals[TAB_REMOVED], 0, tab); - gtk_widget_destroy (window); - return; - } - /* Remove the page from the focused pages list */ nb->priv->focused_pages = g_list_remove (nb->priv->focused_pages, tab); @@ -1054,4 +1043,10 @@ ephy_notebook_remove_tab (EphyNotebook *nb, g_signal_emit (G_OBJECT (nb), signals[TAB_REMOVED], 0, tab); g_object_unref (tab); + + /* if that was the last tab, destroy the window */ + if (gtk_notebook_get_n_pages (GTK_NOTEBOOK (nb)) == 0) + { + gtk_widget_destroy (gtk_widget_get_toplevel (GTK_WIDGET (nb))); + } } diff --git a/src/ephy-window.c b/src/ephy-window.c index 5e97ca14d..08a500a61 100644 --- a/src/ephy-window.c +++ b/src/ephy-window.c @@ -2658,7 +2658,6 @@ ephy_window_show (GtkWidget *widget) if (!window->priv->has_size) { -g_print ("initial show!\n"); EphyTab *tab; int width, height; @@ -2690,7 +2689,6 @@ EphyTab * ephy_window_get_active_tab (EphyWindow *window) { g_return_val_if_fail (EPHY_IS_WINDOW (window), NULL); - g_return_val_if_fail (EPHY_IS_TAB (window->priv->active_tab), NULL); return window->priv->active_tab; } |