From 05a3780d6edd6a792f0dde46ed69e4b740af5a51 Mon Sep 17 00:00:00 2001 From: Good Guy Date: Mon, 11 Mar 2019 12:59:11 -0600 Subject: [PATCH 1/1] play_off preview tweak, zoombar auto_color fix, deactivate popupmenu on click while active --- cinelerra-5.1/cinelerra/awindowgui.C | 3 ++- cinelerra-5.1/cinelerra/zoombar.C | 11 ++++++----- cinelerra-5.1/cinelerra/zoombar.h | 2 +- cinelerra-5.1/guicast/bcpopupmenu.C | 16 +++++++++------- 4 files changed, 18 insertions(+), 14 deletions(-) diff --git a/cinelerra-5.1/cinelerra/awindowgui.C b/cinelerra-5.1/cinelerra/awindowgui.C index fc8adea9..a88acce6 100644 --- a/cinelerra-5.1/cinelerra/awindowgui.C +++ b/cinelerra-5.1/cinelerra/awindowgui.C @@ -2801,7 +2801,7 @@ int AWindowAssets::selection_changed() deactivate_selection(); } - else if( get_button_down() && + else if( get_button_down() && !gui->play_off && mwindow->edl->session->assetlist_format != ASSETS_TEXT ) { item = (AssetPicon*)get_selection(0, 0); if( item && !get_selection(0, 1) ) { @@ -2854,6 +2854,7 @@ void AWindowAssets::draw_background() int AWindowAssets::drag_start_event() { + gui->vicon_thread->set_view_popup(0); int collect_pluginservers = 0; int collect_assets = 0, proxy = 0; diff --git a/cinelerra-5.1/cinelerra/zoombar.C b/cinelerra-5.1/cinelerra/zoombar.C index f99a7976..b6fd8521 100644 --- a/cinelerra-5.1/cinelerra/zoombar.C +++ b/cinelerra-5.1/cinelerra/zoombar.C @@ -440,7 +440,8 @@ int AutoZoom::handle_down_event() AutoTypeMenu::AutoTypeMenu(MWindow *mwindow, ZoomBar *zoombar, int x, int y, int wid) - : BC_PopupMenu(x, y, wid, to_text(mwindow->edl->local_session->zoombar_showautotype), 1) + : BC_PopupMenu(x, y, wid + 24, + to_text(mwindow->edl->local_session->zoombar_showautotype), 1, 0, 12) { this->mwindow = mwindow; this->zoombar = zoombar; @@ -481,14 +482,14 @@ int AutoTypeMenu::from_text(char *text) return AUTOGROUPTYPE_INT255; } -int AutoTypeMenu::draw_face(int dx) +int AutoTypeMenu::draw_face(int dx, int color) { - BC_PopupMenu::draw_face(dx, -1); - int color = mwindow->edl->local_session->zoombar_showautocolor; + BC_PopupMenu::draw_face(dx+8, color); + color = mwindow->edl->local_session->zoombar_showautocolor; if( color >= 0 ) { set_color(color); int margin = get_margin(); - int mx = margin+5, my = 3*margin/8; + int mx = margin+4, my = 3*margin/8; int bh = get_h() - 2*my; draw_box(mx,my, bh,bh); } diff --git a/cinelerra-5.1/cinelerra/zoombar.h b/cinelerra-5.1/cinelerra/zoombar.h index e2331e24..107500e0 100644 --- a/cinelerra-5.1/cinelerra/zoombar.h +++ b/cinelerra-5.1/cinelerra/zoombar.h @@ -113,7 +113,7 @@ public: void create_objects(); static const char* to_text(int shape); static int from_text(char *text); - int draw_face(int dx); + int draw_face(int dx, int color); int handle_event(); MWindow *mwindow; ZoomBar *zoombar; diff --git a/cinelerra-5.1/guicast/bcpopupmenu.C b/cinelerra-5.1/guicast/bcpopupmenu.C index 13cc6816..ee78dbb3 100644 --- a/cinelerra-5.1/guicast/bcpopupmenu.C +++ b/cinelerra-5.1/guicast/bcpopupmenu.C @@ -149,7 +149,7 @@ int BC_PopupMenu::calculate_w(int margin, int text_width, int use_title) { BC_Resources *resources = get_resources(); int l = margin >= 0 ? margin : resources->popupmenu_margin; - int r = use_title < 0 ? l : resources->popupmenu_triangle_margin; + int r = use_title < 0 ? l : l + resources->popupmenu_triangle_margin; return l + text_width + r; } @@ -231,9 +231,11 @@ int BC_PopupMenu::draw_face(int dx, int color) get_h()/2 - icon->get_h()/2 + offset); } - if( use_title >= 0 ) - draw_triangle_down_flat(available_w + margin, - get_h()/2 - TRIANGLE_H/2, TRIANGLE_W, TRIANGLE_H); + if( use_title >= 0 ) { + int tx = get_w() - margin - get_resources()->popupmenu_triangle_margin; + int ty = get_h()/2 - TRIANGLE_H/2; + draw_triangle_down_flat(tx, ty, TRIANGLE_W, TRIANGLE_H); + } return 1; } @@ -295,6 +297,8 @@ int BC_PopupMenu::menu_activate() popup_down = 1; if( use_title ) draw_title(1); } + else + deactivate_menu(); return 1; } @@ -335,9 +339,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 ) { + if( get_buttonpress() == 1 && is_event_win() && use_title ) { top_level->hide_tooltip(); if( status == BUTTON_HI || status == BUTTON_UP ) status = BUTTON_DN; activate_menu(); -- 2.26.2