From fc26aefe812db22d9b72c99a70e8979a7301a0c6 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 10 May 2020 21:03:37 +0200 Subject: [PATCH] LibWeb: Add a hook for when an URL is dropped on an HtmlView Embedders of HtmlView can now react to this by hooking on_url_drop. --- Libraries/LibWeb/HtmlView.cpp | 12 ++++++++++++ Libraries/LibWeb/HtmlView.h | 2 ++ 2 files changed, 14 insertions(+) diff --git a/Libraries/LibWeb/HtmlView.cpp b/Libraries/LibWeb/HtmlView.cpp index 8c0fb19eae..84c379f224 100644 --- a/Libraries/LibWeb/HtmlView.cpp +++ b/Libraries/LibWeb/HtmlView.cpp @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include @@ -590,4 +591,15 @@ void HtmlView::run_javascript_url(const String& url) document()->run_javascript(source); } +void HtmlView::drop_event(GUI::DropEvent& event) +{ + if (event.mime_data().has_urls()) { + if (on_url_drop) { + on_url_drop(event.mime_data().urls().first()); + return; + } + } + ScrollableWidget::drop_event(event); +} + } diff --git a/Libraries/LibWeb/HtmlView.h b/Libraries/LibWeb/HtmlView.h index 5fd6406085..4804a12087 100644 --- a/Libraries/LibWeb/HtmlView.h +++ b/Libraries/LibWeb/HtmlView.h @@ -64,6 +64,7 @@ public: Function on_title_change; Function on_load_start; Function on_favicon_change; + Function on_url_drop; virtual bool accepts_focus() const override { return true; } @@ -76,6 +77,7 @@ protected: virtual void mousedown_event(GUI::MouseEvent&) override; virtual void mouseup_event(GUI::MouseEvent&) override; virtual void keydown_event(GUI::KeyEvent&) override; + virtual void drop_event(GUI::DropEvent&) override; private: virtual void did_scroll() override;