mirror of
https://github.com/RGBCube/serenity
synced 2025-05-23 01:25:07 +00:00

Previously, GUI::Window::is_maximized() had to make a synchronous IPC request to WindowServer in order to find out if the window was indeed maximized. This patch removes the need for synchronous IPC by instead pushing the maximization state to clients when it changes. The motivation for this change was that GUI::Statusbar was checking if the containing window was maximized in its resize_event(), causing all windows with a statusbar to block on sync IPC *during* resize. Browser would typically block for ~15 milliseconds here every time on my machine, continuously during live resize.
50 lines
2.8 KiB
Text
50 lines
2.8 KiB
Text
#include <LibCore/AnonymousBuffer.h>
|
|
#include <LibGfx/ShareableBitmap.h>
|
|
|
|
endpoint WindowClient
|
|
{
|
|
fast_greet(Vector<Gfx::IntRect> screen_rects, u32 main_screen_index, u32 workspace_rows, u32 workspace_columns, Core::AnonymousBuffer theme_buffer, String default_font_query, String fixed_width_font_query, i32 client_id) =|
|
|
|
|
paint(i32 window_id, Gfx::IntSize window_size, Vector<Gfx::IntRect> rects) =|
|
|
mouse_move(i32 window_id, Gfx::IntPoint mouse_position, u32 button, u32 buttons, u32 modifiers, i32 wheel_delta_x, i32 wheel_delta_y, i32 wheel_raw_delta_x, i32 wheel_raw_delta_y, bool is_drag, Vector<String> mime_types) =|
|
|
mouse_down(i32 window_id, Gfx::IntPoint mouse_position, u32 button, u32 buttons, u32 modifiers, i32 wheel_delta_x, i32 wheel_delta_y, i32 wheel_raw_delta_x, i32 wheel_raw_delta_y) =|
|
|
mouse_double_click(i32 window_id, Gfx::IntPoint mouse_position, u32 button, u32 buttons, u32 modifiers, i32 wheel_delta_x, i32 wheel_delta_y, i32 wheel_raw_delta_x, i32 wheel_raw_delta_y) =|
|
|
mouse_up(i32 window_id, Gfx::IntPoint mouse_position, u32 button, u32 buttons, u32 modifiers, i32 wheel_delta_x, i32 wheel_delta_y, i32 wheel_raw_delta_x, i32 wheel_raw_delta_y) =|
|
|
mouse_wheel(i32 window_id, Gfx::IntPoint mouse_position, u32 button, u32 buttons, u32 modifiers, i32 wheel_delta_x, i32 wheel_delta_y, i32 wheel_raw_delta_x, i32 wheel_raw_delta_y) =|
|
|
window_entered(i32 window_id) =|
|
|
window_left(i32 window_id) =|
|
|
window_input_entered(i32 window_id) =|
|
|
window_input_left(i32 window_id) =|
|
|
key_down(i32 window_id, u32 code_point, u32 key, u32 modifiers, u32 scancode) =|
|
|
key_up(i32 window_id, u32 code_point, u32 key, u32 modifiers, u32 scancode) =|
|
|
window_activated(i32 window_id) =|
|
|
window_deactivated(i32 window_id) =|
|
|
window_state_changed(i32 window_id, bool minimized, bool maximized, bool occluded) =|
|
|
window_close_request(i32 window_id) =|
|
|
window_resized(i32 window_id, Gfx::IntRect new_rect) =|
|
|
|
|
menu_item_activated(i32 menu_id, u32 identifier) =|
|
|
menu_item_entered(i32 menu_id, u32 identifier) =|
|
|
menu_item_left(i32 menu_id, u32 identifier) =|
|
|
menu_visibility_did_change(i32 menu_id, bool visible) =|
|
|
|
|
screen_rects_changed(Vector<Gfx::IntRect> rects, u32 main_screen_index, u32 workspace_rows, u32 workspace_columns) =|
|
|
|
|
applet_area_rect_changed(Gfx::IntRect rect) =|
|
|
|
|
set_wallpaper_finished(bool success) =|
|
|
|
|
drag_accepted() =|
|
|
drag_cancelled() =|
|
|
|
|
drag_dropped(i32 window_id, Gfx::IntPoint mouse_position, [UTF8] String text, HashMap<String,ByteBuffer> mime_data) =|
|
|
|
|
update_system_theme(Core::AnonymousBuffer theme_buffer) =|
|
|
update_system_fonts(String default_font_query, String fixed_width_font_query) =|
|
|
|
|
display_link_notification() =|
|
|
|
|
track_mouse_move(Gfx::IntPoint mouse_position) =|
|
|
|
|
ping() =|
|
|
}
|