浏览代码

WindowServer: Ignore mouse clicks we're not handling

This ignores unhandled mouse clicks for the window buttons. Right now
right-clicking on the window buttons animates them as if some action
were to occur when the mouse button is released.
Gunnar Beutner 4 年之前
父节点
当前提交
a3baf06549
共有 1 个文件被更改,包括 19 次插入0 次删除
  1. 19 0
      Userland/Services/WindowServer/Button.cpp

+ 19 - 0
Userland/Services/WindowServer/Button.cpp

@@ -40,6 +40,25 @@ void Button::paint(Gfx::Painter& painter)
 
 void Button::on_mouse_event(const MouseEvent& event)
 {
+    auto interesting_button = false;
+
+    switch (event.button()) {
+    case MouseButton::Left:
+        interesting_button = !!on_click;
+        break;
+    case MouseButton::Middle:
+        interesting_button = !!on_middle_click;
+        break;
+    case MouseButton::Right:
+        interesting_button = !!on_right_click;
+        break;
+    default:
+        break;
+    }
+
+    if (!interesting_button)
+        return;
+
     auto& wm = WindowManager::the();
 
     if (event.type() == Event::MouseDown && (event.button() == MouseButton::Left || event.button() == MouseButton::Right || event.button() == MouseButton::Middle)) {