2
0
Эх сурвалжийг харах

Script editor usability fixes

Juan Linietsky 8 жил өмнө
parent
commit
5e361ba2ea

+ 4 - 4
editor/editor_node.cpp

@@ -6531,10 +6531,10 @@ EditorNode::EditorNode() {
 	_dim_timer->connect("timeout", this, "_dim_timeout");
 	add_child(_dim_timer);
 
-	ED_SHORTCUT("editor/editor_2d", TTR("Open 2D Editor"), KEY_F2);
-	ED_SHORTCUT("editor/editor_3d", TTR("Open 3D Editor"), KEY_F3);
-	ED_SHORTCUT("editor/editor_script", TTR("Open Script Editor"), KEY_F4);
-	ED_SHORTCUT("editor/editor_help", TTR("Search Help"), KEY_F1);
+	ED_SHORTCUT("editor/editor_2d", TTR("Open 2D Editor"), KEY_F1);
+	ED_SHORTCUT("editor/editor_3d", TTR("Open 3D Editor"), KEY_F2);
+	ED_SHORTCUT("editor/editor_script", TTR("Open Script Editor"), KEY_F3); //hack neded for script editor F3 search to work :) Assign like this or don't use F3
+	ED_SHORTCUT("editor/editor_help", TTR("Search Help"), KEY_F4);
 	ED_SHORTCUT("editor/editor_assetlib", TTR("Open Asset Library"));
 	ED_SHORTCUT("editor/editor_next", TTR("Open the next Editor"));
 	ED_SHORTCUT("editor/editor_prev", TTR("Open the previous Editor"));

+ 8 - 4
scene/main/viewport.cpp

@@ -2057,6 +2057,10 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) {
 		//keyboard focus
 		//if (from && p_event->is_pressed() && !p_event->get_alt() && !p_event->get_metakey() && !p_event->key->get_command()) {
 
+		Ref<InputEventKey> k = p_event;
+		//need to check for mods, otherwise any combination of alt/ctrl/shift+<up/down/left/righ/etc> is handled here when it shouldn't be.
+		bool mods = k.is_valid() && (k->get_control() || k->get_alt() || k->get_shift() || k->get_metakey());
+
 		if (from && p_event->is_pressed()) {
 			Control *next = NULL;
 
@@ -2070,22 +2074,22 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) {
 				next = from->find_prev_valid_focus();
 			}
 
-			if (p_event->is_action("ui_up")) {
+			if (!mods && p_event->is_action("ui_up")) {
 
 				next = from->_get_focus_neighbour(MARGIN_TOP);
 			}
 
-			if (p_event->is_action("ui_left")) {
+			if (!mods && p_event->is_action("ui_left")) {
 
 				next = from->_get_focus_neighbour(MARGIN_LEFT);
 			}
 
-			if (p_event->is_action("ui_right")) {
+			if (!mods && p_event->is_action("ui_right")) {
 
 				next = from->_get_focus_neighbour(MARGIN_RIGHT);
 			}
 
-			if (p_event->is_action("ui_down")) {
+			if (!mods && p_event->is_action("ui_down")) {
 
 				next = from->_get_focus_neighbour(MARGIN_BOTTOM);
 			}