mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 04:47:35 +00:00
LibGfx+WindowServer: Have WindowServer broadcast system font settings
Instead of everybody getting their system fonts from Gfx::FontDatabase (where it's all hardcoded), they now get it from WindowServer. These are then plumbed into the usual Gfx::FontDatabase places so that the old default_font() and default_fixed_width_font() APIs keep working.
This commit is contained in:
parent
66ad739934
commit
bb23e61fbf
11 changed files with 76 additions and 15 deletions
|
@ -21,6 +21,7 @@
|
|||
#include <LibGUI/Window.h>
|
||||
#include <LibGUI/WindowServerConnection.h>
|
||||
#include <LibGfx/Bitmap.h>
|
||||
#include <LibGfx/FontDatabase.h>
|
||||
#include <LibGfx/Palette.h>
|
||||
#include <LibGfx/SystemTheme.h>
|
||||
|
||||
|
@ -47,9 +48,11 @@ void WindowServerConnection::handshake()
|
|||
auto message = wait_for_specific_message<Messages::WindowClient::FastGreet>();
|
||||
set_system_theme_from_anonymous_buffer(message->theme_buffer());
|
||||
Desktop::the().did_receive_screen_rect({}, message->screen_rect());
|
||||
Gfx::FontDatabase::set_default_font_query(message->default_font_query());
|
||||
Gfx::FontDatabase::set_fixed_width_font_query(message->fixed_width_font_query());
|
||||
}
|
||||
|
||||
void WindowServerConnection::fast_greet(Gfx::IntRect const&, Core::AnonymousBuffer const&)
|
||||
void WindowServerConnection::fast_greet(Gfx::IntRect const&, Core::AnonymousBuffer const&, String const&, String const&)
|
||||
{
|
||||
// NOTE: This message is handled in handshake().
|
||||
}
|
||||
|
@ -63,6 +66,12 @@ void WindowServerConnection::update_system_theme(Core::AnonymousBuffer const& th
|
|||
});
|
||||
}
|
||||
|
||||
void WindowServerConnection::update_system_fonts(const String& default_font_query, const String& fixed_width_font_query)
|
||||
{
|
||||
Gfx::FontDatabase::set_default_font_query(default_font_query);
|
||||
Gfx::FontDatabase::set_fixed_width_font_query(fixed_width_font_query);
|
||||
}
|
||||
|
||||
void WindowServerConnection::paint(i32 window_id, Gfx::IntSize const& window_size, Vector<Gfx::IntRect> const& rects)
|
||||
{
|
||||
if (auto* window = Window::from_window_id(window_id))
|
||||
|
|
|
@ -27,7 +27,7 @@ public:
|
|||
static WindowServerConnection& the();
|
||||
|
||||
private:
|
||||
virtual void fast_greet(Gfx::IntRect const&, Core::AnonymousBuffer const&) override;
|
||||
virtual void fast_greet(Gfx::IntRect const&, Core::AnonymousBuffer const&, String const&, String const&) override;
|
||||
virtual void paint(i32, Gfx::IntSize const&, Vector<Gfx::IntRect> const&) override;
|
||||
virtual void mouse_move(i32, Gfx::IntPoint const&, u32, u32, u32, i32, bool, Vector<String> const&) override;
|
||||
virtual void mouse_down(i32, Gfx::IntPoint const&, u32, u32, u32, i32) override;
|
||||
|
@ -54,6 +54,7 @@ private:
|
|||
virtual void drag_accepted() override;
|
||||
virtual void drag_cancelled() override;
|
||||
virtual void update_system_theme(Core::AnonymousBuffer const&) override;
|
||||
virtual void update_system_fonts(String const&, String const&) override;
|
||||
virtual void window_state_changed(i32, bool, bool) override;
|
||||
virtual void display_link_notification() override;
|
||||
virtual void ping() override;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue