mirror of
https://github.com/kovidgoyal/kitty
synced 2026-06-08 14:18:26 +02:00
Support more mouse buttons for terminal mouse events
Previously, the mouse back and forward buttons sent the same codes as scroll up and down. Now they instead send the same codes as xterm. Mouse button 10 (in X11 numbering) also now sends the same as xterm, instead of not sending anything. This also changes the `send_mouse_event` function which can be called from kittens to use X11 numbering for mouse buttons instead of what it previously used, which turns out to be a hybrid of X11 and GLFW. It was documented to use GLFW numbering, but GLFW doesn't have numbers for scroll events (that's separate events with x/y offsets) and 4 and 5 in GLFW is actually back and forward, while `send_mouse_event` interpreted it as scroll up and down. That means that this is a breaking change for `send_mouse_event` because it swaps the number for the middle and right button to be consistent with X11. I did this because I think it's better to use one consistent numbering scheme for the function, and because people probably know X11 numbering better than GLFW numbering and GLFW doesn't have numbers for the scroll buttons.
This commit is contained in:
@@ -142,12 +142,13 @@ those using::
|
||||
send_mouse_event(screen, x, y, button, action, mods)
|
||||
|
||||
``screen`` is the ``screen`` attribute of the window you want to send the event
|
||||
to. ``x`` and ``y`` are the 0-indexed coordinates. ``button`` is
|
||||
``GLFW_MOUSE_BUTTON_{button}`` where ``{button}`` is one of ``LEFT``,
|
||||
``RIGHT``, ``MIDDLE`` or a digit from ``1`` to ``8``. ``action`` is one of
|
||||
``PRESS``, ``RELEASE``, ``DRAG`` or ``MOVE``. ``mods`` is a bitmask of
|
||||
``GLFW_MOD_{mod}`` where ``{mod}`` is one of ``SHIFT``, ``CONTROL`` or ``ALT``.
|
||||
All the mentioned constants are imported from ``kitty.fast_data_types``.
|
||||
to. ``x`` and ``y`` are the 0-indexed coordinates. ``button`` is a number using
|
||||
the same numbering as X11 (left: ``1``, middle: ``2``, right: ``3``, scroll up:
|
||||
``4``, scroll down: ``5``, scroll left: ``6``, scroll right: ``7``, back:
|
||||
``8``, forward: ``9``). ``action`` is one of ``PRESS``, ``RELEASE``, ``DRAG``
|
||||
or ``MOVE``. ``mods`` is a bitmask of ``GLFW_MOD_{mod}`` where ``{mod}`` is one
|
||||
of ``SHIFT``, ``CONTROL`` or ``ALT``. All the mentioned constants are imported
|
||||
from ``kitty.fast_data_types``.
|
||||
|
||||
For example, to send a left click at position x: 2, y: 3 to the active window::
|
||||
|
||||
|
||||
Reference in New Issue
Block a user