call deactivate if activate fails
authorCarsten Haitzler <raster@rasterman.com>
Sun, 8 Oct 2006 06:43:31 +0000 (06:43 +0000)
committerCarsten Haitzler <raster@rasterman.com>
Sun, 8 Oct 2006 06:43:31 +0000 (06:43 +0000)
SVN revision: 26411

src/bin/e_menu.c

index 2b055b0..ad7de32 100644 (file)
@@ -181,6 +181,11 @@ e_menu_activate_key(E_Menu *m, E_Zone *zone, int x, int y, int w, int h, int dir
    _e_menu_activate_time = 0;
    _e_menu_activate_floating = 0;
    _e_menu_activate_internal(m, zone);
+   if (!m->zone)
+     {
+       e_menu_deactivate(m);
+       return;
+     }
    switch (dir)
      {
       case E_MENU_POP_DIRECTION_LEFT:
@@ -245,6 +250,11 @@ e_menu_activate_mouse(E_Menu *m, E_Zone *zone, int x, int y, int w, int h, int d
    _e_menu_activate_time = activate_time;
    _e_menu_activate_floating = 0;
    _e_menu_activate_internal(m, zone);
+   if (!m->zone)
+     {
+       e_menu_deactivate(m);
+       return;
+     }
    switch (dir)
      {
       case E_MENU_POP_DIRECTION_LEFT:
@@ -302,6 +312,11 @@ e_menu_activate(E_Menu *m, E_Zone *zone, int x, int y, int w, int h, int dir)
    _e_menu_activate_time = 0;
    _e_menu_activate_floating = 0;
    _e_menu_activate_internal(m, zone);
+   if (!m->zone)
+     {
+       e_menu_deactivate(m);
+       return;
+     }
    switch (dir)
      {
       case E_MENU_POP_DIRECTION_LEFT:
@@ -1713,7 +1728,6 @@ _e_menu_activate_internal(E_Menu *m, E_Zone *zone)
          {
             ecore_x_window_del(_e_menu_win);
             _e_menu_win = 0;
-            m->zone = zone;
             return;
          }
      }