diff options
author | Corentin Noël <tintou@mailoo.org> | 2013-07-09 18:24:32 +0200 |
---|---|---|
committer | Corentin Noël <tintou@mailoo.org> | 2013-07-09 18:24:32 +0200 |
commit | 235213d8ec351863a7a765d3e2d8450883a1bd14 (patch) | |
tree | 4ad12915d769b45527fce100c5be8fa8f08c001c | |
parent | 799873e6d8dad29ac2c9bb7e47393c250e928680 (diff) | |
download | midori-235213d8ec351863a7a765d3e2d8450883a1bd14.tar.gz |
Fixed crashes when closing a loading tab + granite's tab moving
-rw-r--r-- | midori/midori-browser.c | 12 | ||||
-rw-r--r-- | midori/midori-view.c | 2 |
2 files changed, 9 insertions, 5 deletions
diff --git a/midori/midori-browser.c b/midori/midori-browser.c index 51bf25cd..770b4eb6 100644 --- a/midori/midori-browser.c +++ b/midori/midori-browser.c @@ -5014,6 +5014,7 @@ midori_browser_notebook_tab_removed_cb (GtkWidget* notebook, GraniteWidgetsTab* tab, MidoriBrowser* browser) { + MidoriView* view = MIDORI_VIEW (granite_widgets_tab_get_page (tab)); if (midori_browser_tab_connected (browser, MIDORI_VIEW (view))) midori_browser_disconnect_tab (browser, MIDORI_VIEW (view)); @@ -5027,12 +5028,15 @@ midori_browser_move_tab_to_notebook (MidoriBrowser* browser, GraniteWidgetsTab* tab, GtkWidget* new_notebook) { - g_object_ref (tab); + GraniteWidgetsTab* new_tab = granite_widgets_tab_new ("", NULL, NULL); + g_object_ref (view); _midori_browser_remove_tab (browser, view); granite_widgets_dynamic_notebook_insert_tab ( - GRANITE_WIDGETS_DYNAMIC_NOTEBOOK (new_notebook), tab, 0); + GRANITE_WIDGETS_DYNAMIC_NOTEBOOK (new_notebook), new_tab, 0); + midori_view_set_tab (MIDORI_VIEW (view), new_tab); + _midori_browser_update_actions (browser); midori_browser_connect_tab (midori_browser_get_for_widget (new_notebook), view); - g_object_unref (tab); + g_object_unref (view); } static void @@ -5091,7 +5095,7 @@ midori_browser_notebook_page_added_cb (GtkNotebook* notebook, MidoriBrowser* browser) { if (!midori_browser_tab_connected (browser, MIDORI_VIEW (child))) - midori_browser_connect_tab (browser, child); + midori_browser_connect_tab (browser, MIDORI_VIEW (child)); midori_browser_notebook_page_reordered_cb (GTK_WIDGET (notebook), MIDORI_VIEW (child), page_num, browser); } diff --git a/midori/midori-view.c b/midori/midori-view.c index d53286a4..031f586a 100644 --- a/midori/midori-view.c +++ b/midori/midori-view.c @@ -4568,6 +4568,7 @@ midori_view_get_tab_menu (MidoriView* view) g_return_val_if_fail (MIDORI_IS_VIEW (view), NULL); browser = midori_browser_get_for_widget (GTK_WIDGET (view)); + g_return_val_if_fail (browser != NULL, NULL); actions = midori_browser_get_action_group (browser); pages = midori_browser_get_n_pages (browser); @@ -4629,7 +4630,6 @@ midori_view_set_tab (MidoriView* view, GraniteWidgetsTab* tab) { g_return_if_fail (MIDORI_IS_VIEW (view)); - g_return_if_fail (view->tab == NULL); view->tab = tab; g_object_set (tab, |