### Godot version

v4.1.beta.custom_build [d3651ea45]

### System information

Windows 11

### Issue description

![1](https://github.com/godotengine/godot/assets/28705694/15c14c93-7ad7-425a-8fb0-bef841b75527)

It's not possible to start text selection on a SpinBox when it's unfocused.

Note: After a bit of digging in the code, I found that clicking on a SpintBox doesn't trigger `SpinBox::gui_input` no matter if it's focused or not. However, releasing mouse left button does trigger the function.

### Steps to reproduce

See the gif.

### Minimal reproduction project

It's simple to reproduce.
	void shift_selection_check_pre(bool);
	void shift_selection_check_post(bool);
	void selection_fill_at_caret();
	void set_scroll_offset(float p_pos);
	float get_scroll_offset() const;
	void set_caret_at_pixel_pos(int p_x);
	Vector2 get_caret_pixel_pos();
	void _reset_caret_blink_timer();
	void _toggle_draw_caret();
	void _validate_caret_can_draw();
	void clear_internal();
	void _editor_settings_changed();
	void _swap_current_input_direction();
	void _move_caret_left(bool p_select, bool p_move_by_word = false);
	void _move_caret_right(bool p_select, bool p_move_by_word = false);
	void _move_caret_start(bool p_select);
	void _move_caret_end(bool p_select);
	void _backspace(bool p_word = false, bool p_all_to_left = false);
	void _delete(bool p_word = false, bool p_all_to_right = false);
protected:
	bool _is_over_clear_button(const Point2 &p_pos) const;
	virtual void _update_theme_item_cache() override;
	void _notification(int p_what);
	static void _bind_methods();
	virtual void unhandled_key_input(const Ref<InputEvent> &p_event) override;
	virtual void gui_input(const Ref<InputEvent> &p_event) override;
	void _validate_property(PropertyInfo &p_property) const;
public:
	void set_horizontal_alignment(HorizontalAlignment p_alignment);
	HorizontalAlignment get_horizontal_alignment() const;
	virtual Variant get_drag_data(const Point2 &p_point) override;
	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;
	virtual CursorShape get_cursor_shape(const Point2 &p_pos) const override;
	void menu_option(int p_option);
	void set_context_menu_enabled(bool p_enable);
	bool is_context_menu_enabled();
	PopupMenu *get_menu() const;
	bool is_menu_visible() const;
	void select(int p_from = 0, int p_to = -1);
	void select_all();
	void selection_delete();
	void deselect();
	bool has_selection() const;
	String get_selected_text();
	int get_selection_from_column() const;
	int g