From: Good Guy Date: Thu, 15 Feb 2018 19:27:51 +0000 (-0700) Subject: ffplugin default opts now are unspecified, menubar pulldowns persist on leave notify X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=commitdiff_plain;h=24d4cd640db4007db78cb2e927c56ffe60ffb11c ffplugin default opts now are unspecified, menubar pulldowns persist on leave notify --- diff --git a/cinelerra-5.1/cinelerra/plugindialog.C b/cinelerra-5.1/cinelerra/plugindialog.C index 878d1d00..8b83480b 100644 --- a/cinelerra-5.1/cinelerra/plugindialog.C +++ b/cinelerra-5.1/cinelerra/plugindialog.C @@ -438,9 +438,9 @@ int PluginDialog::resize_event(int w, int h) if(single_standalone) - single_standalone->reposition_window(mwindow->theme->plugindialog_new_x, - mwindow->theme->plugindialog_new_y + - mwindow->theme->plugindialog_new_h + + single_standalone->reposition_window( + mwindow->theme->plugindialog_new_x + BC_OKButton::calculate_w() + 10, + mwindow->theme->plugindialog_new_y + mwindow->theme->plugindialog_new_h + get_text_height(MEDIUMFONT)); flush(); @@ -747,7 +747,7 @@ PluginDialogSingle::PluginDialogSingle(PluginDialog *dialog, int x, int y) : BC_CheckBox(x, y, dialog->thread->single_standalone, - _("Attach single standlone and share others")) + _("Attach single standalone and share others")) { this->dialog = dialog; } diff --git a/cinelerra-5.1/cinelerra/pluginfclient.C b/cinelerra-5.1/cinelerra/pluginfclient.C index 3a2dfc83..3edc9f67 100644 --- a/cinelerra-5.1/cinelerra/pluginfclient.C +++ b/cinelerra-5.1/cinelerra/pluginfclient.C @@ -1106,7 +1106,16 @@ int PluginFFilter::init(const char *name, PluginFClientConfig *conf) PluginFClient_Opt *op = conf->get(i); const char *name = op->opt->name; char val[BCTEXTLEN], *vp = op->get(val, sizeof(val)); - if( vp ) av_dict_set(&opts, name, vp, 0); + if( !vp ) continue; + uint8_t *bp = 0; +// unspecified opts cause a special behavior in some filters (lut3d) +// so... if opt value is the default, skip it or no special behavior + if( av_opt_get(filter_config(), name, 0, &bp) >= 0 ) { + int result = strcmp((const char *)bp, vp); + av_freep(&bp); + if( !result ) continue; + } + av_dict_set(&opts, name, vp, 0); } ret = avfilter_init_dict(fctx, &opts); av_dict_free(&opts); diff --git a/cinelerra-5.1/ffmpeg/plugin.opts b/cinelerra-5.1/ffmpeg/plugin.opts index d7c19513..b62fa85f 100644 --- a/cinelerra-5.1/ffmpeg/plugin.opts +++ b/cinelerra-5.1/ffmpeg/plugin.opts @@ -167,7 +167,7 @@ loudnorm lowpass lut #lut2 -#lut3d +lut3d lutrgb lutyuv #mandelbrot diff --git a/cinelerra-5.1/guicast/bcmenu.C b/cinelerra-5.1/guicast/bcmenu.C index 42035b43..2092fc8e 100644 --- a/cinelerra-5.1/guicast/bcmenu.C +++ b/cinelerra-5.1/guicast/bcmenu.C @@ -197,8 +197,8 @@ int BC_Menu::dispatch_cursor_leave() { if(active) { - if( !menu_popup->cursor_inside() ) - deactivate_menu(); +// if( !menu_popup->cursor_inside() ) +// deactivate_menu(); menu_popup->dispatch_cursor_leave(); } unhighlight();