File tree Expand file tree Collapse file tree 2 files changed +15
-0
lines changed
Userland/Libraries/LibGUI Expand file tree Collapse file tree 2 files changed +15
-0
lines changed Original file line number Diff line number Diff line change @@ -38,6 +38,19 @@ NonnullRefPtr<Statusbar::Segment> Statusbar::create_segment()
38
38
return widget;
39
39
}
40
40
41
+ void Statusbar::child_event (Core::ChildEvent& event)
42
+ {
43
+ auto & event_to_forward = event;
44
+ // To ensure that the ResizeCorner is always the last widget, and thus stays in the corner,
45
+ // we replace ChildAdded events that do not request specific placement with events that request placement before the corner
46
+ if (event.type () == Event::ChildAdded && is<Widget>(*event.child ()) && !event.insertion_before_child ()) {
47
+ Core::ChildEvent new_event (Event::ChildAdded, *event.child (), m_corner.ptr ());
48
+ event_to_forward = new_event;
49
+ }
50
+
51
+ return Widget::child_event (event_to_forward);
52
+ }
53
+
41
54
void Statusbar::set_segment_count (size_t count)
42
55
{
43
56
if (count <= 1 )
Original file line number Diff line number Diff line change @@ -76,6 +76,8 @@ class Statusbar : public Widget {
76
76
void update_segment (size_t );
77
77
NonnullRefPtr<Segment> create_segment ();
78
78
79
+ virtual void child_event (Core::ChildEvent&) override ;
80
+
79
81
NonnullRefPtrVector<Segment> m_segments;
80
82
RefPtr<ResizeCorner> m_corner;
81
83
};
You can’t perform that action at this time.
0 commit comments