pidgin/pidgin

0839fbcfb9b4
Parents 93c0cd117e1d
Children 11ab937b64b9
Use gtk_status_icon_get_icon_name instead of a new boolean variable
--- 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 @@
}
static void
-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);
switch (status) {
case PURPLE_STATUS_OFFLINE:
@@ -159,11 +160,11 @@
break;
}
- if (connecting) {
+ 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 @@
if (blinked) {
ui_ops->blank_icon();
} else {
- pidgin_docklet_update_icon(blinked);
+ pidgin_docklet_update_icon();
}
} else {
- pidgin_docklet_update_icon(blinked);
+ pidgin_docklet_update_icon();
}
ret = TRUE; /* keep blinking */
} else {
docklet_blinking_timer = 0;
blinked = FALSE;
- pidgin_docklet_update_icon(FALSE);
+ pidgin_docklet_update_icon();
}
return ret;
@@ -211,7 +211,7 @@
pending = newpending;
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 @@
* public api for ui_ops
**************************************************************************/
void
-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);
}
void
@@ -799,7 +799,7 @@
}
visible = TRUE;
docklet_update_status();
- pidgin_docklet_update_icon(FALSE);
+ pidgin_docklet_update_icon();
}
void
--- 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 (*create)(void);
void (*destroy)(void);
- 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) {
int icon_index;
g_return_if_fail(image != NULL);