summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGary Kramlich <grim@reaperworld.com>2017-12-29 02:59:40 +0000
committerGary Kramlich <grim@reaperworld.com>2017-12-29 02:59:40 +0000
commit2bc719673e691b1e57b5ffac87adb4086801ef51 (patch)
tree9c81de92cfc0aad784b37a5b29f7abb9ea5bbb9c
parent9d42e12c4f7096f53876c403eb3f5f98d4336e66 (diff)
parentd9670b597d293cf1d31a44f651669933ad51c687 (diff)
downloadpidgin-2bc719673e691b1e57b5ffac87adb4086801ef51.tar.gz
Merged in strangeways/main/trac-17174 (pull request #264)
Rework tray icon blinking Approved-by: Eion Robb <eionrobb@gmail.com> Approved-by: Gary Kramlich <grim@reaperworld.com>
-rw-r--r--pidgin/gtkdocklet-gtk.c16
-rw-r--r--pidgin/gtkdocklet.c10
2 files changed, 14 insertions, 12 deletions
diff --git a/pidgin/gtkdocklet-gtk.c b/pidgin/gtkdocklet-gtk.c
index f70916bb57..4771e1e514 100644
--- a/pidgin/gtkdocklet-gtk.c
+++ b/pidgin/gtkdocklet-gtk.c
@@ -137,6 +137,7 @@ static void
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,19 +160,16 @@ docklet_gtk_status_update_icon(PurpleStatusPrimitive status, gboolean connecting
break;
}
- if (pending)
- icon_name = PIDGIN_STOCK_TRAY_PENDING;
- if (connecting)
+ if (connecting && !purple_strequal(current_icon_name, PIDGIN_STOCK_TRAY_CONNECT)) {
icon_name = PIDGIN_STOCK_TRAY_CONNECT;
+ }
- if (icon_name) {
- gtk_status_icon_set_from_icon_name(docklet, icon_name);
+ if (pending && !purple_strequal(current_icon_name, PIDGIN_STOCK_TRAY_PENDING)) {
+ icon_name = PIDGIN_STOCK_TRAY_PENDING;
}
- 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);
+ if (icon_name) {
+ gtk_status_icon_set_from_icon_name(docklet, icon_name);
}
}
diff --git a/pidgin/gtkdocklet.c b/pidgin/gtkdocklet.c
index 443e990f0a..6a1d608ef4 100644
--- a/pidgin/gtkdocklet.c
+++ b/pidgin/gtkdocklet.c
@@ -69,10 +69,13 @@ docklet_blink_icon(gpointer data)
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 @@ docklet_blink_icon(gpointer data)
} else {
docklet_blinking_timer = 0;
blinked = FALSE;
+ pidgin_docklet_update_icon();
}
return ret;