From dd0c8147795c518de443c33895c614e52b42677f Mon Sep 17 00:00:00 2001 From: nicm Date: Wed, 1 Feb 2017 09:55:07 +0000 Subject: Implement "all event" (1003) mouse mode but in a way that works. The main issue is that if we have two panes, A with 1002 and B with 1003, we need to set 1003 outside tmux in order to get all the mouse events, but then we need to suppress the ones that pane A doesn't want. This is easy in SGR mouse mode, because buttons == 3 is only used for movement events (for other events the trailing m/M marks a release instead), but in normal mouse mode we can't tell so easily. So for that, look at the previous event instead - if it is drag+release as well, then the current event is a movement event. --- format.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'format.c') diff --git a/format.c b/format.c index cc23387a..be03932b 100644 --- a/format.c +++ b/format.c @@ -1280,11 +1280,13 @@ format_defaults_pane(struct format_tree *ft, struct window_pane *wp) !!(wp->base.mode & MODE_WRAP)); format_add(ft, "mouse_any_flag", "%d", - !!(wp->base.mode & (MODE_MOUSE_STANDARD|MODE_MOUSE_BUTTON))); + !!(wp->base.mode & ALL_MOUSE_MODES)); format_add(ft, "mouse_standard_flag", "%d", !!(wp->base.mode & MODE_MOUSE_STANDARD)); format_add(ft, "mouse_button_flag", "%d", !!(wp->base.mode & MODE_MOUSE_BUTTON)); + format_add(ft, "mouse_all_flag", "%d", + !!(wp->base.mode & MODE_MOUSE_ALL)); format_add_cb(ft, "pane_tabs", format_cb_pane_tabs); } -- cgit