浏览代码

GTextEditor: Fixed bug on KeyCode::Key_Right pressed.

Pressing right did nothing when the very last characters of the buffer
were selected.

The expected action would be for the cursor to move to the end of the
buffer.

This patch fixes that.
Andrew Weller 5 年之前
父节点
当前提交
ed0553fe10
共有 1 个文件被更改,包括 13 次插入16 次删除
  1. 13 16
      Libraries/LibGUI/GTextEditor.cpp

+ 13 - 16
Libraries/LibGUI/GTextEditor.cpp

@@ -545,24 +545,21 @@ void GTextEditor::keydown_event(GKeyEvent& event)
         return;
     }
     if (event.key() == KeyCode::Key_Right) {
+        int new_line = m_cursor.line();
+        int new_column = m_cursor.column();
         if (m_cursor.column() < current_line().length()) {
-            int new_column = m_cursor.column() + 1;
-            toggle_selection_if_needed_for_event(event);
-            set_cursor(m_cursor.line(), new_column);
-            if (m_selection.start().is_valid()) {
-                m_selection.set_end(m_cursor);
-                did_update_selection();
-            }
+            new_line = m_cursor.line();
+            new_column = m_cursor.column() + 1;
         } 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);
-                did_update_selection();
-            }
-        }
+            new_line = m_cursor.line() + 1;
+            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);
+            did_update_selection();
+        } 
         return;
     }
     if (!event.ctrl() && event.key() == KeyCode::Key_Home) {