LibWeb: Add hook when context menu is requested by right-clicking link

This commit is contained in:
Andreas Kling 2020-05-05 22:42:21 +02:00
parent 1061127ca7
commit f32989a3e7
Notes: sideshowbarker 2024-07-19 06:56:50 +09:00
2 changed files with 11 additions and 5 deletions

View file

@ -234,11 +234,16 @@ void HtmlView::mousedown_event(GUI::MouseEvent& event)
if (RefPtr<HTMLAnchorElement> link = node->enclosing_link_element()) {
dbg() << "HtmlView: clicking on a link to " << link->href();
if (link->href().starts_with("javascript:")) {
run_javascript_url(link->href());
} else {
if (on_link_click)
on_link_click(link->href(), link->target(), event.modifiers());
if (event.button() == GUI::MouseButton::Left) {
if (link->href().starts_with("javascript:")) {
run_javascript_url(link->href());
} else {
if (on_link_click)
on_link_click(link->href(), link->target(), event.modifiers());
}
} else if (event.button() == GUI::MouseButton::Right) {
if (on_link_context_menu_request)
on_link_context_menu_request(link->href(), event.position().translated(screen_relative_rect().location()));
}
} else {
if (event.button() == GUI::MouseButton::Left) {

View file

@ -58,6 +58,7 @@ public:
void set_should_show_line_box_borders(bool value) { m_should_show_line_box_borders = value; }
Function<void(const String& href, const String& target, unsigned modifiers)> on_link_click;
Function<void(const String& href, const Gfx::Point& screen_position)> on_link_context_menu_request;
Function<void(const String&)> on_link_hover;
Function<void(const String&)> on_title_change;
Function<void(const URL&)> on_load_start;