merge r6386-6388 from trunk
authorDana Jansens <danakj@orodu.net>
Sat, 12 May 2007 19:51:13 +0000 (19:51 +0000)
committerDana Jansens <danakj@orodu.net>
Sat, 12 May 2007 19:51:13 +0000 (19:51 +0000)
openbox/event.c
openbox/menuframe.c

index 2ba9c4c7251ccb9f3e9e73cf67eb2fe04157d4a6..eac312df66f09d4e3eb989c90e41c6c7fa42af6e 100644 (file)
@@ -1645,6 +1645,7 @@ static gboolean event_handle_menu(XEvent *ev)
         {
             menu_frame_select(e->frame, NULL, FALSE);
         }
+        break;
     case MotionNotify:   
         if ((e = menu_entry_frame_under(ev->xmotion.x_root,   
                                         ev->xmotion.y_root)))
index fad4161432d967007beb115cb4d8b9f350cf6072..367ed1c47e541ab129bdf2a46c32e5e9f7177b2a 100644 (file)
@@ -992,6 +992,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))
@@ -1017,14 +1018,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;
@@ -1054,9 +1061,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;
 }
@@ -1146,7 +1155,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;
             }
         }