diff options
author | volzhs <volzhs@gmail.com> | 2017-12-11 20:46:33 +0900 |
---|---|---|
committer | volzhs <volzhs@gmail.com> | 2017-12-11 20:46:33 +0900 |
commit | 79de82f7d0c3d3b506bc459986e295d4545e790e (patch) | |
tree | 60c925a7cfecf202544770bcf41e9d33d606e1d9 | |
parent | 64d104756c04f4d5c4e8140271d5e8049e5f8371 (diff) |
Fix Index p_current=0 error at starting editor
-rw-r--r-- | scene/gui/tab_container.cpp | 11 | ||||
-rw-r--r-- | scene/gui/tab_container.h | 1 |
2 files changed, 9 insertions, 3 deletions
diff --git a/scene/gui/tab_container.cpp b/scene/gui/tab_container.cpp index 581034ddee..f2a2d862de 100644 --- a/scene/gui/tab_container.cpp +++ b/scene/gui/tab_container.cpp @@ -294,13 +294,17 @@ void TabContainer::_notification(int p_what) { } } break; case NOTIFICATION_THEME_CHANGED: { - if (get_tab_count() > 0) { - call_deferred("set_current_tab", get_current_tab()); //wait until all changed theme - } + call_deferred("_on_theme_changed"); //wait until all changed theme } break; } } +void TabContainer::_on_theme_changed() { + if (get_tab_count() > 0) { + set_current_tab(get_current_tab()); + } +} + int TabContainer::_get_tab_width(int p_index) const { ERR_FAIL_INDEX_V(p_index, get_tab_count(), 0); @@ -658,6 +662,7 @@ void TabContainer::_bind_methods() { ClassDB::bind_method(D_METHOD("get_popup"), &TabContainer::get_popup); ClassDB::bind_method(D_METHOD("_child_renamed_callback"), &TabContainer::_child_renamed_callback); + ClassDB::bind_method(D_METHOD("_on_theme_changed"), &TabContainer::_on_theme_changed); ADD_SIGNAL(MethodInfo("tab_changed", PropertyInfo(Variant::INT, "tab"))); ADD_SIGNAL(MethodInfo("tab_selected", PropertyInfo(Variant::INT, "tab"))); diff --git a/scene/gui/tab_container.h b/scene/gui/tab_container.h index be59a16b3f..a36c4f3790 100644 --- a/scene/gui/tab_container.h +++ b/scene/gui/tab_container.h @@ -60,6 +60,7 @@ private: Vector<Control *> _get_tabs() const; int _get_tab_width(int p_index) const; + void _on_theme_changed(); protected: void _child_renamed_callback(); |