]> git.eshelyaron.com Git - emacs.git/commitdiff
Don't send menu help events on Haiku if the pointer isn't in the menu
authorPo Lu <luangruo@yahoo.com>
Tue, 25 Jan 2022 10:02:16 +0000 (10:02 +0000)
committerPo Lu <luangruo@yahoo.com>
Tue, 25 Jan 2022 10:02:16 +0000 (10:02 +0000)
* src/haiku_support.cc (Highlight): Only send help events
if the mouse cursor is actually in the menu.

src/haiku_support.cc

index ae2736110ec43fcfe98e9a3e5496dd00a5b0577d..23f7472e3fff5e908468e5210bf25474d20cf7bd 100644 (file)
@@ -1635,17 +1635,23 @@ public:
   Highlight (bool highlight_p)
   {
     struct haiku_menu_bar_help_event rq;
+    BMenu *menu = Menu ();
+    BRect r;
+    BPoint pt;
+    uint32 buttons;
 
     if (help)
-      {
-       Menu ()->SetToolTip (highlight_p ? help : NULL);
-      }
+      menu->SetToolTip (highlight_p ? help : NULL);
     else if (menu_bar_id >= 0)
       {
        rq.window = wind_ptr;
        rq.mb_idx = highlight_p ? menu_bar_id : -1;
 
-       haiku_write (MENU_BAR_HELP_EVENT, &rq);
+       r = Frame ();
+       menu->GetMouse (&pt, &buttons);
+
+       if (r.Contains (pt))
+         haiku_write (MENU_BAR_HELP_EVENT, &rq);
       }
 
     BMenuItem::Highlight (highlight_p);