mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 12:37:45 +00:00
EditingEngine: Split selection from movement functions
This patch moves selection updates outside movement functions in EditingEngine. Previously, movement functions would automatically update the selection based on whether the Shift key was pressed down during movement. However, not all EditingEngine subclasses want that; VimEditingEngine being a good example (because all selection is handled in visual mode). Therefore, this patch moves all selection updating to EditingEngine::on_key(). Subclasses wishing to provide custom movement and selection semantics should override it (and VimEditingEngine already does).
This commit is contained in:
parent
4e6a26cbd2
commit
d6dc81874d
6 changed files with 72 additions and 68 deletions
|
@ -42,16 +42,16 @@ protected:
|
|||
|
||||
WeakPtr<TextEditor> m_editor;
|
||||
|
||||
void move_one_left(const KeyEvent& event);
|
||||
void move_one_right(const KeyEvent& event);
|
||||
void move_one_left();
|
||||
void move_one_right();
|
||||
void move_one_up(const KeyEvent& event);
|
||||
void move_one_down(const KeyEvent& event);
|
||||
void move_to_previous_span(const KeyEvent& event);
|
||||
void move_to_previous_span();
|
||||
void move_to_next_span(const KeyEvent& event);
|
||||
void move_to_line_beginning(const KeyEvent& event);
|
||||
void move_to_line_end(const KeyEvent& event);
|
||||
void move_page_up(const KeyEvent& event);
|
||||
void move_page_down(const KeyEvent& event);
|
||||
void move_to_line_beginning();
|
||||
void move_to_line_end();
|
||||
void move_page_up();
|
||||
void move_page_down();
|
||||
void move_to_first_line();
|
||||
void move_to_last_line();
|
||||
TextPosition find_beginning_of_next_word();
|
||||
|
@ -63,8 +63,8 @@ protected:
|
|||
TextPosition find_beginning_of_previous_word();
|
||||
void move_to_beginning_of_previous_word();
|
||||
|
||||
void move_up(const KeyEvent& event, double page_height_factor);
|
||||
void move_down(const KeyEvent& event, double page_height_factor);
|
||||
void move_up(double page_height_factor);
|
||||
void move_down(double page_height_factor);
|
||||
|
||||
void get_selection_line_boundaries(size_t& first_line, size_t& last_line);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue