mirror of
https://github.com/tmux/tmux.git
synced 2024-12-13 01:48:47 +00:00
The mouse valid flag needs to be correct before we fire the dragging
callback, so move the callback outside of server_client_check_mouse and use a new special key code to indicate it.
This commit is contained in:
parent
84319aa8f0
commit
6f8cedb1bc
@ -474,10 +474,9 @@ have_event:
|
||||
case NOTYPE:
|
||||
break;
|
||||
case DRAG:
|
||||
if (c->tty.mouse_drag_update != NULL) {
|
||||
c->tty.mouse_drag_update(c, m);
|
||||
key = KEYC_MOUSE;
|
||||
} else {
|
||||
if (c->tty.mouse_drag_update != NULL)
|
||||
key = KEYC_DRAGGING;
|
||||
else {
|
||||
switch (MOUSE_BUTTONS(b)) {
|
||||
case 0:
|
||||
if (where == PANE)
|
||||
@ -730,6 +729,7 @@ server_client_handle_key(struct client *c, key_code key)
|
||||
}
|
||||
|
||||
/* Check for mouse keys. */
|
||||
m->valid = 0;
|
||||
if (key == KEYC_MOUSE) {
|
||||
if (c->flags & CLIENT_READONLY)
|
||||
return;
|
||||
@ -741,11 +741,13 @@ server_client_handle_key(struct client *c, key_code key)
|
||||
m->key = key;
|
||||
|
||||
/*
|
||||
* A mouse event that continues to be valid but that we do not
|
||||
* want to pass through.
|
||||
* Mouse drag is in progress, so fire the callback (now that
|
||||
* the mouse event is valid).
|
||||
*/
|
||||
if (key == KEYC_MOUSE)
|
||||
if (key == KEYC_DRAGGING) {
|
||||
c->tty.mouse_drag_update(c, m);
|
||||
return;
|
||||
}
|
||||
} else
|
||||
m->valid = 0;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user