Jelajahi Sumber

WindowServer: Don't close context menus when hovering over menu bar

Tom 4 tahun lalu
induk
melakukan
b4c0314f1d
1 mengubah file dengan 2 tambahan dan 2 penghapusan
  1. 2 2
      Userland/Services/WindowServer/MenuManager.cpp

+ 2 - 2
Userland/Services/WindowServer/MenuManager.cpp

@@ -291,7 +291,7 @@ void MenuManager::handle_mouse_event(MouseEvent& mouse_event)
 void MenuManager::handle_menu_mouse_event(Menu& menu, const MouseEvent& event)
 {
     bool is_hover_with_any_menu_open = event.type() == MouseEvent::MouseMove
-        && has_open_menu()
+        && has_open_menu() && m_current_menu_bar_menu
         && (m_open_menu_stack.first()->menubar() || m_open_menu_stack.first() == m_system_menu.ptr());
     bool is_mousedown_with_left_button = event.type() == MouseEvent::MouseDown && event.button() == MouseButton::Left;
     bool should_open_menu = (&menu != m_current_menu || !m_current_menu_bar_menu) && (is_hover_with_any_menu_open || is_mousedown_with_left_button);
@@ -305,7 +305,7 @@ void MenuManager::handle_menu_mouse_event(Menu& menu, const MouseEvent& event)
         return;
     }
 
-    if (!m_bar_open)
+    if (!m_bar_open && m_current_menu_bar_menu)
         close_everyone();
 }