--- a/pidgin/gtkdocklet-gtk.c Wed Nov 29 20:40:36 2017 +0100
+++ b/pidgin/gtkdocklet-gtk.c Wed Nov 29 21:13:54 2017 +0100
@@ -134,9 +134,10 @@
-docklet_gtk_status_update_icon(PurpleStatusPrimitive status, gboolean connecting, gboolean pending, gboolean blinked)
+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); case PURPLE_STATUS_OFFLINE:
@@ -159,11 +160,11 @@
+ if (connecting && strcmp(current_icon_name, PIDGIN_STOCK_TRAY_CONNECT) != 0) { icon_name = PIDGIN_STOCK_TRAY_CONNECT;
- if (!blinked && pending) {
+ if (pending && strcmp(current_icon_name, PIDGIN_STOCK_TRAY_PENDING) != 0) { icon_name = PIDGIN_STOCK_TRAY_PENDING;
--- a/pidgin/gtkdocklet.c Wed Nov 29 20:40:36 2017 +0100
+++ b/pidgin/gtkdocklet.c Wed Nov 29 21:13:54 2017 +0100
@@ -74,16 +74,16 @@
- pidgin_docklet_update_icon(blinked);
+ pidgin_docklet_update_icon(); - pidgin_docklet_update_icon(blinked);
+ pidgin_docklet_update_icon(); ret = TRUE; /* keep blinking */
docklet_blinking_timer = 0;
- pidgin_docklet_update_icon(FALSE);
+ pidgin_docklet_update_icon(); @@ -211,7 +211,7 @@
connecting = newconnecting;
- pidgin_docklet_update_icon(FALSE);
+ pidgin_docklet_update_icon(); /* and schedule the blinker function if messages are pending */
if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/docklet/blink")
@@ -762,10 +762,10 @@
**************************************************************************/
-pidgin_docklet_update_icon(gboolean blinked)
+pidgin_docklet_update_icon() if (ui_ops && ui_ops->update_icon)
- ui_ops->update_icon(status, connecting, pending, blinked);
+ ui_ops->update_icon(status, connecting, pending); @@ -799,7 +799,7 @@
- pidgin_docklet_update_icon(FALSE);
+ pidgin_docklet_update_icon(); --- a/pidgin/gtkdocklet.h Wed Nov 29 20:40:36 2017 +0100
+++ b/pidgin/gtkdocklet.h Wed Nov 29 21:13:54 2017 +0100
@@ -31,7 +31,7 @@
- void (*update_icon)(PurpleStatusPrimitive, gboolean, gboolean, gboolean);
+ void (*update_icon)(PurpleStatusPrimitive, gboolean, gboolean); void (*blank_icon)(void);
void (*set_tooltip)(gchar *);
GtkMenuPositionFunc position_menu;
@@ -39,7 +39,7 @@
/* functions in gtkdocklet.c */
-void pidgin_docklet_update_icon(gboolean blinked);
+void pidgin_docklet_update_icon(void); void pidgin_docklet_clicked(int);
void pidgin_docklet_embedded(void);
void pidgin_docklet_remove(void);
--- a/pidgin/win32/gtkdocklet-win32.c Wed Nov 29 20:40:36 2017 +0100
+++ b/pidgin/win32/gtkdocklet-win32.c Wed Nov 29 21:13:54 2017 +0100
@@ -497,7 +497,7 @@
static void winpidgin_tray_update_icon(PurpleStatusPrimitive status,
- gboolean connecting, gboolean pending, gboolean blinked) {
+ gboolean connecting, gboolean pending) { g_return_if_fail(image != NULL);