Re: FVWM: Mouse Action behavior inconsistent with manual

From: Dominik Vogt <dominik.vogt_at_gmx.de>
Date: Thu, 5 Aug 2004 03:12:52 +0200

On Wed, Aug 04, 2004 at 03:21:53PM -0700, Tommy C. Li wrote:
> Hello,
>
> It's my perception that the mouse-triggered actions behave
> inconsistently with what the manual says.
>
> Specifically, actions don't seem to be triggered until a click is
> completed - not on mouse-down - which is what is suggested by the manual.
>
> Take for example this quote from the fvwm man page:
>
> "The name must not contain embedded whitespace. No guarantees are made
> whether function names with embedded whitespace work or not. This
> behavior may also change in the future without further notice. The
> letter before the action tells what kind of action triggers the command
> which follows it. 'I' stands for "Immediate", and is executed as soon as
> the function is invoked. 'M' stands for "Motion", i.e. if the user
> starts moving the mouse. 'C' stands for "Click", i.e., if the user
> presses and releases the mouse. 'H' stands for "Hold", i.e. if the user
> presses a mouse button and holds it down for more than ClickTime
> milliseconds. 'D' stands for "Double-click". The action 'I' causes an
> action to be performed on the button-press, if the function is invoked
> with prior knowledge of which window to act on."
 
> This suggests that "Immediate" commands are executed on mouse-down,
> while "Click" type is for press-and-release.

And it is exactly what fvwm does. With

  AddToFunc immediate I echo immediate
  mouse 3 r n function immediate

the "echo immediate" is executed as soon the button is pressed,
and with

  AddToFunc click C echo click
  mouse 3 r n function click

There are a couple of exception, though:

 - If an application is started that tries to grab control of the
   pointer, it will succeed only after the function is completed.
 - Commands that change the window focus do change the foucs
   immediately, but the window decorations are redrawn only after
   the function completes. Fvwm tracks the focused window by the
   corresponding X event, and events are not handled during
   function execution. Hence the delay.
 - To suppress excessive redrawing, changes in window styles are
   activated only after the function completes and fvwm is idle
   (i.e. not receiving events or module input).
 - If a command needs a window to operate on, and no window has
   been selected yet, you have to release the button first and
   then click on a window.

Note that the function itself only completes when the last mouse
button is released.

> I've noticed that Immediate commands are only exceuted after release or
> I press and move the pointer a bit. This is certainly not "Immediate" -
> and there is a definite need for commands to be executed on mousedown.
>
> In fact, for all mouse-bindings, actions are excuted on
> click-and-release instead of mousedown. Key binding actions are executed
> on mouse-down.

> And also - there is this entry in the FvwmButtons manpage:
>
> "ActionOnPress
> ~~ Usually the action is executed on the button release except for the
> Popup action. This option changes this behavior, the action is executed
> on the button press. This may be good, for example, with Menu or
> SendToModule that generates popups, or when Frame is 0 and the button
> would look unresponsive otherwise."

Works as advertised for me.

> This suggests that popup actions are executed on mousedown. This is not
> the case with buttons. They behave like "Immediate" commands - executing
> only on mousedown+movement or mousedown+release.
>
> If I add ActionOnPress, actions behave like "Immediate" commands again -
> that is - not immediately!
>
> Incidentally, popup menus only behave correctly in keybindings and
> mousebindings on the Root Desktop.
>
> Can anyone shed some light on this issue? It's a major annoyance.

Is there any chance your mouse or your X server is broken? When
fvwm receives a ButtonPress event it acts immediately.

Ciao

Dominik ^_^ ^_^

 --
Dominik Vogt, dominik.vogt_at_gmx.de
Reply-To: dominik.vogt_at_gmx.de


--
Visit the official FVWM web page at <URL: http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm" in the body of a
message to majordomo_at_fvwm.org.
To report problems, send mail to fvwm-owner_at_fvwm.org.
Received on Thu Aug 05 2004 - 03:36:44 BST

This archive was generated by hypermail 2.3.0 : Mon Aug 29 2016 - 19:37:57 BST