소스 검색

GTextEditor: Allow jumping lines by hitting Left/Right at start/end of line.

Andreas Kling 6 년 전
부모
커밋
b4a099d212
1개의 변경된 파일14개의 추가작업 그리고 0개의 파일을 삭제
  1. 14 0
      LibGUI/GTextEditor.cpp

+ 14 - 0
LibGUI/GTextEditor.cpp

@@ -307,6 +307,13 @@ void GTextEditor::keydown_event(GKeyEvent& event)
             set_cursor(m_cursor.line(), new_column);
             if (m_selection.start().is_valid())
                 m_selection.set_end(m_cursor);
+        } else if (m_cursor.line() > 0) {
+            int new_line = m_cursor.line() - 1;
+            int new_column = m_lines[new_line]->length();
+            toggle_selection_if_needed_for_event(event);
+            set_cursor(new_line, new_column);
+            if (m_selection.start().is_valid())
+                m_selection.set_end(m_cursor);
         }
         return;
     }
@@ -317,6 +324,13 @@ void GTextEditor::keydown_event(GKeyEvent& event)
             set_cursor(m_cursor.line(), new_column);
             if (m_selection.start().is_valid())
                 m_selection.set_end(m_cursor);
+        } else if (m_cursor.line() != line_count() - 1) {
+            int new_line = m_cursor.line() + 1;
+            int new_column = 0;
+            toggle_selection_if_needed_for_event(event);
+            set_cursor(new_line, new_column);
+            if (m_selection.start().is_valid())
+                m_selection.set_end(m_cursor);
         }
         return;
     }