Flash browser window if new tab opened in background

This commit is contained in:
André Stösel 2011-08-09 19:41:20 +02:00 committed by Christian Dywan
parent 2e532f1895
commit 32f71ef5e0
3 changed files with 40 additions and 1 deletions

View file

@ -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 static void
midori_view_new_tab_cb (GtkWidget* view, midori_view_new_tab_cb (GtkWidget* view,
const gchar* uri, const gchar* uri,
@ -1252,6 +1269,8 @@ midori_view_new_tab_cb (GtkWidget* view,
if (!background) if (!background)
midori_browser_set_current_page (browser, n); midori_browser_set_current_page (browser, n);
else
midori_browser_notify_new_tab (browser);
} }
static void static void
@ -1287,6 +1306,8 @@ midori_view_new_view_cb (GtkWidget* view,
gint n = midori_browser_add_tab (browser, new_view); gint n = midori_browser_add_tab (browser, new_view);
if (where != MIDORI_NEW_VIEW_BACKGROUND) if (where != MIDORI_NEW_VIEW_BACKGROUND)
midori_browser_set_current_page (browser, n); midori_browser_set_current_page (browser, n);
else
midori_browser_notify_new_tab (browser);
} }
if (!user_initiated) if (!user_initiated)

View file

@ -393,6 +393,8 @@ midori_preferences_set_settings (MidoriPreferences* preferences,
else else
button = katze_property_proxy (settings, "middle-click-opens-selection", NULL); button = katze_property_proxy (settings, "middle-click-opens-selection", NULL);
INDENTED_ADD (button); INDENTED_ADD (button);
button = katze_property_proxy (settings, "flash-window-on-new-bg-tabs", NULL);
SPANNED_ADD (button);
FRAME_NEW (NULL); FRAME_NEW (NULL);
button = katze_property_label (settings, "preferred-languages"); button = katze_property_label (settings, "preferred-languages");
INDENTED_ADD (button); INDENTED_ADD (button);

View file

@ -90,6 +90,7 @@ struct _MidoriWebSettings
gboolean enable_dns_prefetching; gboolean enable_dns_prefetching;
#endif #endif
gboolean strip_referer; gboolean strip_referer;
gboolean flash_window_on_bg_tabs;
}; };
struct _MidoriWebSettingsClass struct _MidoriWebSettingsClass
@ -140,6 +141,7 @@ enum
PROP_OPEN_TABS_IN_THE_BACKGROUND, PROP_OPEN_TABS_IN_THE_BACKGROUND,
PROP_OPEN_TABS_NEXT_TO_CURRENT, PROP_OPEN_TABS_NEXT_TO_CURRENT,
PROP_OPEN_POPUPS_IN_TABS, PROP_OPEN_POPUPS_IN_TABS,
PROP_FLASH_WINDOW_ON_BG_TABS,
PROP_AUTO_LOAD_IMAGES, PROP_AUTO_LOAD_IMAGES,
PROP_ENABLE_SCRIPTS, PROP_ENABLE_SCRIPTS,
@ -167,7 +169,7 @@ enum
PROP_CLEAR_PRIVATE_DATA, PROP_CLEAR_PRIVATE_DATA,
PROP_CLEAR_DATA, PROP_CLEAR_DATA,
PROP_ENABLE_DNS_PREFETCHING, PROP_ENABLE_DNS_PREFETCHING,
PROP_STRIP_REFERER PROP_STRIP_REFERER,
}; };
GType GType
@ -768,6 +770,14 @@ midori_web_settings_class_init (MidoriWebSettingsClass* class)
TRUE, TRUE,
flags)); flags));
#endif #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: * MidoriWebSettings:zoom-text-and-images:
@ -1385,6 +1395,9 @@ midori_web_settings_set_property (GObject* object,
case PROP_STRIP_REFERER: case PROP_STRIP_REFERER:
web_settings->strip_referer = g_value_get_boolean (value); web_settings->strip_referer = g_value_get_boolean (value);
break; break;
case PROP_FLASH_WINDOW_ON_BG_TABS:
web_settings->flash_window_on_bg_tabs = g_value_get_boolean (value);
break;
default: default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break; break;
@ -1634,6 +1647,9 @@ midori_web_settings_get_property (GObject* object,
case PROP_STRIP_REFERER: case PROP_STRIP_REFERER:
g_value_set_boolean (value, web_settings->strip_referer); g_value_set_boolean (value, web_settings->strip_referer);
break; break;
case PROP_FLASH_WINDOW_ON_BG_TABS:
g_value_set_boolean (value, web_settings->flash_window_on_bg_tabs);
break;
default: default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break; break;