### 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.
AcceptDialog *selector = nullptr;
	Label *selector_label = nullptr;
	Label *label = nullptr;
	Label *label_desc = nullptr;
	VBoxContainer *btn_group = nullptr;
	Ref<ButtonGroup> button_group;
	void _on_mouse_exit();
	void _on_select_type(Object *selected);
	void _on_change_type_confirmed();
	void _on_change_type_closed();
	Node *_make_texture_node_type(String texture_node_type);
	void _create_preview(const Vector<String> &files) const;
	void _remove_preview();
	bool _cyclical_dependency_exists(const String &p_target_scene_path, Node *p_desired_node);
	bool _only_packed_scenes_selected() const;
	void _create_nodes(Node *parent, Node *child, String &path, const Point2 &p_point);
	bool _create_instance(Node *parent, String &path, const Point2 &p_point);
	void _perform_drop_data();
	void _show_resource_type_selector();
	void _update_theme();
protected:
	void _notification(int p_what);
public:
	virtual bool can_drop_data(const Point2 &p_point, const Variant &p_data) const override;
	virtual void drop_data(const Point2 &p_point, const Variant &p_data) override;
	CanvasItemEditorViewport(CanvasItemEditor *p_canvas_item_editor);
	~CanvasItemEditorViewport();
};
#endif