button_press and button_release Events

The fields that can be unified in button_press and button_release events are:

  1. type(T) unifies T with either, button_press or button_release, depending on the event.
  2. serial(S) unifies S with the serial number of the last request processed by the server.
  3. send_event(B) unifies B, a boolean value, with one of:

    true
    If the event was sent by another client.
    false
    If the event was sent by the server.
  4. display(D) unifies D with the ProXL Display the event was read from.
  5. window(W) unifies W with the ProXL Window that the event is reported to.
  6. root(R) unifies R with the root ProXL Window that the event occurred under.
  7. subwindow(S) unifies S with the child ProXL window where the event occurred or noneIf the event occurred in the window itself.
  8. time(T) unifies T with the server time, in milliseconds, when the event occurred.
  9. x(X) unifies X with the x pointer coordinate, relative to the window origin.
  10. y(Y) unifies Y with the y pointer coordinate, relative to the window origin.
  11. position(X, Y) unifies X and Y with the pointer x and y coordinates, respectively, relative to the window origin.
  12. x_root(X) unifies X with the x coordinate, relative to the root window origin.
  13. y_root(Y) unifies Y with the y coordinate, relative to the root window origin.
  14. root_position(X, Y) unifies X and Y with the x and y coordinates, respectively, relative to the root window origin.
  15. state(Buttons, Modifiers) unifies Buttons with a term of the form:
              
              buttons(B1, B2, B3, B4, B5)
              

    where each argument of the term is unified with the state of the corresponding pointer button just before the event, and has the value up or down.

    Unifies Modifiers with a term of the form:

              
              modifiers(Shift, Control, Lock,
                        Mod1, Mod2, Mod3, Mod4, Mod5)
              

    where each argument of the term is unified with the state of the corresponding modifier key just before the event, and has the value up or down.

  16. button(B) unifies B with an integer between 1 and 5 corresponding to the button that changed state.
  17. same_screen(B) unifies B, a boolean value, with one of

    true
    If the mouse pointer is currently on the same screen as the window receiving the event.
    false
    If the mouse pointer was actively grabbed by a client, before the automatic grab could take place.