浏览代码

WebContent: Pass mouse events through to the WebContent process

Just send the incoming mouse events across to the other side and let
LibWeb deal with them. :^)
Andreas Kling 5 年之前
父节点
当前提交
e58a13e3f6
共有 2 个文件被更改,包括 18 次插入0 次删除
  1. 15 0
      Demos/WebView/WebContentView.cpp
  2. 3 0
      Demos/WebView/WebContentView.h

+ 15 - 0
Demos/WebView/WebContentView.cpp

@@ -63,6 +63,21 @@ void WebContentView::resize_event(GUI::ResizeEvent& event)
     client().post_message(Messages::WebContentServer::Paint(m_bitmap->rect(), m_bitmap->shbuf_id()));
 }
 
+void WebContentView::mousedown_event(GUI::MouseEvent& event)
+{
+    client().post_message(Messages::WebContentServer::MouseDown(event.position(), event.button(), event.buttons(), event.modifiers()));
+}
+
+void WebContentView::mouseup_event(GUI::MouseEvent& event)
+{
+    client().post_message(Messages::WebContentServer::MouseUp(event.position(), event.button(), event.buttons(), event.modifiers()));
+}
+
+void WebContentView::mousemove_event(GUI::MouseEvent& event)
+{
+    client().post_message(Messages::WebContentServer::MouseMove(event.position(), event.button(), event.buttons(), event.modifiers()));
+}
+
 void WebContentView::notify_server_did_paint(Badge<WebContentClient>, i32 shbuf_id)
 {
     if (m_bitmap->shbuf_id() == shbuf_id)

+ 3 - 0
Demos/WebView/WebContentView.h

@@ -46,6 +46,9 @@ private:
 
     virtual void paint_event(GUI::PaintEvent&) override;
     virtual void resize_event(GUI::ResizeEvent&) override;
+    virtual void mousedown_event(GUI::MouseEvent&) override;
+    virtual void mouseup_event(GUI::MouseEvent&) override;
+    virtual void mousemove_event(GUI::MouseEvent&) override;
 
     WebContentClient& client();