mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-21 02:08:12 +03:00
LibGUI: Fire Show/Hide events when adding/removing widget from tree
This ensures that widgets always get an initial show event.
This commit is contained in:
parent
4ee5dfbe4b
commit
5908873b45
Notes:
sideshowbarker
2024-07-17 06:49:56 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/5908873b45
@ -219,6 +219,11 @@ void Widget::child_event(Core::ChildEvent& event)
|
||||
}
|
||||
if (window() && event.child() && is<Widget>(*event.child()))
|
||||
window()->did_add_widget({}, verify_cast<Widget>(*event.child()));
|
||||
|
||||
if (event.child() && is<Widget>(*event.child()) && static_cast<Widget const&>(*event.child()).is_visible()) {
|
||||
ShowEvent show_event;
|
||||
event.child()->dispatch_event(show_event);
|
||||
}
|
||||
}
|
||||
if (event.type() == Event::ChildRemoved) {
|
||||
if (layout()) {
|
||||
@ -228,6 +233,10 @@ void Widget::child_event(Core::ChildEvent& event)
|
||||
}
|
||||
if (window() && event.child() && is<Widget>(*event.child()))
|
||||
window()->did_remove_widget({}, verify_cast<Widget>(*event.child()));
|
||||
if (event.child() && is<Widget>(*event.child())) {
|
||||
HideEvent hide_event;
|
||||
event.child()->dispatch_event(hide_event);
|
||||
}
|
||||
update();
|
||||
}
|
||||
return Core::Object::child_event(event);
|
||||
|
Loading…
Reference in New Issue
Block a user