Browse Source

Improved multiple cursor placement after left/right keys

pipelines/235045657
eidheim 6 years ago
parent
commit
1c48dba45e
  1. 18
      src/source_base.cpp

18
src/source_base.cpp

@ -1197,6 +1197,24 @@ bool Source::BaseView::on_key_press_event_extra_cursors(GdkEventKey *key) {
return false;
}
// Move cursors left/right of selection
if((key->keyval == GDK_KEY_Left || key->keyval == GDK_KEY_KP_Left) && (key->state & GDK_SHIFT_MASK) == 0 && get_buffer()->get_has_selection()) {
enable_multiple_cursors = false;
for(auto &extra_cursor : extra_cursors) {
auto iter = std::min(extra_cursor.insert->get_iter(), extra_cursor.selection_bound->get_iter());
extra_cursor.move(iter, false);
}
return false;
}
if((key->keyval == GDK_KEY_Right || key->keyval == GDK_KEY_KP_Right) && (key->state & GDK_SHIFT_MASK) == 0 && get_buffer()->get_has_selection()) {
enable_multiple_cursors = false;
for(auto &extra_cursor : extra_cursors) {
auto iter = std::max(extra_cursor.insert->get_iter(), extra_cursor.selection_bound->get_iter());
extra_cursor.move(iter, false);
}
return false;
}
return false;
}

Loading…
Cancel
Save