[Xquartz-dev] expose partial fix
Jeremy Huddleston
jeremyhu at berkeley.edu
Sun Jan 6 02:00:41 PST 2008
So, the following diff allows us to enter X11 from another application
using expose. We are still limited to just the first X11 window,
however... but I believe this solves the "from another application"
half of that issue.
I haven't committed the change because I'd like some feedback from
someone who actually understands Quartz a bit more than me. I don't
understand how SetFrontProcess, X11ApplicationSetFrontProcess, etc all
inter-relate... from what I'd guess, SetFrontProcess(&psn) causes an
event to be placed in the event queue for the process associated with
that psn. Thus this bit of code really scares me because it's just
begging to become an infinite loop at some point perhaps when we fix
the argv[0] workaround.
Also, is this really a side-effect of our argv[0] trickery as I
suspect it is or does this change just fix the symptom with a quick-
fix and actually help reveal where the real problem is?
--Jeremy
@@ -714,6 +715,10 @@ void X11ApplicationSetWindowMenuCheck (int idx) {
void X11ApplicationSetFrontProcess (void) {
message_kit_thread (@selector (set_front_process:), nil);
+
+ /* Hackery needed due to argv[0] hackery */
+ ProcessSerialNumber psn = { 0, kCurrentProcess };
+ SetFrontProcess(&psn);
}
void X11ApplicationSetCanQuit (int state) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3040 bytes
Desc: not available
Url : http://lists.macosforge.org/pipermail/xquartz-dev/attachments/20080106/9a0feec8/smime-0001.bin
More information about the Xquartz-dev
mailing list