diff options
| author | Juan Linietsky | 2016-09-11 10:01:52 -0300 |
|---|---|---|
| committer | Juan Linietsky | 2016-09-11 10:05:46 -0300 |
| commit | 1bf684cea274db7c58b3f62a77ad4de3980c14dc (patch) | |
| tree | b39c833d3e744b7070d188f5f3335cacf19d7fec /scene/gui/control.cpp | |
| parent | e6ef92d21753e2b06e5f490d59d12d512490093b (diff) | |
| download | godot-1bf684cea274db7c58b3f62a77ad4de3980c14dc.tar.gz godot-1bf684cea274db7c58b3f62a77ad4de3980c14dc.tar.zst godot-1bf684cea274db7c58b3f62a77ad4de3980c14dc.zip | |
Diffstat (limited to 'scene/gui/control.cpp')
| -rw-r--r-- | scene/gui/control.cpp | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp index bf35fd25b..c120be65d 100644 --- a/scene/gui/control.cpp +++ b/scene/gui/control.cpp @@ -431,8 +431,7 @@ void Control::add_child_notify(Node *p_child) { return; if (child_c->data.theme.is_null() && data.theme_owner) { - child_c->data.theme_owner=data.theme_owner; - child_c->notification(NOTIFICATION_THEME_CHANGED); + _propagate_theme_changed(child_c,data.theme_owner); //need to propagate here, since many controls may require setting up stuff } } @@ -443,8 +442,7 @@ void Control::remove_child_notify(Node *p_child) { return; if (child_c->data.theme_owner && child_c->data.theme.is_null()) { - child_c->data.theme_owner=NULL; - //notification(NOTIFICATION_THEME_CHANGED); + _propagate_theme_changed(child_c,NULL); } } @@ -482,10 +480,10 @@ void Control::_notification(int p_notification) { if (is_set_as_toplevel()) { data.SI=get_viewport()->_gui_add_subwindow_control(this); - if (data.theme.is_null() && data.parent && data.parent->data.theme_owner) { + /*if (data.theme.is_null() && data.parent && data.parent->data.theme_owner) { data.theme_owner=data.parent->data.theme_owner; notification(NOTIFICATION_THEME_CHANGED); - } + }*/ } else { @@ -521,10 +519,10 @@ void Control::_notification(int p_notification) { if (parent_control) { //do nothing, has a parent control - if (data.theme.is_null() && parent_control->data.theme_owner) { + /*if (data.theme.is_null() && parent_control->data.theme_owner) { data.theme_owner=parent_control->data.theme_owner; notification(NOTIFICATION_THEME_CHANGED); - } + }*/ } else if (subwindow) { //is a subwindow (process input before other controls for that canvas) data.SI=get_viewport()->_gui_add_subwindow_control(this); @@ -1915,7 +1913,7 @@ void Control::_propagate_theme_changed(CanvasItem *p_at,Control *p_owner,bool p_ CanvasItem *child = p_at->get_child(i)->cast_to<CanvasItem>(); if (child) { - _propagate_theme_changed(child,p_owner); + _propagate_theme_changed(child,p_owner,p_assign); } } |
