- int x = popup->get_relative_cursor_x();
- if( x < 0 || x > popup->get_w() ) return 0;
- int y = popup->get_relative_cursor_y();
- if( y < 0 || y > popup->get_h() ) return 0;
- return 1;
+ if( popup->cursor_above() ) return 1;
+ for( int i=0; i<menu_items.size(); ++i ) {
+ if( !menu_items[i]->submenu ) continue;
+ if( menu_items[i]->submenu->cursor_inside() ) return 1;
+ }
+ return 0;