bug-gnustep
[Top][All Lists]
Advanced

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

[RFC] Menus in lower left corner, possible patch


From: Willem Rein Oudshoorn
Subject: [RFC] Menus in lower left corner, possible patch
Date: 09 Mar 2003 21:22:59 +0100
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2

Michael Hanni <michael@deviant-behavior.com> writes:

> Just a historical note: when I first worked on the menu code many moons ago I
> used override_redirect windows for the menu windows. I never had this race
> problem back then... Of course, using override_redirect windows caused some
> other problems, I just don't remember what they were... sorry. :-)

I just tested the use of the override_redirect flag.  Problems:

* With WindowMaker, they are present on all desktops.
* Somehow placement is messed after hiding.
* The X ICCCM documentation explicitly states that using the 
  override_redirect flag is NOT a good idea when you are not
  grabbing the cursor at the same time.


After a short time of experimenting I have found a solution.
However the solution is such a hack that I hardly dare proposing
it.  

Solution:
--------
* Just before mapping in a NSBorderLessWindow (**) change
  the window attribute override_redirect to True.

* After receiving the MapNotify event, change the window
  attribute override_redirect to value back to False.


[**] We should restrict this as much as possible, so 
  it is probably better to add an additional style flag
  like GSBypassWMWhenOrderIn or something along these 
  lines.

Note:  It is NOT a good idea to use this approach for
  all windows because this will mess up the normal
  window manager placement behaviour.


I have it implemented and it seems to work nicely.
But it is such a terrible hack that I hope that someone
else can solve it better.  Please?

At the moment I have a terrible time accessing CVS so
I can not really make a nice patch out of this.

Wim Oudshoorn.








reply via email to

[Prev in Thread] Current Thread [Next in Thread]