mirror of
https://github.com/tmux/tmux.git
synced 2024-12-12 17:38:48 +00:00
Tweak how mouse works on popup: only Meta alone resizes or moves, not
Meta with other modifiers; button 2 on the left or top border opens menu, right or bottom resizes; button 1 on any border moves.
This commit is contained in:
parent
63aa968642
commit
7d7d7c9605
27
popup.c
27
popup.c
@ -442,6 +442,7 @@ popup_key_cb(struct client *c, void *data, struct key_event *event)
|
||||
const char *buf;
|
||||
size_t len;
|
||||
u_int px, py, x;
|
||||
enum { NONE, LEFT, RIGHT, TOP, BOTTOM } border = NONE;
|
||||
|
||||
if (pd->md != NULL) {
|
||||
if (menu_key_cb(c, pd->md, event) == 1) {
|
||||
@ -468,20 +469,22 @@ popup_key_cb(struct client *c, void *data, struct key_event *event)
|
||||
goto menu;
|
||||
return (0);
|
||||
}
|
||||
if ((~pd->flags & POPUP_NOBORDER) &&
|
||||
(~m->b & MOUSE_MASK_META) &&
|
||||
if (~pd->flags & POPUP_NOBORDER) {
|
||||
if (m->x == pd->px)
|
||||
border = LEFT;
|
||||
else if (m->x == pd->px + pd->sx - 1)
|
||||
border = RIGHT;
|
||||
else if (m->y == pd->py)
|
||||
border = TOP;
|
||||
else if (m->y == pd->py + pd->sy - 1)
|
||||
border = BOTTOM;
|
||||
}
|
||||
if ((m->b & MOUSE_MASK_MODIFIERS) == 0 &&
|
||||
MOUSE_BUTTONS(m->b) == 2 &&
|
||||
(m->x == pd->px ||
|
||||
m->x == pd->px + pd->sx - 1 ||
|
||||
m->y == pd->py ||
|
||||
m->y == pd->py + pd->sy - 1))
|
||||
(border == LEFT || border == TOP))
|
||||
goto menu;
|
||||
if ((m->b & MOUSE_MASK_META) ||
|
||||
((~pd->flags & POPUP_NOBORDER) &&
|
||||
(m->x == pd->px ||
|
||||
m->x == pd->px + pd->sx - 1 ||
|
||||
m->y == pd->py ||
|
||||
m->y == pd->py + pd->sy - 1))) {
|
||||
if (((m->b & MOUSE_MASK_MODIFIERS) == MOUSE_MASK_META) ||
|
||||
border != NONE) {
|
||||
if (!MOUSE_DRAG(m->b))
|
||||
goto out;
|
||||
if (MOUSE_BUTTONS(m->lb) == 0)
|
||||
|
Loading…
Reference in New Issue
Block a user