aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2020-04-07 16:01:29 +0100
committerThomas Adam <thomas@xteddy.org>2020-04-07 16:01:29 +0100
commit6a2f32b4fdb5bdea21594f1305b4c96e9e1bf46d (patch)
treebe3b0e9dd882ab21414cb79992e41ca6f1bc521e
parent8fa0b0cd2677efbabc259db09ae736febe301272 (diff)
parent1c8f7c1f7afcc7d2a9fcef8d38e6c0e4451da659 (diff)
downloadrtmux-6a2f32b4fdb5bdea21594f1305b4c96e9e1bf46d.tar.gz
rtmux-6a2f32b4fdb5bdea21594f1305b4c96e9e1bf46d.tar.bz2
rtmux-6a2f32b4fdb5bdea21594f1305b4c96e9e1bf46d.zip
Merge branch 'obsd-master'
-rw-r--r--input-keys.c2
-rw-r--r--popup.c4
-rw-r--r--screen.c4
-rw-r--r--tmux.h1
4 files changed, 8 insertions, 3 deletions
diff --git a/input-keys.c b/input-keys.c
index fa578912..04ecb264 100644
--- a/input-keys.c
+++ b/input-keys.c
@@ -270,6 +270,8 @@ input_key_get_mouse(struct screen *s, struct mouse_event *m, u_int x, u_int y,
/* If this pane is not in button or all mode, discard motion events. */
if (MOUSE_DRAG(m->b) && (s->mode & MOTION_MOUSE_MODES) == 0)
return (0);
+ if ((s->mode & ALL_MOUSE_MODES) == 0)
+ return (0);
/*
* If this event is a release event and not in all mode, discard it.
diff --git a/popup.c b/popup.c
index 299d4e76..d23c2001 100644
--- a/popup.c
+++ b/popup.c
@@ -200,9 +200,9 @@ popup_handle_drag(struct client *c, struct popup_data *pd,
pd->dy = m->y - pd->py;
server_redraw_client(c);
} else if (pd->dragging == SIZE) {
- if (m->x < pd->px + 2)
+ if (m->x < pd->px + 3)
return;
- if (m->y < pd->py + 2)
+ if (m->y < pd->py + 3)
return;
pd->sx = m->x - pd->px;
pd->sy = m->y - pd->py;
diff --git a/screen.c b/screen.c
index a3cd5501..1f2f04b4 100644
--- a/screen.c
+++ b/screen.c
@@ -535,6 +535,7 @@ screen_alternate_on(struct screen *s, struct grid_cell *gc, int cursor)
grid_view_clear(s->grid, 0, 0, sx, sy, 8);
+ s->saved_flags = s->grid->flags;
s->grid->flags &= ~GRID_HISTORY;
}
@@ -578,7 +579,8 @@ screen_alternate_off(struct screen *s, struct grid_cell *gc, int cursor)
* Turn history back on (so resize can use it) and then resize back to
* the current size.
*/
- s->grid->flags |= GRID_HISTORY;
+ if (s->saved_flags & GRID_HISTORY)
+ s->grid->flags |= GRID_HISTORY;
if (sy > s->saved_grid->sy || sx != s->saved_grid->sx)
screen_resize(s, sx, sy, 1);
diff --git a/tmux.h b/tmux.h
index 0dd480cf..bce4f472 100644
--- a/tmux.h
+++ b/tmux.h
@@ -763,6 +763,7 @@ struct screen {
u_int saved_cy;
struct grid *saved_grid;
struct grid_cell saved_cell;
+ int saved_flags;
bitstr_t *tabs;
struct screen_sel *sel;