]> spindle.queued.net Git - midori/commitdiff
Create window by dragging the tab with Granite
authorChristian Dywan <christian@twotoasts.de>
Sat, 14 Jul 2012 22:11:12 +0000 (00:11 +0200)
committerChristian Dywan <christian@twotoasts.de>
Sat, 14 Jul 2012 22:13:44 +0000 (00:13 +0200)
midori/midori-browser.c

index fc02fe1a24fb745c269212c55a368436b745bdca..0d011b293b10708e17e95e414c93f388c2753c11 100644 (file)
@@ -2390,13 +2390,7 @@ static void
 _action_window_new_activate (GtkAction*     action,
                              MidoriBrowser* browser)
 {
-    MidoriBrowser* new_browser;
-    g_signal_emit (browser, signals[NEW_WINDOW], 0, NULL, &new_browser);
-    if (new_browser)
-    {
-        midori_browser_add_uri (new_browser, "");
-        midori_browser_activate_action (new_browser, "Location");
-    }
+    midori_view_new_window_cb (NULL, "", browser);
 }
 
 static void
@@ -4853,11 +4847,7 @@ _action_tab_move_forward_activate (GtkAction*     action,
     else
         new_pos = cur_pos + 1;
     #ifdef HAVE_GRANITE
-    /* FIXME: There is no move/ set_tab_position function */
-    granite_widgets_dynamic_notebook_remove_tab (
-        GRANITE_WIDGETS_DYNAMIC_NOTEBOOK (browser->notebook),
-        midori_view_get_tab (MIDORI_VIEW (widget)));
-    granite_widgets_dynamic_notebook_insert_tab (
+    granite_widgets_dynamic_notebook_set_tab_position (
         GRANITE_WIDGETS_DYNAMIC_NOTEBOOK (browser->notebook),
         midori_view_get_tab (MIDORI_VIEW (widget)), new_pos);
     #else
@@ -5247,8 +5237,8 @@ midori_browser_notebook_page_reordered_cb (GtkWidget*     notebook,
 }
 
 static GtkWidget*
-midori_browser_notebook_create_window_cb (GtkNotebook*   notebook,
-                                          MidoriView*    view,
+midori_browser_notebook_create_window_cb (GtkWidget*     notebook,
+                                          GtkWidget*     view,
                                           gint           x,
                                           gint           y,
                                           MidoriBrowser* browser)
@@ -5315,7 +5305,17 @@ midori_browser_notebook_tab_moved_cb (GtkWidget*         notebook,
     GtkWidget* view = granite_widgets_tab_get_page (tab);
     if (new_window)
     {
-        /* FIXME midori_browser_notebook_create_window_cb */
+        GtkWidget* notebook = midori_browser_notebook_create_window_cb (
+            browser->notebook, view, x, y, browser);
+        if (notebook != NULL)
+        {
+            g_object_ref (tab);
+            granite_widgets_dynamic_notebook_remove_tab (
+                GRANITE_WIDGETS_DYNAMIC_NOTEBOOK (browser->notebook), tab);
+            granite_widgets_dynamic_notebook_insert_tab (
+                GRANITE_WIDGETS_DYNAMIC_NOTEBOOK (notebook), tab, 0);
+            g_object_unref (tab);
+        }
     }
     else
     {
@@ -6530,6 +6530,8 @@ midori_browser_init (MidoriBrowser* browser)
     #ifdef HAVE_GRANITE
     /* FIXME: granite: should return GtkWidget* like GTK+ */
     browser->notebook = (GtkWidget*)granite_widgets_dynamic_notebook_new ();
+    granite_widgets_dynamic_notebook_set_allow_new_window (
+        GRANITE_WIDGETS_DYNAMIC_NOTEBOOK (browser->notebook), TRUE);
     /* FIXME: work-around a bug */
     gtk_widget_show_all (browser->notebook);
     #else