mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-10-20 15:09:42 +00:00
LibWebView+UI: Generate application context menus
This migrates all duplicated context menus from the UIs to LibWebView. The context menu actions are now largely handled directly in LibWebView, with some UI-specific callbacks added to display e.g. confirmation dialogs. Actions that only ever apply to a specific web view are stored on the ViewImplementation itself. Actions that need to be dynamically applied to the active web view are stored on the Application.
This commit is contained in:
parent
a5be0f0a18
commit
5d8d9b337a
Notes:
github-actions[bot]
2025-09-11 18:25:14 +00:00
Author: https://github.com/trflynn89
Commit: 5d8d9b337a
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/6062
18 changed files with 553 additions and 1172 deletions
|
@ -262,34 +262,26 @@ void WebContentClient::did_middle_click_link(u64 page_id, URL::URL url, ByteStri
|
|||
|
||||
void WebContentClient::did_request_context_menu(u64 page_id, Gfx::IntPoint content_position)
|
||||
{
|
||||
if (auto view = view_for_page_id(page_id); view.has_value()) {
|
||||
if (view->on_context_menu_request)
|
||||
view->on_context_menu_request(view->to_widget_position(content_position));
|
||||
}
|
||||
if (auto view = view_for_page_id(page_id); view.has_value())
|
||||
view->did_request_page_context_menu({}, content_position);
|
||||
}
|
||||
|
||||
void WebContentClient::did_request_link_context_menu(u64 page_id, Gfx::IntPoint content_position, URL::URL url, ByteString, unsigned)
|
||||
{
|
||||
if (auto view = view_for_page_id(page_id); view.has_value()) {
|
||||
if (view->on_link_context_menu_request)
|
||||
view->on_link_context_menu_request(url, view->to_widget_position(content_position));
|
||||
}
|
||||
if (auto view = view_for_page_id(page_id); view.has_value())
|
||||
view->did_request_link_context_menu({}, content_position, move(url));
|
||||
}
|
||||
|
||||
void WebContentClient::did_request_image_context_menu(u64 page_id, Gfx::IntPoint content_position, URL::URL url, ByteString, unsigned, Optional<Gfx::ShareableBitmap> bitmap)
|
||||
{
|
||||
if (auto view = view_for_page_id(page_id); view.has_value()) {
|
||||
if (view->on_image_context_menu_request)
|
||||
view->on_image_context_menu_request(url, view->to_widget_position(content_position), bitmap);
|
||||
}
|
||||
if (auto view = view_for_page_id(page_id); view.has_value())
|
||||
view->did_request_image_context_menu({}, content_position, move(url), move(bitmap));
|
||||
}
|
||||
|
||||
void WebContentClient::did_request_media_context_menu(u64 page_id, Gfx::IntPoint content_position, ByteString, unsigned, Web::Page::MediaContextMenu menu)
|
||||
{
|
||||
if (auto view = view_for_page_id(page_id); view.has_value()) {
|
||||
if (view->on_media_context_menu_request)
|
||||
view->on_media_context_menu_request(view->to_widget_position(content_position), menu);
|
||||
}
|
||||
if (auto view = view_for_page_id(page_id); view.has_value())
|
||||
view->did_request_media_context_menu({}, content_position, move(menu));
|
||||
}
|
||||
|
||||
void WebContentClient::did_get_source(u64 page_id, URL::URL url, URL::URL base_url, String source)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue