override-redirect issues in Xquartz
Jeremy Huddleston
jeremyhu at freedesktop.org
Thu Oct 16 14:13:44 PDT 2008
We're having some difficulty with menus in some applications like
nedit and xemacs. I believe these menus are windows with override-
redirect set on them per section 4.1.10 (popup windows) of ICCCM:
http://tronche.com/gui/x/icccm/sec-4.html#s-4.1.10
"""
If the window will be visible for a very short time and should not be
decorated at all, the client can set override-redirect on the window.
In general, this should be done only if the pointer is grabbed while
the window is mapped. The window manager will never interfere with
these windows, which should be used with caution. An example of an
appropriate use is a pop-up menu.
"""
The problem is that windows following this route don't get handled by
our WM and don't get their native windows parented properly by quartz-
wm. When a window sets WM_TRANSIENT_FOR, we set its native window as
a child to its parent's native window so the menu "belongs to" and
"moves with" the parent. This works fine for nedit's Open dialog for
example. Menus that don't set WM_TRANSIENT_FOR and follow this
override-redirect approach don't get parented properly and cause
problems (like the menu appearing in the wrong Space [virtual desktop]
because that's the Space it was last rendered in and thus the native
window bound to).
We need a way to bind the native window for this menu to the native
window for its parent. Currently it is just bound to the Space in
which it is first rendered... so does anyone have some suggestions for
the least invasive way to go about this? Doing some quick
investigation with xwininfo on the window, I see no wm hints, and it's
parent window id is the root window... so... yick.
Any thoughts?
xwininfo: Window id: 0x800044 (has no name)
Absolute upper-left X: 4
Absolute upper-left Y: 67
Relative upper-left X: 4
Relative upper-left Y: 67
Width: 202
Height: 418
Depth: 24
Visual Class: TrueColor
Border width: 0
Class: InputOutput
Colormap: 0x21 (installed)
Bit Gravity State: NorthWestGravity
Window Gravity State: NorthWestGravity
Backing Store State: NotUseful
Save Under State: yes
Map State: IsViewable
Override Redirect State: yes
Corners: +4+67 -3154+67 -3154-715 +4-715
-geometry 202x418+4+67
xwininfo: Window id: 0x800044 (has no name)
No window manager hints defined
xwininfo: Window id: 0x800044 (has no name)
Root window id: 0xbf (the root window) (has no name)
Parent window id: 0xbf (the root window) (has no name)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3040 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg/attachments/20081016/563efef5/attachment.bin>
More information about the xorg
mailing list