diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 25851a610..b5250d1d6 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -37,6 +37,10 @@ version 0.9.0 [future] hints kitten. Fixes launching on some systems where xdg-open doesn't like being run from a kitten. +- Allow using rectangle select mode by pressing shift in addition to the + rectangle select modifiers even when the terminal program has grabbed the + mouse. + version 0.8.4 [2018-03-31] ----------------------------- diff --git a/kitty/mouse.c b/kitty/mouse.c index b9529ee79..1dc0c9cb7 100644 --- a/kitty/mouse.c +++ b/kitty/mouse.c @@ -147,7 +147,7 @@ update_drag(bool from_button, Window *w, bool is_release, int modifiers) { Screen *screen = w->render_data.screen; if (from_button) { if (is_release) screen_update_selection(screen, w->mouse_cell_x, w->mouse_cell_y, true); - else screen_start_selection(screen, w->mouse_cell_x, w->mouse_cell_y, modifiers == (int)OPT(rectangle_select_modifiers), EXTEND_CELL); + else screen_start_selection(screen, w->mouse_cell_x, w->mouse_cell_y, modifiers == (int)OPT(rectangle_select_modifiers) || modifiers == ((int)OPT(rectangle_select_modifiers) | GLFW_MOD_SHIFT), EXTEND_CELL); } else if (screen->selection.in_progress) { screen_update_selection(screen, w->mouse_cell_x, w->mouse_cell_y, false); } @@ -311,7 +311,7 @@ HANDLER(handle_button_event) { Screen *screen = w->render_data.screen; if (!screen) return; bool handle_in_kitty = ( - modifiers == GLFW_MOD_SHIFT || + modifiers == GLFW_MOD_SHIFT || modifiers == ((int)OPT(rectangle_select_modifiers) | GLFW_MOD_SHIFT) || screen->modes.mouse_tracking_mode == 0 || button == GLFW_MOUSE_BUTTON_MIDDLE || (modifiers == (int)OPT(open_url_modifiers) && button == GLFW_MOUSE_BUTTON_LEFT)