Subject: module synchronization?

From: Dominik Vogt <[email-masked]>
Date: Fri, 12 Nov 1999 17:16:33 +0100

Since I coded the '*FvwmPagerSloppyFocus' option I find myself
usding this primarily to switch pages (pointing in the pager
sets focus just like SloppyFocus). Unforunately there is a
extremely annoying race condition with fvwm:

  1) I start on page x, move the pointer over a window in
     the pager (on page y) and click button 1 to switch
     pages.
  2) Out of habit I move the pointer towards where the
     window will appear. Unfortunately there is another window
     in between (in the pager), i.e. to move the pointer out
     of the pager I have to pass over another mini-window in
     the pager.
  3) fvwm switches the page, the pointer ends up in the window
     where I wanted it, but the other window the pointer passed
     over has the focus.

This is easy to explain:

  When I click on the window, fvwm is busy for a few moments
  because it has to unmap/map windows (rxvts with xpm background
  make it even worse). Then, before fvwm has switched the page,
  the pager sends another 'Focus' command for the window the
  pointer passed over. Fvwm finishes switching the page. At this
  moment there is an 'EnterNotify' on the X queue and a 'Focus'
  command in the module pipe. Fvwm handles the event first, then
  the 'Focus' command - and the focus ends up in the wrong window.

  How could we prevent this? Perhaps the pager could ignore
  'EnterNotify' events on its subwindows until fvwm has finished
  switching pages. But then fvwm might have already put new
  messages in the module pipe. Any ideas?

Bye

Dominik ^_^

-- 
Dominik Vogt, Agilent Technologies, Dept. BVS
Herrenberger Str.130, 71034 Boeblingen, Germany
phone: 07031/464-4596, fax: 07031/464-3883, [email-masked]
--
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-masked].
To report problems, send mail to [email-masked]

---

From: Mikhael Goikhman <[email-masked]>
Date: Sat, 13 Nov 1999 01:49:04 +0200

>   messages in the module pipe. Any ideas?

Maybe instead of this, just to implement a new mouse action in a pager
(like double clicking on a window), which switches to that window,
focuses it and moves a pointer to it.

Should this action also raise the window? I think it just may be a
configurable function. If already, how about a mapping of any mouse/key
in a pager to any fvwm command? This can be not easy, sometimes the same
key action should be in a window context, sometimes - in a page/desk
context (see the current mouse key 2) and we have no if's in functions.

Regards,
Mikhael.

---

From: Dominik Vogt <[email-masked]>
Date: Sun, 14 Nov 1999 03:55:24 +0100

> context (see the current mouse key 2) and we have no if's in functions.

Although having definable actions bound to the pager buttons
would be great (it's already on the enhancements list in
Jitterbug), this won't help with my problem. I don't want
that the pager warps the cursor. The problem is that I do
something that might as well be an intentional user action.
I guess this will trigger some bug reports in the future.

Bye

Dominik ^_^

--
Dominik Vogt, [email-masked]
Reply-To: [email-masked]
--
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-masked].
To report problems, send mail to [email-masked]

---

From: Tim Phipps <[email-masked]>
Date: Thu, 18 Nov 1999 15:26:16 +0000

>   messages in the module pipe. Any ideas?

Maybe once FvwmPager has sent the first focus command the
*FvwmPagerSloppyFocus should be turned off until the M_FOCUS message
comes back from fvwm that matches the window id. The the sloppyfocus
behaviour could be turned on again.

Cheers,
Tim.