On 28 Dec 2003 23:30:41 +0100, Gert Brinkmann wrote:
> 
> while trying to write a resize-function that behaves like the 
> ALT+Mouse3-Resizing(*) in other WMs, I have a problem: How can the 
> Mouse-Pointer be stored and later be recalled? I am trying it like... 
> (see below). Result: The mouse pointer is not moved after resizing. Does 
> anybody has an idea how to solve this?
> 
> 
> (*) How it should work: Press ALT and Mouse3-Button => Resize the window 
> at the corner of the window that is nearest to the mouse pointer. After 
> this resize operation the mouse pointer should be placed where it has 
> been before starting the resize operation. (It would be optimal if this 
> initial position would be modified by the value you have moved the mouse 
> while resizing.)
> 
> ----------------------------------------------
> DestroyFunc MyResize
> AddToFunc MyResize
> + M StoreMousePos
> + M WarpToNearestEdge
> + M Resize
> + M RecallMousePos
> 
> DestroyFunc StoreMousePos
> AddToFunc StoreMousePos
> + M SetEnv POINTERX $[pointer.wx]
> + M SetEnv POINTERY $[pointer.wy]
> 
> DestroyFunc RecallMousePos
> AddToFunc RecallMousePos
> + M WarpToWindow $[POINTERX] $[POINTERY]
> 
> DestroyFunc WarpToNearestEdge
> AddToFunc WarpToNearestEdge
> + M WarpToWindow 100 100
> ----------------------------------------------

You overuse the "M" specifier, such functions are not reusable and this
is usually not what you want.

I would say any complex function should normally have only one "M",
like in this sample:

  DestroyFunc MyResizeDispatcher
  AddToFunc   MyResizeDispatcher
  + C MyResize0
  + M MyResize
  + H MyResize
  + D MyResize2

The rest of the configuration is your whole example above with all 8 "M"
replaced with "I". Then it works. Just don't forget "p" here:

  WarpToWindow $[POINTERX]p $[POINTERY]p

Regards,
Mikhael.
--
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 [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]

Reply via email to