Single events selected by multiple masks

The motion_notify event is selected by a number of masks, including the motion_hint mask 1.

In ProXL they are separated into two different specifications, which are mutually exclusive.

Motion Notify Event. In this case, the server will steadily generate motion_notify events while the mouse is moving, or the program warps it, but only if the motion of the pointer begins and ends in the same window. The number of events generated can easily overwhelm your application, if it has to do any significant amount of computation for each one.

If specified without options, the events will be generated independently of the state of the mouse buttons:

     motion_notify
     

To specify mouse movements only while any of a particular set of mouse buttons are pressed, use:

     motion_notify(+ButtonList)
     

Where ButtonList is a list that can contain the integers 1 to 5. As a special case, the empty list degenerates into the first specification.

Motion Notify Hint Event. In this case, the server will generate only one motion_notify event to let your application know that the mouse pointer moved. You have to explicitly query the pointer using get_pointer_attributes to find out where the mouse pointer ended up.

If specified without options, the event will be generated independently of the state of the mouse buttons:

     motion_notify_hint
     

To specify mouse movement only while any of a particular set of mouse buttons are pressed, use:

     motion_notify_hint(+ButtonList)
     

Where ButtonList is a list that can contain the integers 1 to 5. As a special case, the empty list degenerates into the first specification.


Footnotes

  1. Specifies that the user is only interested in knowing when there has been a movement, but does not need to know the complete path of the mouse pointer