Comment 0 for bug 1816634

Revision history for this message
Steve McConnel (stephen-mcconnel) wrote :

This is similar in some ways to https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1181666 but affects only the mouse, not the keyboard, and is consistent almost all (99%+) of the time. This is happening for Ubuntu 18.04.2 LTS (bionic) in the default desktop environment (Ubuntu). It also happens for the GNOME and GNOME Classic desktop environments. The version of gnome-shell is 3.28.3-0ubuntu0.18.04.4.

Our program is a blend of C# winforms (Mono) with embedded web browser windows using Geckofx45 (mozilla version 45). Editing windows in the program use HTML to display formatting and typescript/javascript code to assist with popup dialogs and other editing help. Inside these editing windows, left mouse clicks are essentially ignored. Keyboarding still works fine as far as I can tell. Clicking on the gear button inside the editing window fails to bring up the Styles dialog more than 95% of the time. When the dialog does display, it is always (100%) nonfunctional as the first click in it causes it to close immediately.

Tracing the internal behavior of the code, it appears that clicking the first time inside the editing (browser) window causes a series of WM_FOCUS messages to be sent and the javascript to hook up a left mouse click handler to a gear button displayed in the lower left corner of the editing window. This is the expected behavior, and the same as on other window managers. But then, on GNOME Shell only, a series of WM_KILLFOCUS messages are sent immediately. This does not happen for other window managers. (The main window receives a WM_ACTIVATE message with the argument to make it deactivate.) Any other left mouse clicks inside that window are ignored >95% of the time, probably only when double clicking quickly enough to occur before those messages to lose focus/deactivate are handled. (Right mouse clicks are handled at a higher level and appear to function normally.)

The program in question is called Bloom. The source code is available at https://github.com/BloomBooks/BloomDesktop and prebuilt debian/ubuntu packages are available at http://packages.sil.org/ubuntu/ as bloom-desktop or bloom-desktop-beta. After spending a few days looking at this problem, I've reluctantly come to the conclusion that it must be a GNOME Shell bug that I can't work around in our code. It's working fine in Microsoft Windows and all the other Linux window managers that I've tested (Unity, Cinnamon, KDE Plasma, MATE, XFCE, and LXDE).