undo nested clip bug, wheel zoom redraw fix, uninited vars, shortcuts doc
[goodguy/history.git] / cinelerra-5.1 / guicast / bcpopupmenu.C
index 9d8e2c223132310ebc93c8a306a0a3eff8296952..4c639fe27d25890f96bd4289cc77c21c651ca569 100644 (file)
@@ -26,7 +26,7 @@
 #include "bcpopupmenu.h"
 #include "bcresources.h"
 #include "bcsignals.h"
-#include "colors.h"
+#include "bccolors.h"
 #include "fonts.h"
 #include <string.h>
 #include "vframe.h"
@@ -291,6 +291,7 @@ int BC_PopupMenu::activate_menu()
 {
        if( !get_button_down() || !BC_WindowBase::get_resources()->popupmenu_btnup )
                return menu_activate();
+       top_level->active_popup_menu = this;
        pending = 1;
        return 0;
 }
@@ -328,7 +329,7 @@ int BC_PopupMenu::menu_activate()
                popup_down = 1;
                if(use_title) draw_title(1);
        }
-       return 0;
+       return 1;
 }
 
 int BC_PopupMenu::deactivate_menu()
@@ -368,6 +369,7 @@ int BC_PopupMenu::repeat_event(int64_t duration)
 
 int BC_PopupMenu::button_press_event()
 {
+       int result = 0;
        if(get_buttonpress() == 1 &&
                is_event_win() &&
                use_title)
@@ -403,17 +405,18 @@ int BC_PopupMenu::button_press_event()
 
                BC_MenuItem *tmp = menu_popup->menu_items.values[theval];
                set_text(tmp->get_text());
-               if (!tmp->handle_event())
-                       this->handle_event();
+               result = tmp->handle_event();
+               if( !result )
+                       result = this->handle_event();
        }
        if(popup_down)
        {
 // Menu is down so dispatch to popup.
                menu_popup->dispatch_button_press();
-               return 1;
+               result = 1;
        }
 
-       return 0;
+       return result;
 }
 
 int BC_PopupMenu::button_release_event()
@@ -472,7 +475,7 @@ int BC_PopupMenu::cursor_leave_event()
        if( popup_down ) {
                if( !get_button_down() && !menu_popup->cursor_inside() ) {
                        status = BUTTON_UP;
-                       deactivate_menu();
+//                     deactivate_menu();
                }
                menu_popup->dispatch_cursor_leave();
        }