mirror of
https://github.com/moparisthebest/FireTray
synced 2025-01-09 12:38:04 -05:00
do chat icon blinking ourselves
gtk_status_icon_set_blinking() deprecated deprecated since version 2.22, removed in GTK+ 3
This commit is contained in:
parent
3aca4f64f1
commit
f3a988444e
@ -103,7 +103,7 @@ firetray.Chat = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
firetray.ChatStatusIcon.setIconBlinking(true);
|
firetray.ChatStatusIcon.startIconBlinking();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -120,7 +120,7 @@ firetray.Chat = {
|
|||||||
|
|
||||||
if (this.acknowledgeOnFocus.must && convIsCurrentlyShown) {
|
if (this.acknowledgeOnFocus.must && convIsCurrentlyShown) {
|
||||||
firetray.ChatStatusIcon.setUrgency(xid, false);
|
firetray.ChatStatusIcon.setUrgency(xid, false);
|
||||||
firetray.ChatStatusIcon.setIconBlinking(false);
|
firetray.ChatStatusIcon.stopIconBlinking();
|
||||||
this.acknowledgeOnFocus.must = false;
|
this.acknowledgeOnFocus.must = false;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -37,7 +37,9 @@ firetray.ChatStatusIcon = {
|
|||||||
o[FIRETRAY_IM_STATUS_OFFLINE] = null;
|
o[FIRETRAY_IM_STATUS_OFFLINE] = null;
|
||||||
return o;
|
return o;
|
||||||
})(),
|
})(),
|
||||||
|
themedIconNameCurrent: null,
|
||||||
signals: {'focus-in': {callback: {}, handler: {}}},
|
signals: {'focus-in': {callback: {}, handler: {}}},
|
||||||
|
timers: {},
|
||||||
|
|
||||||
init: function() {
|
init: function() {
|
||||||
if (!firetray.Handler.inMailApp) throw "ChatStatusIcon for mail app only";
|
if (!firetray.Handler.inMailApp) throw "ChatStatusIcon for mail app only";
|
||||||
@ -78,12 +80,26 @@ firetray.ChatStatusIcon = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
setIconImage: function(name) {
|
setIconImage: function(name) {
|
||||||
|
this.themedIconNameCurrent = name;
|
||||||
this.setIconImageFromGIcon(this.themedIcons[name]);
|
this.setIconImageFromGIcon(this.themedIcons[name]);
|
||||||
},
|
},
|
||||||
|
|
||||||
// TODO: handle blinking ourselves (gtk_status_icon_set_blinking deprecated)
|
startIconBlinking: function() { // gtk_status_icon_set_blinking deprecated
|
||||||
setIconBlinking: function(blink) {
|
this.on = true;
|
||||||
gtk.gtk_status_icon_set_blinking(this.trayIcon, blink);
|
firetray.ChatStatusIcon.timers['blink'] = firetray.Utils.timer(
|
||||||
|
500, Ci.nsITimer.TYPE_REPEATING_SLACK, function() {
|
||||||
|
if (firetray.ChatStatusIcon.on)
|
||||||
|
gtk.gtk_status_icon_set_from_pixbuf(firetray.ChatStatusIcon.trayIcon, null);
|
||||||
|
else
|
||||||
|
firetray.ChatStatusIcon.setIconImage(firetray.ChatStatusIcon.themedIconNameCurrent);
|
||||||
|
firetray.ChatStatusIcon.on = !firetray.ChatStatusIcon.on;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
stopIconBlinking: function() {
|
||||||
|
this.timers['blink'].cancel();
|
||||||
|
this.setIconImage(firetray.ChatStatusIcon.themedIconNameCurrent);
|
||||||
|
this.on = false;
|
||||||
},
|
},
|
||||||
|
|
||||||
setUrgency: function(xid, urgent) {
|
setUrgency: function(xid, urgent) {
|
||||||
|
Loading…
Reference in New Issue
Block a user