ICCCM compliance of GTK...



AHA!

Low-and-behold!

I have discovered the following:
GTK is not ICCCM 2.0 compliant.
infact no WindowManager that GTK works under (that is it can get the
keyboard focus) is icccm 2.0 compliant.

if you read the bit about "WM_PROTOCOLS" and the "WM_TAKE_FOCUS"
property.. you will see that if the WM_TAKE_FOCUS property is set the
client wishes to participate in the input focus setting, so instead of
the WM explicitly setting the focus, it sedns a client message:

   a1=XInternAtom(disp,"WM_TAKE_FOCUS",False);
   a2=XInternAtom(disp,"WM_PROTOCOLS",False);
   ev.type=ClientMessage;ev.window=ewin->client.win;ev.message_type=a2;
   ev.format=32;ev.data.l[0]=a1;ev.data.l[1]=CurrentTime;
   XSendEvent(disp,ewin->client.win,False,0,(XEvent *)&ev);

the WM is nbot required under ICCCM 2.0 to call XSetInputFocus on that
window, but instead message the client like this and have the client
set its own input focus.

GTK does not do this.. :(

Well for the moment enlightnement 0.14 has a small hack to circumvent
this - but it is not ICCCM compliant then.. and i'm hell bent on being
100% ICCCM 2.0 compliant unlike current WM's.

Anyone got any comments?

-- 
--------------- Codito, ergo sum - "I code, therefore I am" --------------------
raster@rasterman.com       /\___ /\ ___/||\___ ____/|/\___  raster@redhat.com
Carsten Haitzler           | _ //__\\ __||_ __\\ ___|| _ /  Red Hat Advanced
218/21 Conner Drive        || // __ \\_ \ | |   \ _/_|| /   Development Labs
Chapel Hill NC 27514 USA   ||\\\/  \//__/ |_|   /___/||\\   919 547 0012 ext 282
+1 (919) 929 9443, 801 4392   For pure Enlightenmenthttp://www.rasterman.com/ 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]