浏览代码

TextEdit/LineEdit: Handle numpad PageUp, PageDown, Home and End

Ignacio Etcheverry 9 年之前
父节点
当前提交
6541f6418e
共有 2 个文件被更改,包括 56 次插入12 次删除
  1. 14 0
      scene/gui/line_edit.cpp
  2. 42 12
      scene/gui/text_edit.cpp

+ 14 - 0
scene/gui/line_edit.cpp

@@ -285,12 +285,26 @@ void LineEdit::_input_event(InputEvent p_event) {
 						}
 						}
 
 
 					} break;
 					} break;
+					case KEY_KP_7: {
+						if (k.unicode != 0) {
+							handled = false;
+							break;
+						}
+						// numlock disabled. fallthrough to key_home
+					}
 					case KEY_HOME: {
 					case KEY_HOME: {
 
 
 						shift_selection_check_pre(k.mod.shift);
 						shift_selection_check_pre(k.mod.shift);
 						set_cursor_pos(0);
 						set_cursor_pos(0);
 						shift_selection_check_post(k.mod.shift);
 						shift_selection_check_post(k.mod.shift);
 					} break;
 					} break;
+					case KEY_KP_1: {
+						if (k.unicode != 0) {
+							handled = false;
+							break;
+						}
+						// numlock disabled. fallthrough to key_end
+					}
 					case KEY_END: {
 					case KEY_END: {
 
 
 						shift_selection_check_pre(k.mod.shift);
 						shift_selection_check_pre(k.mod.shift);

+ 42 - 12
scene/gui/text_edit.cpp

@@ -1965,6 +1965,13 @@ void TextEdit::_input_event(const InputEvent& p_input_event) {
 					update();
 					update();
 
 
 				} break;
 				} break;
+				case KEY_KP_7: {
+					if (k.unicode != 0) {
+						scancode_handled = false;
+						break;
+					}
+					// numlock disabled. fallthrough to key_home
+				}
 #ifdef APPLE_STYLE_KEYS
 #ifdef APPLE_STYLE_KEYS
 				case KEY_HOME: {
 				case KEY_HOME: {
 					
 					
@@ -1978,18 +1985,6 @@ void TextEdit::_input_event(const InputEvent& p_input_event) {
 						_post_shift_selection();
 						_post_shift_selection();
 					
 					
 				} break;
 				} break;
-				case KEY_END: {
-					
-					if (k.mod.shift)
-						_pre_shift_selection();
-					
-					cursor_set_line(text.size()-1);
-					
-					if (k.mod.shift)
-						_post_shift_selection();
-					
-				} break;
-					
 #else
 #else
 				case KEY_HOME: {
 				case KEY_HOME: {
 					
 					
@@ -2020,6 +2015,27 @@ void TextEdit::_input_event(const InputEvent& p_input_event) {
 					completion_hint="";
 					completion_hint="";
 					
 					
 				} break;
 				} break;
+#endif
+				case KEY_KP_1: {
+					if (k.unicode != 0) {
+						scancode_handled = false;
+						break;
+					}
+					// numlock disabled. fallthrough to key_end
+				}
+#ifdef APPLE_STYLE_KEYS
+				case KEY_END: {
+
+					if (k.mod.shift)
+						_pre_shift_selection();
+
+					cursor_set_line(text.size()-1);
+
+					if (k.mod.shift)
+						_post_shift_selection();
+
+				} break;
+#else
 				case KEY_END: {
 				case KEY_END: {
 					
 					
 					if (k.mod.shift)
 					if (k.mod.shift)
@@ -2037,6 +2053,13 @@ void TextEdit::_input_event(const InputEvent& p_input_event) {
 					
 					
 				} break;
 				} break;
 #endif
 #endif
+				case KEY_KP_9: {
+					if (k.unicode != 0) {
+						scancode_handled = false;
+						break;
+					}
+					// numlock disabled. fallthrough to key_pageup
+				}
 				case KEY_PAGEUP: {
 				case KEY_PAGEUP: {
 					
 					
 					if (k.mod.shift)
 					if (k.mod.shift)
@@ -2052,6 +2075,13 @@ void TextEdit::_input_event(const InputEvent& p_input_event) {
 
 
 					
 					
 				} break;
 				} break;
+				case KEY_KP_3: {
+					if (k.unicode != 0) {
+						scancode_handled = false;
+						break;
+					}
+					// numlock disabled. fallthrough to key_pageup
+				}
 				case KEY_PAGEDOWN: {
 				case KEY_PAGEDOWN: {
 					
 					
 					if (k.mod.shift)
 					if (k.mod.shift)