e - menus - fix submenu popup direction when zones are not at 0 y
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>
Wed, 25 Feb 2015 06:55:08 +0000 (15:55 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Wed, 25 Feb 2015 06:55:08 +0000 (15:55 +0900)
src/bin/e_menu.c

index 043935c..01475b8 100644 (file)
@@ -2015,19 +2015,19 @@ _e_menu_reposition(E_Menu *m)
      {
 #if 0 // we can't win - we just flip back and forth, so let it go off and use scrolling
         /* menu is larger than screen */
-        if (parent_item_bottom > (m->zone->h / 2))
+        if (parent_item_bottom > (m->zone->y + (m->zone->h / 2)))
           /* more is shown if menu goes up */
-          m->cur.y = (parent_item_bottom - (m->container_h + 1));
+          m->cur.y = (parent_item_bottom - (m->zone->h + 1));
         else
           /* more is shown if menu goes down */
-          m->cur.y = parent_item_bottom - m->container_y;
+          m->cur.y = parent_item_bottom - m->zone->y;
 #endif        
      }
    else
      {
         /* menu is smaller than screen */
-        if (((parent_item_bottom + m->cur.h) > m->zone->h) &&
-            (parent_item_bottom > (m->zone->h / 2)))
+        if (((parent_item_bottom + m->cur.h) > (m->zone->y + m->zone->h)) &&
+            (parent_item_bottom > (m->zone->y + (m->zone->h / 2))))
           /* menu is partially out of screen and more is shown if menu goes up */
           m->cur.y = parent_item_bottom - m->cur.h + m->parent_item->h;
         else