Browse Source

OptionButton::pressed(): give focus to selected

Ricardo Buring 5 years ago
parent
commit
4562106cbf
3 changed files with 9 additions and 0 deletions
  1. 1 0
      scene/gui/option_button.cpp
  2. 7 0
      scene/gui/popup_menu.cpp
  3. 1 0
      scene/gui/popup_menu.h

+ 1 - 0
scene/gui/option_button.cpp

@@ -179,6 +179,7 @@ void OptionButton::pressed() {
 	Size2 size = get_size() * get_viewport()->get_canvas_transform().get_scale();
 	Size2 size = get_size() * get_viewport()->get_canvas_transform().get_scale();
 	popup->set_position(get_screen_position() + Size2(0, size.height * get_global_transform().get_scale().y));
 	popup->set_position(get_screen_position() + Size2(0, size.height * get_global_transform().get_scale().y));
 	popup->set_size(Size2(size.width, 0));
 	popup->set_size(Size2(size.width, 0));
+	popup->set_current_index(current);
 	popup->popup();
 	popup->popup();
 }
 }
 
 

+ 7 - 0
scene/gui/popup_menu.cpp

@@ -1269,6 +1269,13 @@ bool PopupMenu::is_item_shortcut_disabled(int p_idx) const {
 	return items[p_idx].shortcut_is_disabled;
 	return items[p_idx].shortcut_is_disabled;
 }
 }
 
 
+void PopupMenu::set_current_index(int p_idx) {
+	ERR_FAIL_INDEX(p_idx, items.size());
+	mouse_over = p_idx;
+	_scroll_to_item(mouse_over);
+	control->update();
+}
+
 int PopupMenu::get_current_index() const {
 int PopupMenu::get_current_index() const {
 	return mouse_over;
 	return mouse_over;
 }
 }

+ 1 - 0
scene/gui/popup_menu.h

@@ -212,6 +212,7 @@ public:
 	Ref<Shortcut> get_item_shortcut(int p_idx) const;
 	Ref<Shortcut> get_item_shortcut(int p_idx) const;
 	int get_item_state(int p_idx) const;
 	int get_item_state(int p_idx) const;
 
 
+	void set_current_index(int p_idx);
 	int get_current_index() const;
 	int get_current_index() const;
 
 
 	void set_item_count(int p_count);
 	void set_item_count(int p_count);