### Godot version

4.0.beta10 (d0398f62f)

### System information

Windows 11

### Issue description

When the Move Mode tool is selected (hotkey W), using the arrow keys will move a node a few pixels before causing the 2D editor to lose focus.

This does not happen when the Select Mode tool (hotkey Q) is selected. This also doesn't happen when you use shift + arrow key (but this moves multiple pixels at once).

This is also not an issue in 3.5 (new regression in 4.0).

### Steps to reproduce

- Open any scene in 2D mode.
- Select `Select Mode`: 
![image](https://user-images.githubusercontent.com/4420888/210158638-7ff914ba-2ed3-460a-b717-faed1408d662.png)
- Select any CanvasItem.
- You can move it around using the arrow keys (1px at a time).
- Now select `Move Mode`: 
![image](https://user-images.githubusercontent.com/4420888/210158645-6db21a03-64cc-4112-94e5-483491f2e47e.png)
- Try moving the node using arrow keys.
- Notice how the main 2D editor loses focus.

Some extra info: shift + arrow key works fine!

https://user-images.githubusercontent.com/4420888/210158652-8dcff944-d57b-4d72-a8cc-80344b549839.mp4



### Minimal reproduction project

N/A - seems like any CanvasItem (maybe more?) has this issue.
Ref<Shortcut> set_pivot_shortcut;
	Ref<Shortcut> multiply_grid_step_shortcut;
	Ref<Shortcut> divide_grid_step_shortcut;
	Ref<ViewPanner> panner;
	bool warped_panning = true;
	int pan_speed = 20;
	void _scroll_callback(Vector2 p_scroll_vec, bool p_alt);
	void _pan_callback(Vector2 p_scroll_vec);
	void _zoom_callback(Vector2 p_scroll_vec, Vector2 p_origin, bool p_alt);
	bool _is_node_locked(const Node *p_node);
	bool _is_node_movable(const Node *p_node, bool p_popup_warning = false);
	void _find_canvas_items_at_pos(const Point2 &p_pos, Node *p_node, Vector<_SelectResult> &r_items, const Transform2D &p_parent_xform = Transform2D(), const Transform2D &p_canvas_xform = Transform2D());
	void _get_canvas_items_at_pos(const Point2 &p_pos, Vector<_SelectResult> &r_items, bool p_allow_locked = false);
	void _find_canvas_items_in_rect(const Rect2 &p_rect, Node *p_node, List<CanvasItem *> *r_items, const Transform2D &p_parent_xform = Transform2D(), const Transform2D &p_canvas_xform = Transform2D());
	bool _select_click_on_item(CanvasItem *item, Point2 p_click_pos, bool p_append);
	ConfirmationDialog *snap_dialog = nullptr;
	CanvasItem *ref_item = nullptr;
	void _save_canvas_item_state(List<CanvasItem *> p_canvas_items, bool save_bones = false);
	void _restore_canvas_item_state(List<CanvasItem *> p_canvas_items, bool restore_bones = false);
	void _commit_canvas_item_state(List<CanvasItem *> p_canvas_items, String action_name, bool commit_bones = false);
	Vector2 _anchor_to_position(const Control *p_control, Vector2 anchor);
	Vector2 _position_to_anchor(const Control *p_control, Vector2 position);
	void _popup_callback(int p_op);
	bool updating_scroll = false;
	void _update_scroll(real_t);
	void _update_scrollbars();
	void _snap_changed();
	void _selection_result_pressed(int);
	void _selection_menu_hide();
	void _add_node_pressed(int p_result);