On Thu, Sep 19, 2002 at 08:47:50AM +0200, Olivier Chapuis wrote:
> On Tue, Sep 17, 2002 at 05:16:16PM +0200, Dominik Vogt wrote:
> > On Tue, Sep 17, 2002 at 03:56:27PM +0200, Olivier Chapuis wrote:
> > > Hello,
> > > 
> > > I am not sure that the following problem is new, but I've just not
> > > it (I am currently work on "clipping" the menu drawing). If the popdown
> > > menu delay is very small, for example with
> > > 
> > > MenuStyle * PopdownImmediately [,PopupOffSet 0 50, PopupDelayed, 
> > > PopupDelay 500]
> > > 
> > > then sometimes menus do not refresh correctly when one of its submenu
> > > pop down. It seems to me that the Expose event that should generate
> > > fvwm (or the server) when a menu pop down is not generated or taken in
> > > account.
> > 
> > Pending Expose events are eaten up in some places.  Try disabling
> > the flush_expose() and flush_accumulate_expose() calls in menus.c.
> >
> 
> flush_expose() and flush_accumulate_expose() seems ok in menu (each
> time there are called the menu is repaint accordingly). dispatch_event()
> is ok too. I do not know where the popdown Expose event is lost.
> It seems that there is a kind of race  condition somewhere.
> If the popup delay <= popdown delay the pbs never happen.
> 
> At present time, I've a very simple fix: just XSync after pop_down
> in pop_menu_down_and_repaint_parent if there is a parent and
> !*fSubmenuOverlaps (BTW, it seems that *fSubmenuOverlaps is always
> False, but when it is initialized ... fixed here).
> 
> I imagine that this is not the good fix??

No.  The problem is that the fSubmenuOverlaps flag is not set.
pop_menu_down_and_repaint_parent() can't do its job properly
without that flag.  The recent cleanup in the menu code must have
screwed up that flag setting.

Bye

Dominik ^_^  ^_^

 --
Dominik Vogt, mail: [EMAIL PROTECTED], phone: 0721/91374-382
Schlund + Partner AG, Erbprinzenstr. 4-12, D-76133 Karlsruhe
--
Visit the official FVWM web page at <URL:http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]

Reply via email to