pidgin/pidgin

Merged in strangeways/main/trac-17174 (pull request #264)
release-2.x.y
2017-12-29, Gary Kramlich
894f2ac013de
Merged in strangeways/main/trac-17174 (pull request #264)

Rework tray icon blinking

Approved-by: Eion Robb
Approved-by: Gary Kramlich
--- a/pidgin/gtkdocklet-gtk.c Tue Dec 26 00:17:47 2017 -0600
+++ b/pidgin/gtkdocklet-gtk.c Fri Dec 29 02:59:40 2017 +0000
@@ -137,6 +137,7 @@
docklet_gtk_status_update_icon(PurpleStatusPrimitive status, gboolean connecting, gboolean pending)
{
const gchar *icon_name = NULL;
+ const gchar *current_icon_name = gtk_status_icon_get_icon_name(docklet);
switch (status) {
case PURPLE_STATUS_OFFLINE:
@@ -159,20 +160,17 @@
break;
}
- if (pending)
+ if (connecting && !purple_strequal(current_icon_name, PIDGIN_STOCK_TRAY_CONNECT)) {
+ icon_name = PIDGIN_STOCK_TRAY_CONNECT;
+ }
+
+ if (pending && !purple_strequal(current_icon_name, PIDGIN_STOCK_TRAY_PENDING)) {
icon_name = PIDGIN_STOCK_TRAY_PENDING;
- if (connecting)
- icon_name = PIDGIN_STOCK_TRAY_CONNECT;
+ }
if (icon_name) {
gtk_status_icon_set_from_icon_name(docklet, icon_name);
}
-
- if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/docklet/blink")) {
- gtk_status_icon_set_blinking(docklet, (pending && !connecting));
- } else if (gtk_status_icon_get_blinking(docklet)) {
- gtk_status_icon_set_blinking(docklet, FALSE);
- }
}
static void
--- a/pidgin/gtkdocklet.c Tue Dec 26 00:17:47 2017 -0600
+++ b/pidgin/gtkdocklet.c Fri Dec 29 02:59:40 2017 +0000
@@ -69,10 +69,13 @@
blinked = !blinked;
- if(pending && !connecting) {
- if (blinked) {
- if (ui_ops && ui_ops->blank_icon)
+ if (pending) {
+ if (ui_ops && ui_ops->blank_icon) {
+ if (blinked) {
ui_ops->blank_icon();
+ } else {
+ pidgin_docklet_update_icon();
+ }
} else {
pidgin_docklet_update_icon();
}
@@ -80,6 +83,7 @@
} else {
docklet_blinking_timer = 0;
blinked = FALSE;
+ pidgin_docklet_update_icon();
}
return ret;