[Xfce4-commits] <midori:master> Handle window raising without the help of unique

Christian Dywan noreply at xfce.org
Wed Jan 6 23:42:06 CET 2010


Updating branch refs/heads/master
         to b7d09f38bbec692f17652c332177113d6c7fb798 (commit)
       from 996f1a86d3775102b5fd95b836df19be1c7f81f2 (commit)

commit b7d09f38bbec692f17652c332177113d6c7fb798
Author: Christian Dywan <christian at twotoasts.de>
Date:   Wed Jan 6 22:30:59 2010 +0100

    Handle window raising without the help of unique

 midori/midori-app.c |   26 +++++++++++++++++---------
 1 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/midori/midori-app.c b/midori/midori-app.c
index c1df59e..6a8a0f0 100644
--- a/midori/midori-app.c
+++ b/midori/midori-app.c
@@ -206,8 +206,10 @@ _midori_app_add_browser (MidoriApp*     app,
 
     app->browser = browser;
     #if HAVE_UNIQUE
+    /* We *do not* let unique watch windows because that includes
+        bringing windows in the foreground, even from other workspaces.
     if (app->instance)
-        unique_app_watch_window (app->instance, GTK_WINDOW (browser));
+        unique_app_watch_window (app->instance, GTK_WINDOW (browser)); */
     #endif
 }
 
@@ -391,6 +393,15 @@ midori_app_class_init (MidoriAppClass* class)
                                      G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
 }
 
+static void
+midori_app_raise_window (GtkWindow* window,
+                         GdkScreen* screen)
+{
+    gtk_window_set_screen (window, screen);
+    gtk_window_present (window);
+    gtk_window_deiconify (window);
+}
+
 static gboolean
 midori_app_command_received (MidoriApp*   app,
                              const gchar* command,
@@ -410,8 +421,7 @@ midori_app_command_received (MidoriApp*   app,
         if (!app->browser)
             return FALSE;
 
-        gtk_window_set_screen (GTK_WINDOW (app->browser), screen);
-        gtk_window_present (GTK_WINDOW (app->browser));
+        midori_app_raise_window (GTK_WINDOW (app->browser), screen);
         return TRUE;
     }
     else if (g_str_equal (command, "new"))
@@ -421,8 +431,8 @@ midori_app_command_received (MidoriApp*   app,
         /* FIXME: Should open the homepage according to settings */
         midori_browser_add_uri (browser, "");
         midori_browser_activate_action (browser, "Location");
-        gtk_window_set_screen (GTK_WINDOW (app->browser), screen);
         gtk_widget_show (GTK_WIDGET (browser));
+        midori_app_raise_window (GTK_WINDOW (browser), screen);
         return TRUE;
     }
     else if (g_str_equal (command, "open"))
@@ -430,8 +440,6 @@ midori_app_command_received (MidoriApp*   app,
         if (!app->browser)
             return FALSE;
 
-        gtk_window_set_screen (GTK_WINDOW (app->browser), screen);
-        gtk_window_present (GTK_WINDOW (app->browser));
         if (!uris)
             return FALSE;
         else
@@ -446,11 +454,13 @@ midori_app_command_received (MidoriApp*   app,
             {
                 browser = midori_app_create_browser (app);
                 midori_app_add_browser (app, browser);
-                gtk_window_set_screen (GTK_WINDOW (app->browser), screen);
                 gtk_widget_show (GTK_WIDGET (browser));
             }
             else
                 browser = app->browser;
+
+            midori_app_raise_window (GTK_WINDOW (browser), screen);
+
             first = (open_external_pages_in == MIDORI_NEW_PAGE_CURRENT);
             while (*uris)
             {
@@ -605,8 +615,6 @@ midori_app_io_channel_watch_cb (GIOChannel*  channel,
         }
     }
 
-    gtk_window_present (GTK_WINDOW (app->browser));
-
     fd_close (sock);
 
     return TRUE;



More information about the Xfce4-commits mailing list