mirror of
https://github.com/RGBCube/serenity
synced 2025-05-19 00:55:08 +00:00

Since 9e2bd9d261a8c0c1b5eeafde95ca310efc667204, the OOPWV has been consuming all mouse and keyboard events, preventing action shortcuts from working. So let's fix that. :^) OOPWV now queues up input events, sending them one at a time to the WebContent process and waiting for the new `did_finish_handling_input_event(bool event_was_accepted) =|` IPC call before sending the next one. If the event was not accepted, OOPWV imitates the usual event bubbling: first passing the event to its superclass, then to its parent widget, and finally propagating to any Action shortcuts. With this, shortcuts like Ctrl+I to open Browser's JS console work again, except when a contenteditable field is selected. That's a whole separate stack of yaks. Co-authored-by: Zaggy1024 <zaggy1024@gmail.com>
60 lines
3 KiB
Text
60 lines
3 KiB
Text
#include <AK/URL.h>
|
|
#include <LibCore/AnonymousBuffer.h>
|
|
#include <LibGfx/ShareableBitmap.h>
|
|
#include <LibWeb/Cookie/Cookie.h>
|
|
#include <LibWeb/Cookie/ParsedCookie.h>
|
|
|
|
endpoint WebContentClient
|
|
{
|
|
did_start_loading(URL url) =|
|
|
did_finish_loading(URL url) =|
|
|
did_request_navigate_back() =|
|
|
did_request_navigate_forward() =|
|
|
did_request_refresh() =|
|
|
did_paint(Gfx::IntRect content_rect, i32 bitmap_id) =|
|
|
did_invalidate_content_rect(Gfx::IntRect content_rect) =|
|
|
did_change_selection() =|
|
|
did_request_cursor_change(i32 cursor_type) =|
|
|
did_layout(Gfx::IntSize content_size) =|
|
|
did_change_title(String title) =|
|
|
did_request_scroll(i32 x_delta, i32 y_delta) =|
|
|
did_request_scroll_to(Gfx::IntPoint scroll_position) =|
|
|
did_request_scroll_into_view(Gfx::IntRect rect) =|
|
|
did_enter_tooltip_area(Gfx::IntPoint content_position, String title) =|
|
|
did_leave_tooltip_area() =|
|
|
did_hover_link(URL url) =|
|
|
did_unhover_link() =|
|
|
did_click_link(URL url, String target, unsigned modifiers) =|
|
|
did_middle_click_link(URL url, String target, unsigned modifiers) =|
|
|
did_request_context_menu(Gfx::IntPoint content_position) =|
|
|
did_request_link_context_menu(Gfx::IntPoint content_position, URL url, String target, unsigned modifiers) =|
|
|
did_request_image_context_menu(Gfx::IntPoint content_position, URL url, String target, unsigned modifiers, Gfx::ShareableBitmap bitmap) =|
|
|
did_request_alert(String message) =|
|
|
did_request_confirm(String message) =|
|
|
did_request_prompt(String message, String default_) =|
|
|
did_request_set_prompt_text(String message) =|
|
|
did_request_accept_dialog() =|
|
|
did_request_dismiss_dialog() =|
|
|
did_get_source(URL url, String source) =|
|
|
did_get_dom_tree(String dom_tree) =|
|
|
did_get_dom_node_properties(i32 node_id, String specified_style, String computed_style, String custom_properties, String node_box_sizing_json) =|
|
|
did_change_favicon(Gfx::ShareableBitmap favicon) =|
|
|
did_request_all_cookies(URL url) => (Vector<Web::Cookie::Cookie> cookies)
|
|
did_request_named_cookie(URL url, String name) => (Optional<Web::Cookie::Cookie> cookie)
|
|
did_request_cookie(URL url, u8 source) => (String cookie)
|
|
did_set_cookie(URL url, Web::Cookie::ParsedCookie cookie, u8 source) =|
|
|
did_update_cookie(URL url, Web::Cookie::Cookie cookie) =|
|
|
did_update_resource_count(i32 count_waiting) =|
|
|
did_request_restore_window() =|
|
|
did_request_reposition_window(Gfx::IntPoint position) => (Gfx::IntPoint window_position)
|
|
did_request_resize_window(Gfx::IntSize size) => (Gfx::IntSize window_size)
|
|
did_request_maximize_window() => (Gfx::IntRect window_rect)
|
|
did_request_minimize_window() => (Gfx::IntRect window_rect)
|
|
did_request_fullscreen_window() => (Gfx::IntRect window_rect)
|
|
did_request_file(String path, i32 request_id) =|
|
|
did_finish_handling_input_event(bool event_was_accepted) =|
|
|
|
|
did_output_js_console_message(i32 message_index) =|
|
|
did_get_js_console_messages(i32 start_index, Vector<String> message_types, Vector<String> messages) =|
|
|
|
|
}
|