diff options
author | nicm <nicm> | 2019-05-03 16:51:29 +0000 |
---|---|---|
committer | nicm <nicm> | 2019-05-03 16:51:29 +0000 |
commit | fc3d85e34bf323762ac000b44bfd4a6b33aad37c (patch) | |
tree | 8276d8c86d81f35e13196fdae560b30c805c83dd | |
parent | cf6075fb29fcd86f11a1f2cc6e906c62f39d4032 (diff) | |
download | rtmux-fc3d85e34bf323762ac000b44bfd4a6b33aad37c.tar.gz rtmux-fc3d85e34bf323762ac000b44bfd4a6b33aad37c.tar.bz2 rtmux-fc3d85e34bf323762ac000b44bfd4a6b33aad37c.zip |
Fix mouse positioning when the pane is not entirely visible.
-rw-r--r-- | cmd-resize-pane.c | 2 | ||||
-rw-r--r-- | cmd.c | 7 | ||||
-rw-r--r-- | server-client.c | 2 |
3 files changed, 5 insertions, 6 deletions
diff --git a/cmd-resize-pane.c b/cmd-resize-pane.c index 31474f3f..410a6257 100644 --- a/cmd-resize-pane.c +++ b/cmd-resize-pane.c @@ -148,7 +148,7 @@ cmd_resize_pane_mouse_update(struct client *c, struct mouse_event *m) y--; else if (m->statusat > 0 && y >= (u_int)m->statusat) y = m->statusat - 1; - ly = m->ly; lx = m->lx; + ly = m->ly + m->oy; lx = m->lx + m->ox; if (m->statusat == 0 && ly > 0) ly--; else if (m->statusat > 0 && ly >= (u_int)m->statusat) @@ -481,17 +481,16 @@ cmd_mouse_at(struct window_pane *wp, struct mouse_event *m, u_int *xp, u_int x, y; if (last) { - x = m->lx; - y = m->ly; + x = m->lx + m->ox; + y = m->ly + m->oy; } else { x = m->x; y = m->y; } + log_debug("%s: x=%u, y=%u%s", __func__, x, y, last ? " (last)" : ""); if (m->statusat == 0 && y > 0) y--; - else if (m->statusat > 0 && y >= (u_int)m->statusat) - y = m->statusat - 1; if (x < wp->xoff || x >= wp->xoff + wp->sx) return (-1); diff --git a/server-client.c b/server-client.c index a3d6aebf..f25e372e 100644 --- a/server-client.c +++ b/server-client.c @@ -450,7 +450,7 @@ server_client_check_mouse(struct client *c, struct key_event *event) x = m->x, y = m->y, b = m->b; log_debug("drag update at %u,%u", x, y); } else { - x = m->lx - m->ox, y = m->ly - m->oy, b = m->lb; + x = m->lx, y = m->ly, b = m->lb; log_debug("drag start at %u,%u", x, y); } } else if (MOUSE_WHEEL(m->b)) { |