diff options
author | Andreas Kling <awesomekling@gmail.com> | 2019-04-10 14:29:47 +0200 |
---|---|---|
committer | Andreas Kling <awesomekling@gmail.com> | 2019-04-10 14:29:47 +0200 |
commit | d4818dd2dd21aa9189bb0ee87aff2660b1e22951 (patch) | |
tree | 643bb48aa5da1f24d320795d89a69cb7b072de74 /LibGUI | |
parent | 30e2d62c38b30e7023269b5334c7dd101610ca7f (diff) | |
download | serenity-d4818dd2dd21aa9189bb0ee87aff2660b1e22951.zip |
WindowServer: Give windows a "background color" to use for missing parts.
When resizing a window, we often end up having to paint some part of it
without coverage in the current backing store. This patch makes those cases
look nicer by having a fallback background color for each window, passed
along with the CreateWindow client message.
Diffstat (limited to 'LibGUI')
-rw-r--r-- | LibGUI/GWindow.cpp | 1 | ||||
-rw-r--r-- | LibGUI/GWindow.h | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/LibGUI/GWindow.cpp b/LibGUI/GWindow.cpp index 72a5b2fb16..59c5710cca 100644 --- a/LibGUI/GWindow.cpp +++ b/LibGUI/GWindow.cpp @@ -62,6 +62,7 @@ void GWindow::show() request.window.modal = m_modal; request.window.resizable = m_resizable; request.window.opacity = m_opacity_when_windowless; + request.window.background_color = m_background_color.value(); request.window.size_increment = m_size_increment; request.window.base_size = m_base_size; request.window.type = (WSAPI_WindowType)m_window_type; diff --git a/LibGUI/GWindow.h b/LibGUI/GWindow.h index 9504c32dc9..e7d8371059 100644 --- a/LibGUI/GWindow.h +++ b/LibGUI/GWindow.h @@ -38,6 +38,9 @@ public: String title() const; void set_title(const String&); + Color background_color() const { return m_background_color; } + void set_background_color(Color color) { m_background_color = color; } + int x() const { return rect().x(); } int y() const { return rect().y(); } int width() const { return rect().width(); } @@ -123,6 +126,7 @@ private: Vector<Rect> m_pending_paint_event_rects; Size m_size_increment; Size m_base_size; + Color m_background_color { Color::LightGray }; GWindowType m_window_type { GWindowType::Normal }; bool m_is_active { false }; bool m_should_exit_app_on_close { false }; |