diff --git a/Ladybird/AppKit/UI/LadybirdWebView.mm b/Ladybird/AppKit/UI/LadybirdWebView.mm index b510cf266a5..654be7749c1 100644 --- a/Ladybird/AppKit/UI/LadybirdWebView.mm +++ b/Ladybird/AppKit/UI/LadybirdWebView.mm @@ -323,11 +323,11 @@ struct HideCursor { [[self tabController] reload:nil]; }; - m_web_view_bridge->on_tooltip_entered = [self](auto const& tooltip) { + m_web_view_bridge->on_enter_tooltip_area = [self](auto, auto const& tooltip) { self.toolTip = Ladybird::string_to_ns_string(tooltip); }; - m_web_view_bridge->on_tooltip_left = [self]() { + m_web_view_bridge->on_leave_tooltip_area = [self]() { self.toolTip = nil; }; diff --git a/Ladybird/AppKit/UI/LadybirdWebViewBridge.cpp b/Ladybird/AppKit/UI/LadybirdWebViewBridge.cpp index 9a91339875a..b0466bd499f 100644 --- a/Ladybird/AppKit/UI/LadybirdWebViewBridge.cpp +++ b/Ladybird/AppKit/UI/LadybirdWebViewBridge.cpp @@ -133,18 +133,6 @@ Optional WebViewBridge::paintable() return Paintable { *bitmap, bitmap_size }; } -void WebViewBridge::notify_server_did_enter_tooltip_area(Badge, Gfx::IntPoint, DeprecatedString const& tooltip) -{ - if (on_tooltip_entered) - on_tooltip_entered(tooltip); -} - -void WebViewBridge::notify_server_did_leave_tooltip_area(Badge) -{ - if (on_tooltip_left) - on_tooltip_left(); -} - void WebViewBridge::notify_server_did_finish_handling_input_event(bool) { } diff --git a/Ladybird/AppKit/UI/LadybirdWebViewBridge.h b/Ladybird/AppKit/UI/LadybirdWebViewBridge.h index 4e3723c0174..b23e6ead775 100644 --- a/Ladybird/AppKit/UI/LadybirdWebViewBridge.h +++ b/Ladybird/AppKit/UI/LadybirdWebViewBridge.h @@ -49,14 +49,9 @@ public: }; Optional paintable(); - Function on_tooltip_entered; - Function on_tooltip_left; - private: WebViewBridge(Vector screen_rects, float device_pixel_ratio, Optional webdriver_content_ipc_path); - virtual void notify_server_did_enter_tooltip_area(Badge, Gfx::IntPoint, DeprecatedString const&) override; - virtual void notify_server_did_leave_tooltip_area(Badge) override; virtual void notify_server_did_finish_handling_input_event(bool event_was_accepted) override; virtual void update_zoom() override; diff --git a/Ladybird/Qt/WebContentView.cpp b/Ladybird/Qt/WebContentView.cpp index 42e1d5b261f..92ef3ae4b04 100644 --- a/Ladybird/Qt/WebContentView.cpp +++ b/Ladybird/Qt/WebContentView.cpp @@ -112,6 +112,17 @@ WebContentView::WebContentView(StringView webdriver_content_ipc_path, WebView::E on_cursor_change = [this](auto cursor) { update_cursor(cursor); }; + + on_enter_tooltip_area = [this](auto position, auto tooltip) { + QToolTip::showText( + mapToGlobal(QPoint(position.x(), position.y())), + qstring_from_ak_deprecated_string(tooltip), + this); + }; + + on_leave_tooltip_area = []() { + QToolTip::hideText(); + }; } WebContentView::~WebContentView() = default; @@ -687,20 +698,6 @@ void WebContentView::update_cursor(Gfx::StandardCursor cursor) } } -void WebContentView::notify_server_did_enter_tooltip_area(Badge, Gfx::IntPoint content_position, DeprecatedString const& tooltip) -{ - auto widget_position = to_widget_position(content_position); - QToolTip::showText( - mapToGlobal(QPoint(widget_position.x(), widget_position.y())), - qstring_from_ak_deprecated_string(tooltip), - this); -} - -void WebContentView::notify_server_did_leave_tooltip_area(Badge) -{ - QToolTip::hideText(); -} - Gfx::IntRect WebContentView::viewport_rect() const { return m_viewport_rect; diff --git a/Ladybird/Qt/WebContentView.h b/Ladybird/Qt/WebContentView.h index df14635ddcf..b4a240cc135 100644 --- a/Ladybird/Qt/WebContentView.h +++ b/Ladybird/Qt/WebContentView.h @@ -76,8 +76,6 @@ public: }; void update_palette(PaletteMode = PaletteMode::Default); - virtual void notify_server_did_enter_tooltip_area(Badge, Gfx::IntPoint, DeprecatedString const&) override; - virtual void notify_server_did_leave_tooltip_area(Badge) override; virtual void notify_server_did_finish_handling_input_event(bool event_was_accepted) override; signals: diff --git a/Userland/Libraries/LibWebView/OutOfProcessWebView.cpp b/Userland/Libraries/LibWebView/OutOfProcessWebView.cpp index d863a870706..015de00f798 100644 --- a/Userland/Libraries/LibWebView/OutOfProcessWebView.cpp +++ b/Userland/Libraries/LibWebView/OutOfProcessWebView.cpp @@ -63,6 +63,14 @@ OutOfProcessWebView::OutOfProcessWebView() on_cursor_change = [this](auto cursor) { set_override_cursor(cursor); }; + + on_enter_tooltip_area = [](auto, auto tooltip) { + GUI::Application::the()->show_tooltip(tooltip, nullptr); + }; + + on_leave_tooltip_area = []() { + GUI::Application::the()->hide_tooltip(); + }; } OutOfProcessWebView::~OutOfProcessWebView() = default; @@ -201,16 +209,6 @@ void OutOfProcessWebView::screen_rects_change_event(GUI::ScreenRectsChangeEvent& client().async_update_screen_rects(event.rects(), event.main_screen_index()); } -void OutOfProcessWebView::notify_server_did_enter_tooltip_area(Badge, Gfx::IntPoint, DeprecatedString const& title) -{ - GUI::Application::the()->show_tooltip(title, nullptr); -} - -void OutOfProcessWebView::notify_server_did_leave_tooltip_area(Badge) -{ - GUI::Application::the()->hide_tooltip(); -} - void OutOfProcessWebView::did_scroll() { client().async_set_viewport_rect(visible_content_rect()); diff --git a/Userland/Libraries/LibWebView/OutOfProcessWebView.h b/Userland/Libraries/LibWebView/OutOfProcessWebView.h index 4fcfbfc29cb..73e08b1c3b0 100644 --- a/Userland/Libraries/LibWebView/OutOfProcessWebView.h +++ b/Userland/Libraries/LibWebView/OutOfProcessWebView.h @@ -82,8 +82,6 @@ private: // ^WebView::ViewImplementation virtual void create_client(EnableCallgrindProfiling = EnableCallgrindProfiling::No) override; virtual void update_zoom() override; - virtual void notify_server_did_enter_tooltip_area(Badge, Gfx::IntPoint, DeprecatedString const&) override; - virtual void notify_server_did_leave_tooltip_area(Badge) override; virtual void notify_server_did_finish_handling_input_event(bool event_was_accepted) override; virtual Gfx::IntRect viewport_rect() const override; diff --git a/Userland/Libraries/LibWebView/ViewImplementation.h b/Userland/Libraries/LibWebView/ViewImplementation.h index 34336d002a8..7d32b5393af 100644 --- a/Userland/Libraries/LibWebView/ViewImplementation.h +++ b/Userland/Libraries/LibWebView/ViewImplementation.h @@ -119,6 +119,8 @@ public: Function on_scroll_to_point; Function on_scroll_into_view; Function on_cursor_change; + Function on_enter_tooltip_area; + Function on_leave_tooltip_area; Function on_request_alert; Function on_request_confirm; Function on_request_prompt; @@ -144,8 +146,6 @@ public: Function on_minimize_window; Function on_fullscreen_window; - virtual void notify_server_did_enter_tooltip_area(Badge, Gfx::IntPoint, DeprecatedString const&) = 0; - virtual void notify_server_did_leave_tooltip_area(Badge) = 0; virtual void notify_server_did_finish_handling_input_event(bool event_was_accepted) = 0; virtual Gfx::IntRect viewport_rect() const = 0; diff --git a/Userland/Libraries/LibWebView/WebContentClient.cpp b/Userland/Libraries/LibWebView/WebContentClient.cpp index bf739df82e8..087813df1cc 100644 --- a/Userland/Libraries/LibWebView/WebContentClient.cpp +++ b/Userland/Libraries/LibWebView/WebContentClient.cpp @@ -128,12 +128,14 @@ void WebContentClient::did_request_scroll_into_view(Gfx::IntRect const& rect) void WebContentClient::did_enter_tooltip_area(Gfx::IntPoint content_position, DeprecatedString const& title) { - m_view.notify_server_did_enter_tooltip_area({}, content_position, title); + if (m_view.on_enter_tooltip_area) + m_view.on_enter_tooltip_area(m_view.to_widget_position(content_position), title); } void WebContentClient::did_leave_tooltip_area() { - m_view.notify_server_did_leave_tooltip_area({}); + if (m_view.on_leave_tooltip_area) + m_view.on_leave_tooltip_area(); } void WebContentClient::did_hover_link(AK::URL const& url) diff --git a/Userland/Utilities/headless-browser.cpp b/Userland/Utilities/headless-browser.cpp index 1df1f77feea..a289cc2df6c 100644 --- a/Userland/Utilities/headless-browser.cpp +++ b/Userland/Utilities/headless-browser.cpp @@ -102,8 +102,6 @@ public: private: HeadlessWebContentView() = default; - void notify_server_did_enter_tooltip_area(Badge, Gfx::IntPoint, DeprecatedString const&) override { } - void notify_server_did_leave_tooltip_area(Badge) override { } void notify_server_did_finish_handling_input_event(bool) override { } void update_zoom() override { } void create_client(WebView::EnableCallgrindProfiling) override { }