mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 06:07:44 +00:00
WindowServer, LibGUI: Variable minimum window sizes
Minimum window size can now be customised and set at runtime via the SetWindowMinimumSize WindowServer message and the set_minimum_size LibGUI::Window method. The default minimum size remains at 50x50. Some behind-the-scenes mechanics had to be added to LibGUI::Window to ensure that the minimum size is remembered if set before the window is shown. WindowServer sends a resize event to the client if it requests a size on create that's smaller than it's minimum size.
This commit is contained in:
parent
dea0d22ab3
commit
15c1f7a40d
7 changed files with 130 additions and 8 deletions
|
@ -108,6 +108,10 @@ public:
|
|||
|
||||
Gfx::IntPoint position() const { return rect().location(); }
|
||||
|
||||
Gfx::IntSize minimum_size() const;
|
||||
void set_minimum_size(const Gfx::IntSize&);
|
||||
void set_minimum_size(int width, int height) { set_minimum_size({ width, height }); }
|
||||
|
||||
void move_to(int x, int y) { move_to({ x, y }); }
|
||||
void move_to(const Gfx::IntPoint& point) { set_rect({ point, size() }); }
|
||||
|
||||
|
@ -248,6 +252,8 @@ private:
|
|||
WeakPtr<Widget> m_automatic_cursor_tracking_widget;
|
||||
WeakPtr<Widget> m_hovered_widget;
|
||||
Gfx::IntRect m_rect_when_windowless;
|
||||
Gfx::IntSize m_minimum_size_when_windowless { 50, 50 };
|
||||
bool m_minimum_size_modified { false };
|
||||
String m_title_when_windowless;
|
||||
Vector<Gfx::IntRect, 32> m_pending_paint_event_rects;
|
||||
Gfx::IntSize m_size_increment;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue