Re: Does apple monitor? & Aqua windows known to X11?
Re: Does apple monitor? & Aqua windows known to X11?
- Subject: Re: Does apple monitor? & Aqua windows known to X11?
- From: Adrian Umpleby <email@hidden>
- Date: Thu, 1 May 2003 10:38:05 +0100
Hi all,
Thought it was about time I actually said something useful on this
list... :-)
Hi! Does X11 have ANY idea at all in any way that aqua windows are on
screen?
Sort of...
If so, does anyone know anything about it?
Apple's X11 (from v0.2) knows when the cursor is over a non-X11 window -
it then stops the X11 cursor position from changing.
This has a major benefit (which is what the developers had in mind) and
a somewhat niggling downside (which is what they 'missed').
The benefit is that the X11 cursor never thinks it is over parts of an
X11 window that are obscured by a non-X11 window, which means, for
example, it generally does not produce pop-up-tooltip-type windows when
it shouldn't, or that roll-over controls do not 'light up' when over a
non-X11 window. Most importantly, however, it means that the window
manager can correctly implement focus-follows-mouse when X11 windows are
'interleaved' with non-X11 windows (otherwise X11 windows would get
focus when over parts of it that are obscured behind non-X11 windows).
The niggling downside is that the X11 cursor appears to get 'stuck' at
the boundary of a non-X11 window, meaning that any pop-up-tooltip-type
window that appeared just before the cursor entered the non-X11 window
will remain visible until the cursor is no longer over a non-X11 window,
for example, or that xeyes will appear not to track the cursor
correctly, etc.
The first version (0.1) of Apple's X11 did not behave in this way, so it
would not be possible to use focus-follows-mouse alongside interleaved
windows.
If not, does anyone know how to go about implementing it?
It would require a complete rewrite of the X server tracking mechanism
(i.e. its enter/leave events) to work via tracking rects (probably at a
CoreGraphics level for Apple's X11, but via NSView-type tracking rects
for XDarwin) - a MAJOR piece of work! (But one I advocate as very
useful...)
I used a 'minor' version of this NSView-based tracking-rect idea in
OroborOSX (i.e. its hacked XDarwin) to get focus-follows-mouse to work
with interleaved windows. But that was all it was used for - the window
manager would actually use the tracking rect events in preference to the
normal X11 enter/leave events to figure out which X11 window to focus,
but the X11 cursor would still track 'behind' non-X11 windows (producing
spurious pop-up-tooltips etc.)
I'm thinking that a only a very small amount of information would be
needed to make X11 aware of Aqua windows.
Provding the information is one thing; replacing all the standard X11
tracking mechanism is another...
Just the dimensions would really suffice
Strictly speaking, that's not quite enough... 'shaped' windows would
cause trouble here (i.e. if they have regions that are transparent).
Anyway, information about another app's windows is not 'officially'
available to an app (though there must be some private WindowServer APIs
that can do it - after all, Quartz Debug manages it...) Using tracking
rects would get around this, and you would only need to know about your
own windows (the tracking rect events supply everything you need to
know).
Also, the KDE menu in kicker stays open if i click away into an aqua
window, because X11 didn't see the click.
This is to do with X11 pointer-grabbing. When you click into a non-X11
windows, the X server does not see the click, so the pointer is never
'ungrabbed'.
(OroborOSX v0.8.5 does attempt to work around this by trying to ungrab
when another app comes in front.)
Little things like that would go a long way to making X11 more
seamlessly integrated with aqua.
You are correct - there are a number of 'little things like that' which
would be nice to see fixed in Apple's X11 (some of which I had fixed
with OroborOSX, some of which are more difficult...)
Also, does apple monitor this list?!? Will any apple employee ever read
this?
Apple's X11 developers are fairly active on this list - check the
archives.
or is there somewhere that I can send a bug report/feature request to?
I looked on the site, but found nothing.
There is a site for bug reports and suggestions - see the bottom of
every post to this list...
Bye!
Adrian
_______________________________________________
x11-users mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/x11-users
X11 for Mac OS X FAQ: http://developer.apple.com/qa/qa2001/qa1232.html
Report issues, request features, feedback: http://developer.apple.com/bugreporter
Do not post admin requests to the list. They will be ignored.