layout shortcut fix, preview popup w, no shuttle ev_grab, ffmpeg af_aformat leak...
authorGood Guy <[email protected]>
Sun, 17 Mar 2019 00:37:56 +0000 (18:37 -0600)
committerGood Guy <[email protected]>
Sun, 17 Mar 2019 00:37:56 +0000 (18:37 -0600)
cinelerra-5.1/cinelerra/awindowgui.C
cinelerra-5.1/cinelerra/fileffmpeg.C
cinelerra-5.1/cinelerra/mainmenu.C
cinelerra-5.1/cinelerra/shuttle.C
cinelerra-5.1/plugins/theme_suv/suv.C
cinelerra-5.1/thirdparty/src/ffmpeg-4.1.patch4 [new file with mode: 0644]

index 33a69aee380393b955530f2a31e193329143da12..8b1fda8c2fa24b4de91199fbb14368cfc6293386 100644 (file)
@@ -1491,7 +1491,7 @@ void AWindowGUI::create_objects()
                int nw = get_text_width(MEDIUMFONT, _(av_names[i]));
                if( tw < nw )  tw = nw;
        }
-       int pw = BC_PopupMenu::calculate_w(4, tw, 1) + 16;
+       int pw = BC_PopupMenu::calculate_w(16, tw, 1);
        const char *text = _(AVIconDrawing::avicon_names[vicon_drawing]);
        add_subwindow(avicon_drawing = new AVIconDrawing(this, fw, fy, pw, text));
        avicon_drawing->create_objects();
index 5910dd202474e59856cfbd9b22b598dff3aa2632..f7ad943934f153ca70f73cd414ae96a73d530c90 100644 (file)
@@ -1016,7 +1016,7 @@ const char *FFOptionsKind::kinds[] = {
 
 FFOptionsKind::
 FFOptionsKind(FFOptionsWindow *fwin, int x, int y, int w)
- : BC_PopupMenu(x, y, w-calculate_w(0), "")
+ : BC_PopupMenu(x, y, w, "")
 {
        this->fwin = fwin;
 }
index 2fb2fcf9f73345dcd5c01a595c427ad1681222e1..01bc15a3c4681d040cf4ec986dc96776702484c9 100644 (file)
@@ -1633,6 +1633,8 @@ LoadLayoutItem::LoadLayoutItem(LoadLayout *load_layout, const char *text, int id
 
 int LoadLayoutItem::handle_event()
 {
+// key_press hotkey skips over activate_submenu
+       load_layout->update();
        MWindow *mwindow = load_layout->mwindow;
        switch( load_layout->action ) {
        case LAYOUT_LOAD:
index df2850dc8e4f22a5c6915e7062ddb151378b74d4..4c780f1a6021105972acd6a627bbc060b4ee7c77 100644 (file)
@@ -893,7 +893,7 @@ void Shuttle::run()
                        if( first_time ) break;
                        continue;
                }
-               if( !ioctl(fd, EVIOCGRAB, 1) ) { // exclusive access
+               if( 1 || !ioctl(fd, EVIOCGRAB, 1) ) { // exclusive access
                        first_time = 0;
                        while( !done ) {
                                int ret = read(fd, &ev, sizeof(ev));
index f8487b2b20002f5f7a3593bc1de2b2d69fdd3476..c2a072a1c5320afeb4c450d31ce569afd2541112 100644 (file)
@@ -132,7 +132,7 @@ void SUV::initialize()
        resources->menu_up = 0x4b4b4b;
        resources->menu_shadow = 0x202020;
        resources->popupmenu_margin = 15;
-       resources->popupmenu_triangle_margin = 15;
+       resources->popupmenu_triangle_margin = 20;
 
        resources->listbox_title_color = 0xbfbfbf;
 
diff --git a/cinelerra-5.1/thirdparty/src/ffmpeg-4.1.patch4 b/cinelerra-5.1/thirdparty/src/ffmpeg-4.1.patch4
new file mode 100644 (file)
index 0000000..23e3e7f
--- /dev/null
@@ -0,0 +1,27 @@
+--- a/libavfilter/af_aformat.c 2018-07-17 03:27:41.000000000 -0600
++++ b/libavfilter/af_aformat.c 2019-03-16 17:55:28.449442750 -0600
+@@ -109,6 +109,16 @@
+     return 0;
+ }
++#define DEL_FIELD(p,mem,fld) if( p->mem ) { av_freep(&p->mem->fld); av_freep(&p->mem); }
++
++static av_cold void uninit(AVFilterContext *ctx)
++{
++    AFormatContext *s = ctx->priv;
++    DEL_FIELD(s, formats, formats);
++    DEL_FIELD(s, sample_rates, formats);
++    DEL_FIELD(s, channel_layouts, channel_layouts);
++}
++
+ static int query_formats(AVFilterContext *ctx)
+ {
+     AFormatContext *s = ctx->priv;
+@@ -146,6 +156,7 @@
+     .name          = "aformat",
+     .description   = NULL_IF_CONFIG_SMALL("Convert the input audio to one of the specified formats."),
+     .init          = init,
++    .uninit        = uninit,
+     .query_formats = query_formats,
+     .priv_size     = sizeof(AFormatContext),
+     .priv_class    = &aformat_class,