summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorentin Noël <tintou@mailoo.org>2013-07-09 18:24:32 +0200
committerCorentin Noël <tintou@mailoo.org>2013-07-09 18:24:32 +0200
commit235213d8ec351863a7a765d3e2d8450883a1bd14 (patch)
tree4ad12915d769b45527fce100c5be8fa8f08c001c
parent799873e6d8dad29ac2c9bb7e47393c250e928680 (diff)
downloadmidori-235213d8ec351863a7a765d3e2d8450883a1bd14.tar.gz
Fixed crashes when closing a loading tab + granite's tab moving
-rw-r--r--midori/midori-browser.c12
-rw-r--r--midori/midori-view.c2
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,