[Pkg-mozext-commits] [firetray] 315/399: fix chat icon blink forever with gnome-shell 3.4.1 (#61)
David Prévot
taffit at alioth.debian.org
Tue Oct 29 18:24:05 UTC 2013
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch dfsg-clean
in repository firetray.
commit 5d9e0b4ef873f6d76d82f6bd34147883d1b1afb8
Author: foudfou <foudil.newbie+git at gmail.com>
Date: Mon Sep 10 13:34:48 2012 +0200
fix chat icon blink forever with gnome-shell 3.4.1 (#61)
---
src/modules/FiretrayChat.jsm | 15 +++++++++------
src/modules/linux/FiretrayChatStatusIcon.jsm | 4 +++-
src/modules/linux/FiretrayWindow.jsm | 12 ++++--------
3 files changed, 16 insertions(+), 15 deletions(-)
diff --git a/src/modules/FiretrayChat.jsm b/src/modules/FiretrayChat.jsm
index c3d5361..b9cd29c 100644
--- a/src/modules/FiretrayChat.jsm
+++ b/src/modules/FiretrayChat.jsm
@@ -87,12 +87,12 @@ firetray.Chat = {
}
},
- stopIconBlinkingMaybe: function() {
+ stopIconBlinkingMaybe: function(xid) {
log.debug("acknowledgeOnFocus.must="+this.acknowledgeOnFocus.must);
if (!this.acknowledgeOnFocus.must) return;
let convIsActiveTabInActiveWin = this.isConvActiveTabInActiveWindow(
- this.acknowledgeOnFocus.conv);
+ this.acknowledgeOnFocus.conv, xid);
log.debug("convIsActiveTabInActiveWin="+convIsActiveTabInActiveWin);
if (this.acknowledgeOnFocus.must && convIsActiveTabInActiveWin) {
@@ -101,14 +101,17 @@ firetray.Chat = {
}
},
- isConvActiveTabInActiveWindow: function(conv) {
- let activeWin = firetray.Handler.findActiveWindow(),
- activeChatTab = null;
+ isConvActiveTabInActiveWindow: function(conv, xid) {
+ let activeWin = xid || firetray.Handler.findActiveWindow();
if (!firetray.Handler.windows[activeWin]) return false;
+ let activeChatTab = null;
activeChatTab = this.findActiveChatTab(activeWin);
+
let convNameRegex = new RegExp(" - "+conv.name+"$");
- return activeChatTab ? convNameRegex.test(activeChatTab.title) : false;
+ let title = activeChatTab && activeChatTab.title;
+ log.debug("conv.name='"+conv.name+"' title="+title);
+ return convNameRegex.test(title);
},
findActiveChatTab: function(xid) {
diff --git a/src/modules/linux/FiretrayChatStatusIcon.jsm b/src/modules/linux/FiretrayChatStatusIcon.jsm
index ba5b541..caea80f 100644
--- a/src/modules/linux/FiretrayChatStatusIcon.jsm
+++ b/src/modules/linux/FiretrayChatStatusIcon.jsm
@@ -105,7 +105,9 @@ firetray.ChatStatusIcon = {
// (http://sourceforge.net/tracker/index.php?func=detail&aid=3190205&group_id=35398&atid=413960)
onFocusIn: function(widget, event, data) {
log.debug("onFocusIn");
- firetray.Chat.stopIconBlinkingMaybe();
+ let xid = firetray.Window.getXIDFromGtkWidget(widget);
+ log.debug("xid="+xid);
+ firetray.Chat.stopIconBlinkingMaybe(xid);
}
// FIXME: TODO: onclick/activate -> chatHandler.showCurrentConversation()
diff --git a/src/modules/linux/FiretrayWindow.jsm b/src/modules/linux/FiretrayWindow.jsm
index 684beab..9fa411d 100644
--- a/src/modules/linux/FiretrayWindow.jsm
+++ b/src/modules/linux/FiretrayWindow.jsm
@@ -147,13 +147,8 @@ firetray.Window = {
},
getXIDFromGtkWidget: function(gtkWid) {
- try {
- let gdkWin = gtk.gtk_widget_get_window(gtkWid);
- return gdk.gdk_x11_drawable_get_xid(ctypes.cast(gdkWin, gdk.GdkDrawable.ptr));
- } catch (x) {
- log.error(x);
- }
- return null;
+ let gdkWin = gtk.gtk_widget_get_window(gtkWid);
+ return gdk.gdk_x11_drawable_get_xid(ctypes.cast(gdkWin, gdk.GdkDrawable.ptr));
},
addrPointedByInHex: function(ptr) {
@@ -672,7 +667,8 @@ firetray.Handler.activateLastWindow = function(gtkStatusIcon, gdkEvent, userData
return stopPropagation;
};
-/* gtk_window_is_active() not reliable */
+/* NOTE: gtk_window_is_active() not reliable, and _NET_ACTIVE_WINDOW may not
+ always be set before 'focus-in-event' (gnome-shell 3.4.1) */
firetray.Handler.findActiveWindow = function() {
let rootWin = x11.XDefaultRootWindow(x11.current.Display);
let [propsFound, nitems] =
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/firetray.git
More information about the Pkg-mozext-commits
mailing list