diff --git a/Libraries/LibWeb/HtmlView.cpp b/Libraries/LibWeb/HtmlView.cpp index 8c0fb19eae4..84c379f2244 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 5fd6406085e..4804a12087d 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;