mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-05 04:06:08 -05:00
input: rework mouse button/motion handling
Store a list of currently pressed buttons, and which surface they belong to (i.e. which surface that received the press). Then, in motion events (with a button pressed, aka drag operations), send the event to the “original” surface (that received the press). Also send release events to the originating surface. This means a surface receiving a press will always receive a corresponding release. And no one will receive a release event without a corresponding press event. Motion events with a button pressed will *always* use the *first* button that was pressed. I.e. if you press a button, start dragging, and then press another button, we keep generating motion events for the *first* button.
This commit is contained in:
parent
a1a0b489ee
commit
ff96ce1e91
4 changed files with 145 additions and 115 deletions
|
|
@ -634,6 +634,8 @@ selection_finalize(struct seat *seat, struct terminal *term, uint32_t serial)
|
|||
if (!term->selection.ongoing)
|
||||
return;
|
||||
|
||||
LOG_DBG("selection finalize");
|
||||
|
||||
selection_stop_scroll_timer(term);
|
||||
term->selection.ongoing = false;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue