[Xfce4-commits] <midori:master> Flash browser window if new tab opened in background

Christian Dywan noreply at xfce.org
Mon Aug 15 21:32:02 CEST 2011


Updating branch refs/heads/master
         to 32f71ef5e030af07972d4491d1f7b43deb4b3d57 (commit)
       from 2e532f18953f15d24cd0f4c426b39e6c206779d3 (commit)

commit 32f71ef5e030af07972d4491d1f7b43deb4b3d57
Author: André Stösel <andre at stoesel.de>
Date:   Tue Aug 9 19:41:20 2011 +0200

    Flash browser window if new tab opened in background

 midori/midori-browser.c     |   21 +++++++++++++++++++++
 midori/midori-preferences.c |    2 ++
 midori/midori-websettings.c |   18 +++++++++++++++++-
 3 files changed, 40 insertions(+), 1 deletions(-)

diff --git a/midori/midori-browser.c b/midori/midori-browser.c
index 1858f69..6b84abd 100644
--- a/midori/midori-browser.c
+++ b/midori/midori-browser.c
@@ -1240,6 +1240,23 @@ midori_browser_view_copy_history (GtkWidget* view_to,
     }
 }
 
+static gint
+midori_browser_notify_new_tab_timeout_cb (MidoriBrowser *browser)
+{
+    gtk_window_set_opacity (GTK_WINDOW (browser), 1);
+    return 0;
+}
+
+static void
+midori_browser_notify_new_tab (MidoriBrowser *browser)
+{
+    if (katze_object_get_boolean (browser->settings, "flash-window-on-new-bg-tabs"))
+    {
+        gtk_window_set_opacity (GTK_WINDOW (browser), 0.8);
+        gtk_timeout_add (100, (GtkFunction) midori_browser_notify_new_tab_timeout_cb, browser);
+    }
+}
+
 static void
 midori_view_new_tab_cb (GtkWidget*     view,
                         const gchar*   uri,
@@ -1252,6 +1269,8 @@ midori_view_new_tab_cb (GtkWidget*     view,
 
     if (!background)
         midori_browser_set_current_page (browser, n);
+    else
+        midori_browser_notify_new_tab (browser);
 }
 
 static void
@@ -1287,6 +1306,8 @@ midori_view_new_view_cb (GtkWidget*     view,
         gint n = midori_browser_add_tab (browser, new_view);
         if (where != MIDORI_NEW_VIEW_BACKGROUND)
             midori_browser_set_current_page (browser, n);
+        else
+            midori_browser_notify_new_tab (browser);
     }
 
     if (!user_initiated)
diff --git a/midori/midori-preferences.c b/midori/midori-preferences.c
index aee12c2..4d4a771 100644
--- a/midori/midori-preferences.c
+++ b/midori/midori-preferences.c
@@ -393,6 +393,8 @@ midori_preferences_set_settings (MidoriPreferences* preferences,
     else
         button = katze_property_proxy (settings, "middle-click-opens-selection", NULL);
     INDENTED_ADD (button);
+    button = katze_property_proxy (settings, "flash-window-on-new-bg-tabs", NULL);
+    SPANNED_ADD (button);
     FRAME_NEW (NULL);
     button = katze_property_label (settings, "preferred-languages");
     INDENTED_ADD (button);
diff --git a/midori/midori-websettings.c b/midori/midori-websettings.c
index 73d1aa0..351f3df 100644
--- a/midori/midori-websettings.c
+++ b/midori/midori-websettings.c
@@ -90,6 +90,7 @@ struct _MidoriWebSettings
     gboolean enable_dns_prefetching;
     #endif
     gboolean strip_referer;
+    gboolean flash_window_on_bg_tabs;
 };
 
 struct _MidoriWebSettingsClass
@@ -140,6 +141,7 @@ enum
     PROP_OPEN_TABS_IN_THE_BACKGROUND,
     PROP_OPEN_TABS_NEXT_TO_CURRENT,
     PROP_OPEN_POPUPS_IN_TABS,
+    PROP_FLASH_WINDOW_ON_BG_TABS,
 
     PROP_AUTO_LOAD_IMAGES,
     PROP_ENABLE_SCRIPTS,
@@ -167,7 +169,7 @@ enum
     PROP_CLEAR_PRIVATE_DATA,
     PROP_CLEAR_DATA,
     PROP_ENABLE_DNS_PREFETCHING,
-    PROP_STRIP_REFERER
+    PROP_STRIP_REFERER,
 };
 
 GType
@@ -768,6 +770,14 @@ midori_web_settings_class_init (MidoriWebSettingsClass* class)
                                                            TRUE,
                                                            flags));
     #endif
+    g_object_class_install_property (gobject_class,
+                                     PROP_OPEN_TABS_IN_THE_BACKGROUND,
+                                     g_param_spec_boolean (
+                                     "flash-window-on-new-bg-tabs",
+                                     _("Flash window on background tabs"),
+                                     _("Flash the browser window if a new tab was opened in the background"),
+                                     FALSE,
+                                     flags));
 
     /**
      * MidoriWebSettings:zoom-text-and-images:
@@ -1385,6 +1395,9 @@ midori_web_settings_set_property (GObject*      object,
     case PROP_STRIP_REFERER:
         web_settings->strip_referer = g_value_get_boolean (value);
         break;
+    case PROP_FLASH_WINDOW_ON_BG_TABS:
+        web_settings->flash_window_on_bg_tabs = g_value_get_boolean (value);
+        break;
     default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
         break;
@@ -1634,6 +1647,9 @@ midori_web_settings_get_property (GObject*    object,
     case PROP_STRIP_REFERER:
         g_value_set_boolean (value, web_settings->strip_referer);
         break;
+    case PROP_FLASH_WINDOW_ON_BG_TABS:
+        g_value_set_boolean (value, web_settings->flash_window_on_bg_tabs);
+        break;
     default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
         break;


More information about the Xfce4-commits mailing list