]> Dogcows Code - chaz/openbox/commitdiff
ignore enter events on top menu and submenu popup
authorDana Jansens <danakj@orodu.net>
Sat, 12 May 2007 19:50:32 +0000 (19:50 +0000)
committerDana Jansens <danakj@orodu.net>
Sat, 12 May 2007 19:50:32 +0000 (19:50 +0000)
openbox/menuframe.c

index 5782b7ac25e8a09890f6f4bd510d9cb5bee367a6..a42c138da1bca9722d907f07a5a8b959ccef27f2 100644 (file)
@@ -932,6 +932,7 @@ static gboolean menu_frame_show(ObMenuFrame *self)
 gboolean menu_frame_show_topmenu(ObMenuFrame *self, gint x, gint y,
                                  gint button)
 {
+    gint px, py;
     guint i;
 
     if (menu_frame_is_visible(self))
@@ -957,14 +958,20 @@ gboolean menu_frame_show_topmenu(ObMenuFrame *self, gint x, gint y,
 
     XMapWindow(ob_display, self->window);
 
+    if (screen_pointer_pos(&px, &py)) {
+        ObMenuEntryFrame *e = menu_entry_frame_under(px, py);
+        if (e && e->frame == self)
+            e->ignore_enters++;
+    }
+
     return TRUE;
 }
 
 gboolean menu_frame_show_submenu(ObMenuFrame *self, ObMenuFrame *parent,
                                  ObMenuEntryFrame *parent_entry)
 {
-    ObMenuEntryFrame *e;
     gint x, y, dx, dy;
+    gint px, py;
 
     if (menu_frame_is_visible(self))
         return TRUE;
@@ -994,9 +1001,11 @@ gboolean menu_frame_show_submenu(ObMenuFrame *self, ObMenuFrame *parent,
 
     XMapWindow(ob_display, self->window);
 
-    if (screen_pointer_pos(&dx, &dy) && (e = menu_entry_frame_under(dx, dy)) &&
-        e->frame == self)
-        ++e->ignore_enters;
+    if (screen_pointer_pos(&px, &py)) {
+        ObMenuEntryFrame *e = menu_entry_frame_under(px, py);
+        if (e && e->frame == self)
+            e->ignore_enters++;
+    }
 
     return TRUE;
 }
@@ -1086,7 +1095,7 @@ ObMenuEntryFrame* menu_entry_frame_under(gint x, gint y)
             ObMenuEntryFrame *e = it->data;
 
             if (RECT_CONTAINS(e->area, x, y)) {
-                ret = e;            
+                ret = e;
                 break;
             }
         }
This page took 0.025397 seconds and 4 git commands to generate.