Closed Bug 923349 Opened 11 years ago Closed 10 years ago

Keystrokes are hijacked by inactive window in Thunderbird and Firefox (Linux, likely related to application "unclutter")

Categories

(Core :: Widget: Gtk, defect)

x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 625149

People

(Reporter: bugzilla, Unassigned)

References

Details

User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0 (Beta/Release)
Build ID: 20130911155223

Steps to reproduce:

Recently, probably in the upgrade to Thunderbird 24.0, I've found that the front-most, active window often will not receive keystrokes. Instead they are being sent to the background, inactive window. For example, I attempt to reply to an email, and start typing. I see text in the body as expected, then a second after beginning, the text is sent to the main "mail index" window. The front-most window is shown as selected in the pager, while a non-selected window receives the keystrokes. This means that for long periods, I am unable to send and compose emails. In addition, I'm also often mid-sentence when I realise that the characters aren't appearing, and I've done some weird filing/labelling in the mail index window.

I can alt-tab or click between windows, but cannot seem to type into the compose window. Otherwise, clicking does all you expect it to. You can select menus of the window; you can even select text (although it's the "background window" grey instead of the "foreground window" blue).

I tried to make sure that it was not an issue with X/KDE by testing to see what the reported active window was.

$ xwininfo | grep -i 'window id'
xwininfo: Window id: 0x3c001f6 "Inbox - Uni - Mozilla Thunderbird"
$ xwininfo | grep -i 'window id'
xwininfo: Window id: 0x3c0670c "Write: Re: Foo Bar - Unicode (UTF-8)"
$ sleep 1 && xprop -root | grep -E '^_NET_ACTIVE_WINDOW'
_NET_ACTIVE_WINDOW(WINDOW): window id # 0x3c001f6
$ sleep 1 && xprop -root | grep -E '^_NET_ACTIVE_WINDOW'
_NET_ACTIVE_WINDOW(WINDOW): window id # 0x3c0670c

It seems that even when the active window is reported to be the compose window by X, it will still not receive input. I presume that it's Thunderbird hijacking the active window internally.

I've tried starting in safe mode and manually downloading and running Thunderbird from the website (64-bit version), instead of using the version in the repositories. In both cases, I still hit this bug.

I don't see this in any other application, except for Firefox occasionally. It used to be fairly frequent in Firefox starting in a release around February, but appears to have diminished in frequency since then.

I did similar troubleshooting in Firefox for active window using xev, but this is now buggy and doesn't work. First I found window IDs with

    xwininfo | grep -i 'window id'

Then, when the bug occurred, I attempted to see if keystrokes were being passed to the active (but non-responsive) window with

    xev -id 0x123456 | grep Key

I also did the same for the background window that was actually responding to the keystrokes. It seems that the active (but non-responsive) window was indeed receiving keystrokes, and the other one was not, although it was responding to them. I presume that again, it's Firefox hijacking the active window internally. It's probably easier for me to do more troubleshooting in Thunderbird, since it's more frequent.

I checked bugzilla to see this had already been filed, but found nothing. However, I'm unsure if this is related: https://bugzilla.mozilla.org/show_bug.cgi?id=831854

Also, I'm not sure how to work out what core version this regression could have occurred in, so I've just left it unspecified.

Kubuntu 13.04
KDE 4.10.5

Ubuntu bug trackers.
Thunderbird bug here:
https://bugs.launchpad.net/ubuntu/+source/thunderbird/+bug/1234468
Firefox bug here:
https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/1234470



Actual results:

Keystrokes go to the background, non-active window.


Expected results:

Keystrokes should go to the foreground, active window.
I have the same issue on 64-bit Kubuntu 12.04
Andrew, do you see this bug in both Firefox and Thunderbird?

If, like me, you see it more frequently in Thunderbird, the following might help. I was also hit by this (unrelated?) bug in the upgrade. https://bugzilla.mozilla.org/show_bug.cgi?id=917027

Applying the fix for that bug seems to mitigate this bug a little, although it doesn't totally fix it. I still get this bug intermittently, but it *seems* to be less frequent.

The fix is: Edit > Preferences > Advanced > General > Config Editor. Search for mail.compose.max_recycled_windows, double click it, and change the '1' to '0' in the 'Enter integer value' window that pops up.
This is also apparently seen in Unity as well.
https://forum.kde.org/viewtopic.php?f=111&t=117704#p294488

As stated previously, I also tried manually downloading Thunderbird from the Mozilla website, so it's unlikely to be a problem introduced in the Ubuntu packages.
Andrew, do you by any chance have unclutter running?

https://forum.kde.org/viewtopic.php?f=111&t=117704&p=294916#p294912
(In reply to Sparhawk from comment #4)
> Andrew, do you by any chance have unclutter running?

Indeed I do, because it's a dependency of kubuntu-desktop.
I'm not sure if you followed my link, but killing unclutter and stopping it from running at startup fixes this for me.
As per the link above, I've been running unclutter with `-noevents`, and that appears to have fixed this bug for the last 5 days, at least.
BTW: I had the same problem with SeaMonkey when using multiple windows and it looks like using unclutter with "-noevents" worked. Is this now a bug in all Mozilla applications or a problem with the way unclutter works?
For reference what this means:
-noevents
              stops  unclutter  sending  a  pseudo EnterNotify event to the X client whose cursor has been stolen.  Sending the event helps programs like emacs think that they
              have not lost the pointer focus.  This option is provided for backwards compatibility in case some clients get upset.
I think this bug belongs here, maybe GTK devs know a bit more about this?
Component: General → Widget: Gtk
Summary: Keystrokes are hijacked by inactive window in Thunderbird and Firefox (Linux) → Keystrokes are hijacked by inactive window in Thunderbird and Firefox (Linux, likely related to application "unclutter")
I suspect it *is* Mozilla, but I'm not sure. It'd be great to hear from some devs here.

I did do some troubleshooting in the following threads that might be useful:
https://forum.kde.org/viewtopic.php?f=111&t=110202
https://forum.kde.org/viewtopic.php?f=111&t=117704

I was told "Firefox has quite a lot issues with X as they more or less have their own toolkit instead of going with default ones." Indeed I have only come across this problem with FF/TB and unclutter, and nothing else.
Yes, unclutter tries to be clever, but is not quite clever enough.
Status: UNCONFIRMED → RESOLVED
Closed: 10 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.