Bug#512401: general: Java, Tk and Tkinter applications broken in Metacity window manager

Jonathan Nieder jrnieder at gmail.com
Sun May 29 04:20:44 UTC 2011


forcemerge 340725 512401
quit

Hi Miguel,

Miguel Filgueiras wrote:

> Applications implemented in Java, in Tcl/Tk and in Python using Tkinter
> fail to raise their own toplevel windows when working under the Metacity
> window manager.
[...]
> These tests create 3 windows each with two buttons for raising the other
> two using the standard ways: tofront method in Java, raise command in
> Tcl/Tk, tk_raise method in Python+Tkinter. To reproduce the bug, run
> each program under Metacity, move the windows so that they partially
> overlap the others and then try to use the buttons. The Java program 
> only changes the focus, while the other two programs do nothing at all.
> Under other window managers (kwin, sawfish, wmaker, fvwm2) all of them
> work as expected.

This looks like the same bug as <http://bugs.debian.org/340725>, so
I'm merging them optimistically.

The good news is, upstream[1] seems to have a fix:

| Allow explicit raises from same client, not just same app
|
| Here's a patch that takes the approach I proposed. As compared to
| Olivier's patch:
|
|  - It works even for clients that don't set WM_CLIENT_LEADER
|    (WM_CLIENT_LEADER will only be set for apps that support session
|    management.)
|
|  - It affects only this particular check and not all use of
|    meta_window_same_application(); this means that it won't cause
|    regressions for applications that have intentionally split themselves
|    into mutliple separate window groups.
|
|    (For this particular case, we can assume that an application
|    sophisticated enough to intentionally use multiple window groups is
|    either not going to XRaiseWindow(), or is only going to
|    XRaiseWindow() when appropriate; there's no point in trying to keep
|    such an application from stepping on its *own* toes.)

If you find a chance to test the patch, that would be excellent.  Thanks
for reporting it.

Regards,
Jonathan

[1] https://bugzilla.gnome.org/show_bug.cgi?id=567528





More information about the pkg-gnome-maintainers mailing list