From 59a6438d5257b010e2a484762fdb3996aee0c4eb Mon Sep 17 00:00:00 2001 From: Christian Dywan Date: Thu, 18 Aug 2011 18:06:34 +0200 Subject: [PATCH] Support creating new windows by dragging tabs outside --- midori/midori-browser.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/midori/midori-browser.c b/midori/midori-browser.c index 04042497..5f111272 100644 --- a/midori/midori-browser.c +++ b/midori/midori-browser.c @@ -5015,6 +5015,26 @@ midori_browser_notebook_reorder_tab_cb (GtkNotebook* notebook, return TRUE; } +static GtkWidget* +midori_browser_notebook_create_window_cb (GtkNotebook* notebook, + MidoriView* view, + gint x, + gint y, + MidoriBrowser* browser) +{ + MidoriBrowser* new_browser; + g_signal_emit (browser, signals[NEW_WINDOW], 0, NULL, &new_browser); + if (new_browser) + { + GtkWidget* new_notebook = katze_object_get_object (new_browser, "notebook"); + g_object_unref (new_notebook); + gtk_window_move (GTK_WINDOW (browser), x, y); + return new_notebook; + } + else /* No MidoriApp, so this is app or private mode */ + return NULL; +} + static void midori_browser_switch_tab_cb (GtkWidget* menuitem, MidoriBrowser* browser) @@ -6208,6 +6228,8 @@ midori_browser_init (MidoriBrowser* browser) browser); g_signal_connect (browser->notebook, "reorder-tab", G_CALLBACK (midori_browser_notebook_reorder_tab_cb), NULL); + g_signal_connect (browser->notebook, "create-window", + G_CALLBACK (midori_browser_notebook_create_window_cb), browser); gtk_widget_show (browser->notebook); /* Inspector container */