--- /dev/null
+diff -ur cinelerra-5.1/cinelerra/assetpopup.C cinelerra-5.1_after/cinelerra/assetpopup.C
+--- cinelerra-5.1/cinelerra/assetpopup.C 2022-03-15 21:47:37.298381693 -0600
++++ cinelerra-5.1_after/cinelerra/assetpopup.C 2023-09-28 11:55:17.347859646 -0600
+@@ -563,10 +563,11 @@
+ }
+
+ AssetPopupLoadFile::AssetPopupLoadFile(MWindow *mwindow, AWindowGUI *gui)
+- : BC_MenuItem(_("Load files..."), "o", 'o')
++ : BC_MenuItem(_("Load files..."), "Ctrl+O", 'o')
+ {
+ this->mwindow = mwindow;
+ this->gui = gui;
++ set_ctrl(1);
+ }
+
+ AssetPopupLoadFile::~AssetPopupLoadFile()
+diff -ur cinelerra-5.1/cinelerra/awindowgui.C cinelerra-5.1_after/cinelerra/awindowgui.C
+--- cinelerra-5.1/cinelerra/awindowgui.C 2023-02-09 09:50:37.229375332 -0700
++++ cinelerra-5.1_after/cinelerra/awindowgui.C 2023-09-28 11:55:17.348859658 -0600
+@@ -1890,8 +1890,8 @@
+ tip_info = !tip_info ? 1 : 0;
+ if( !tip_info ) hide_tip_info();
+ return 1;
+- case 'o':
+- if( !ctrl_down() && !shift_down() ) {
++ case 'o': // Ctrl+O (Oscar letter)
++ if( ctrl_down() && !shift_down() ) {
+ assetlist_menu->load_file->handle_event();
+ return 1;
+ }
+@@ -3622,7 +3622,7 @@
+ }
+
+ AWindowListFormat::AWindowListFormat(MWindow *mwindow, AWindowGUI *gui)
+- : BC_MenuItem("","v",'v')
++ : BC_MenuItem("","V",'v')
+ {
+ this->mwindow = mwindow;
+ this->gui = gui;
+diff -ur cinelerra-5.1/cinelerra/batchrender.C cinelerra-5.1_after/cinelerra/batchrender.C
+--- cinelerra-5.1/cinelerra/batchrender.C 2023-02-09 09:50:37.229375332 -0700
++++ cinelerra-5.1_after/cinelerra/batchrender.C 2023-09-28 11:55:17.349859671 -0600
+@@ -69,7 +69,7 @@
+ };
+
+ BatchRenderMenuItem::BatchRenderMenuItem(MWindow *mwindow)
+- : BC_MenuItem(_("Batch Render..."), _("Shift-B"), 'B')
++ : BC_MenuItem(_("Batch Render..."), _("Shift+B"), 'B')
+ {
+ set_shift(1);
+ this->mwindow = mwindow;
+@@ -1100,7 +1100,7 @@
+ : BC_GenericButton(x, y, _("Save Jobs"))
+ {
+ this->thread = thread;
+- set_tooltip(_("Save a Batch Render List"));
++ set_tooltip(_("Save a Batch Render List (Ctrl+S)"));
+ gui = 0;
+ startup_lock = new Mutex("BatchRenderSaveList::startup_lock");
+ }
+@@ -1166,8 +1166,13 @@
+ }
+
+ int BatchRenderSaveList::keypress_event() {
+- if( get_keypress() == 's' ||
+- get_keypress() == 'S' ) return handle_event();
++// Ctrl+S pressed?
++ switch( get_keypress() ) {
++ case 's':
++ case 'S':
++ if( ctrl_down() && !alt_down() && !shift_down() ) return handle_event();
++ break;
++ }
+ return context_help_check_and_show();
+ }
+
+@@ -1179,7 +1184,7 @@
+ Thread()
+ {
+ this->thread = thread;
+- set_tooltip(_("Load a previously saved Batch Render List"));
++ set_tooltip(_("Load a previously saved Batch Render List (Ctrl+O)"));
+ gui = 0;
+ startup_lock = new Mutex("BatchRenderLoadList::startup_lock");
+ }
+@@ -1247,8 +1252,13 @@
+ }
+
+ int BatchRenderLoadList::keypress_event() {
+- if( get_keypress() == 'o' ||
+- get_keypress() == 'O' ) return handle_event();
++// Ctrl+O pressed?
++ switch( get_keypress() ) {
++ case 'o':
++ case 'O':
++ if( ctrl_down() && !alt_down() && !shift_down() ) return handle_event();
++ break;
++ }
+ return context_help_check_and_show();
+ }
+
+diff -ur cinelerra-5.1/cinelerra/bdcreate.C cinelerra-5.1_after/cinelerra/bdcreate.C
+--- cinelerra-5.1/cinelerra/bdcreate.C 2023-02-09 09:50:37.229375332 -0700
++++ cinelerra-5.1_after/cinelerra/bdcreate.C 2023-09-28 11:55:17.349859671 -0600
+@@ -122,10 +122,8 @@
+ const int CreateBD_Thread::BD_INTERLACE_MODE = ILACE_MODE_NOTINTERLACED;
+
+ CreateBD_MenuItem::CreateBD_MenuItem(MWindow *mwindow)
+- : BC_MenuItem(_("BD Render..."), _("Ctrl-Shift-D"), 'D')
++ : BC_MenuItem(_("BD Render..."))
+ {
+- set_ctrl(1);
+- set_shift(1);
+ this->mwindow = mwindow;
+ }
+
+diff -ur cinelerra-5.1/cinelerra/canvas.C cinelerra-5.1_after/cinelerra/canvas.C
+--- cinelerra-5.1/cinelerra/canvas.C 2022-03-15 21:47:37.304381729 -0600
++++ cinelerra-5.1_after/cinelerra/canvas.C 2023-09-28 11:55:17.350859683 -0600
+@@ -1025,7 +1025,7 @@
+
+
+ CanvasPopupCameraKeyframe::CanvasPopupCameraKeyframe(Canvas *canvas)
+- : BC_MenuItem(_("Camera keyframe"), _("Shift-F11"), KEY_F11)
++ : BC_MenuItem(_("Camera keyframe"), _("Shift+F11"), KEY_F11)
+ {
+ this->canvas = canvas;
+ set_shift(1);
+@@ -1037,7 +1037,7 @@
+ }
+
+ CanvasPopupProjectorKeyframe::CanvasPopupProjectorKeyframe(Canvas *canvas)
+- : BC_MenuItem(_("Projector keyframe"), _("Shift-F12"), KEY_F12)
++ : BC_MenuItem(_("Projector keyframe"), _("Shift+F12"), KEY_F12)
+ {
+ this->canvas = canvas;
+ set_shift(1);
+@@ -1062,7 +1062,7 @@
+
+
+ CanvasFullScreenItem::CanvasFullScreenItem(Canvas *canvas)
+- : BC_MenuItem(_("Fullscreen"), "f", 'f')
++ : BC_MenuItem(_("Fullscreen"), "F", 'f')
+ {
+ this->canvas = canvas;
+ }
+diff -ur cinelerra-5.1/cinelerra/channelinfo.C cinelerra-5.1_after/cinelerra/channelinfo.C
+--- cinelerra-5.1/cinelerra/channelinfo.C 2023-02-09 09:50:37.229375332 -0700
++++ cinelerra-5.1_after/cinelerra/channelinfo.C 2023-09-28 11:55:17.350859683 -0600
+@@ -1815,7 +1815,7 @@
+ }
+
+ ChannelScan::ChannelScan(MWindow *mwindow)
+- : BC_MenuItem(_("Scan..."), _("Ctrl-Alt-s"), 's')
++ : BC_MenuItem(_("Scan..."), _("Ctrl+Alt+S"), 's')
+ {
+ set_ctrl();
+ set_alt();
+diff -ur cinelerra-5.1/cinelerra/convert.C cinelerra-5.1_after/cinelerra/convert.C
+--- cinelerra-5.1/cinelerra/convert.C 2022-03-15 21:47:37.307381747 -0600
++++ cinelerra-5.1_after/cinelerra/convert.C 2023-09-28 11:55:17.351859696 -0600
+@@ -637,7 +637,7 @@
+
+
+ ConvertMenuItem::ConvertMenuItem(MWindow *mwindow)
+- : BC_MenuItem(_("Transcode..."), _("Alt-e"), 'e')
++ : BC_MenuItem(_("Transcode..."), _("Alt+E"), 'e')
+ {
+ this->mwindow = mwindow;
+ set_alt();
+diff -ur cinelerra-5.1/cinelerra/cwindowgui.C cinelerra-5.1_after/cinelerra/cwindowgui.C
+--- cinelerra-5.1/cinelerra/cwindowgui.C 2022-03-15 21:47:37.308381753 -0600
++++ cinelerra-5.1_after/cinelerra/cwindowgui.C 2023-09-28 11:55:17.351859696 -0600
+@@ -487,6 +487,8 @@
+ }
+ break;
+
++// *** 2023. REM Original code. (editpanel.C take its place, for me)
++/*
+ case ',':
+ if( !ctrl_down() && !alt_down() ) {
+ unlock_window();
+@@ -498,6 +500,8 @@
+ result = 1;
+ }
+ break;
++*/
++// *** END rem***
+
+ case RIGHT:
+ if( !ctrl_down() ) {
+@@ -516,6 +520,8 @@
+ }
+ break;
+
++// *** 2023. REM Original code. (editpanel.C take its place, for me)
++/*
+ case '.':
+ if( !ctrl_down() && !alt_down() ) {
+ unlock_window();
+@@ -527,6 +533,8 @@
+ result = 1;
+ }
+ break;
++*/
++// *** END rem***
+ }
+
+ if( !result && cwindow_operation < 0 && ctrl_down() && shift_down() ) {
+diff -ur cinelerra-5.1/cinelerra/cwindowtool.C cinelerra-5.1_after/cinelerra/cwindowtool.C
+--- cinelerra-5.1/cinelerra/cwindowtool.C 2023-02-09 09:50:37.231375772 -0700
++++ cinelerra-5.1_after/cinelerra/cwindowtool.C 2023-09-28 11:55:17.352859708 -0600
+@@ -1645,7 +1645,7 @@
+ add_subwindow(t_bump = new CWindowCurveToggle(Projector_Crv_Bump, mwindow, this, x1, y));
+ t_bump->context_help_set_keyword("Bump autos");
+ x1 += button->get_w() + xs25;
+- y += yS(5);
++// 2023 REM y += yS(5);
+ add_subwindow(add_keyframe = new CWindowProjectorAddKeyframe(mwindow, this, x1, y));
+ add_keyframe->context_help_set_keyword("Using Autos");
+ x1 += add_keyframe->get_w() + xs15;
+@@ -1910,7 +1910,7 @@
+ {
+ this->mwindow = mwindow;
+ this->gui = gui;
+- set_tooltip(_("Add Keyframe: Shift-F12"));
++ set_tooltip(_("Add Keyframe: Shift+F12"));
+ }
+
+ int CWindowProjectorAddKeyframe::handle_event()
+diff -ur cinelerra-5.1/cinelerra/dvdcreate.C cinelerra-5.1_after/cinelerra/dvdcreate.C
+--- cinelerra-5.1/cinelerra/dvdcreate.C 2023-06-28 10:24:09.241079904 -0600
++++ cinelerra-5.1_after/cinelerra/dvdcreate.C 2023-09-28 11:55:17.353859720 -0600
+@@ -117,9 +117,8 @@
+
+
+ CreateDVD_MenuItem::CreateDVD_MenuItem(MWindow *mwindow)
+- : BC_MenuItem(_("DVD Render..."), _("Alt-d"), 'd')
++ : BC_MenuItem(_("DVD Render..."))
+ {
+- set_alt(1);
+ this->mwindow = mwindow;
+ }
+
+diff -ur cinelerra-5.1/cinelerra/editpanel.C cinelerra-5.1_after/cinelerra/editpanel.C
+--- cinelerra-5.1/cinelerra/editpanel.C 2023-02-09 09:50:37.245378853 -0700
++++ cinelerra-5.1_after/cinelerra/editpanel.C 2023-09-28 11:55:17.354859733 -0600
+@@ -484,7 +484,7 @@
+ {
+ this->mwindow = mwindow;
+ this->panel = panel;
+- set_tooltip(_("Toggle label at current position ( l )"));
++ set_tooltip(_("Toggle label at current position ( ' )")); // single quote
+ // *** CONTEXT_HELP ***
+ context_help_set_keyword("Labels");
+ }
+@@ -494,7 +494,7 @@
+ }
+ int EditLabelbutton::keypress_event()
+ {
+- if( get_keypress() == 'l' && !alt_down() )
++ if( get_keypress() == '\'' && !alt_down() ) // single quote
+ return handle_event();
+ return context_help_check_and_show();
+ }
+@@ -511,7 +511,7 @@
+ {
+ this->mwindow = mwindow;
+ this->panel = panel;
+- set_tooltip(_("Next label ( ctrl -> )"));
++ set_tooltip(_("Next label ( Ctrl+Right Arrow )"));
+ // *** CONTEXT_HELP ***
+ context_help_set_keyword("Labels");
+ }
+@@ -547,7 +547,7 @@
+ {
+ this->mwindow = mwindow;
+ this->panel = panel;
+- set_tooltip(_("Previous label ( ctrl <- )"));
++ set_tooltip(_("Previous label ( Ctrl+Left Arrow )"));
+ // *** CONTEXT_HELP ***
+ context_help_set_keyword("Labels");
+ }
+@@ -583,7 +583,7 @@
+ {
+ this->mwindow = mwindow;
+ this->panel = panel;
+- set_tooltip(_("Previous edit (alt <- )"));
++ set_tooltip(_("Previous edit ( Alt+Left Arrow, 'A' )"));
+ // *** CONTEXT_HELP ***
+ context_help_set_keyword("Snapping while Cutting and Dragging");
+ }
+@@ -594,7 +594,7 @@
+ {
+ if( alt_down() ) {
+ int key = get_keypress();
+- if( (key == LEFT || key == ',') && !ctrl_down() ) {
++ if( key == LEFT && !ctrl_down() ) {
+ panel->panel_prev_edit(0);
+ return 1;
+ }
+@@ -603,6 +603,13 @@
+ return 1;
+ }
+ }
++ else {
++ int key = get_keypress();
++ if( key == 'a' && !ctrl_down() && !shift_down() ) {
++ panel->panel_prev_edit(0);
++ return 1;
++ }
++ }
+ return context_help_check_and_show();
+ }
+ int EditPrevEdit::handle_event()
+@@ -619,7 +626,7 @@
+ {
+ this->mwindow = mwindow;
+ this->panel = panel;
+- set_tooltip(_("Next edit ( alt -> )"));
++ set_tooltip(_("Next edit ( Alt+Right Arrow, 'S' )"));
+ // *** CONTEXT_HELP ***
+ context_help_set_keyword("Snapping while Cutting and Dragging");
+ }
+@@ -630,7 +637,7 @@
+ {
+ if( alt_down() ) {
+ int key = get_keypress();
+- if( (key == RIGHT || key == '.') && !ctrl_down() ) {
++ if( key == RIGHT && !ctrl_down() ) {
+ panel->panel_next_edit(0);
+ return 1;
+ }
+@@ -639,6 +646,13 @@
+ return 1;
+ }
+ }
++ else {
++ int key = get_keypress();
++ if( key == 's' && !ctrl_down() && !shift_down() ) {
++ panel->panel_next_edit(0);
++ return 1;
++ }
++ }
+ return context_help_check_and_show();
+ }
+ int EditNextEdit::handle_event()
+@@ -654,7 +668,7 @@
+ {
+ this->mwindow = mwindow;
+ this->panel = panel;
+- set_tooltip(_("Copy ( c )"));
++ set_tooltip(_("Copy ( C )"));
+ // *** CONTEXT_HELP ***
+ context_help_set_keyword("Cut and Paste Editing");
+ }
+@@ -683,7 +697,7 @@
+ {
+ this->mwindow = mwindow;
+ this->panel = panel;
+- set_tooltip(_("Overwrite ( b )"));
++ set_tooltip(_("Overwrite ( B )"));
+ // *** CONTEXT_HELP ***
+ context_help_set_keyword("Two Screen Editing");
+ }
+@@ -713,7 +727,7 @@
+ {
+ this->mwindow = mwindow;
+ this->panel = panel;
+- set_tooltip(_("In point ( [ or < )"));
++ set_tooltip(_("In point ( '[', '<', 'I' )"));
+ // *** CONTEXT_HELP ***
+ context_help_set_keyword("In\\/Out Points");
+ }
+@@ -735,7 +749,7 @@
+ }
+ }
+ else if( !alt_down() ) {
+- if( key == '[' || key == '<' ) {
++ if( key == '[' || key == '<' || key == 'i' ) {
+ panel->panel_set_inpoint();
+ return 1;
+ }
+@@ -750,7 +764,7 @@
+ {
+ this->mwindow = mwindow;
+ this->panel = panel;
+- set_tooltip(_("Out point ( ] or > )"));
++ set_tooltip(_("Out point ( ']', '>', 'O' )"));
+ // *** CONTEXT_HELP ***
+ context_help_set_keyword("In\\/Out Points");
+ }
+@@ -772,7 +786,7 @@
+ }
+ }
+ else if( !alt_down() ) {
+- if( key == ']' || key == '>' ) {
++ if( key == ']' || key == '>' || key == 'o' ) {
+ panel->panel_set_outpoint();
+ return 1;
+ }
+@@ -786,7 +800,7 @@
+ {
+ this->mwindow = mwindow;
+ this->panel = panel;
+- set_tooltip(_("Splice ( v )"));
++ set_tooltip(_("Splice ( V )"));
+ // *** CONTEXT_HELP ***
+ context_help_set_keyword("Two Screen Editing");
+ }
+@@ -815,7 +829,7 @@
+ {
+ this->mwindow = mwindow;
+ this->panel = panel;
+- set_tooltip(_("To clip ( i )"));
++ set_tooltip(_("To clip ( Ctrl+I )"));
+ // *** CONTEXT_HELP ***
+ context_help_set_keyword("Two Screen Editing");
+ }
+@@ -831,8 +845,8 @@
+ int EditToClip::keypress_event()
+ {
+ if( alt_down() ) return context_help_check_and_show();
+- if( get_keypress() == 'i' ||
+- (panel->is_vwindow() && get_keypress() == 'I') ) {
++ if( (get_keypress() == 'i' && ctrl_down()) ||
++ (panel->is_vwindow() && (get_keypress() == 'I' && ctrl_down()) ) ) {
+ handle_event();
+ return 1;
+ }
+@@ -845,7 +859,7 @@
+ {
+ this->mwindow = mwindow;
+ this->panel = panel;
+- set_tooltip(_("Split | Cut ( x )"));
++ set_tooltip(_("Split | Cut ( X )"));
+ // *** CONTEXT_HELP ***
+ context_help_set_keyword("Cut and Paste Editing");
+ }
+@@ -873,7 +887,7 @@
+ {
+ this->mwindow = mwindow;
+ this->panel = panel;
+- set_tooltip(_("Paste ( v )"));
++ set_tooltip(_("Paste ( V )"));
+ // *** CONTEXT_HELP ***
+ context_help_set_keyword("Cut and Paste Editing");
+ }
+@@ -899,7 +913,7 @@
+ {
+ this->mwindow = mwindow;
+ this->panel = panel;
+- set_tooltip(_("Fit selection to display ( f )"));
++ set_tooltip(_("Fit selection to display ( F )"));
+ // *** CONTEXT_HELP ***
+ context_help_set_keyword("Transport and Buttons Bar");
+ }
+@@ -926,7 +940,7 @@
+ {
+ this->mwindow = mwindow;
+ this->panel = panel;
+- set_tooltip(_("Fit all autos to display ( Alt + f )"));
++ set_tooltip(_("Fit all autos to display ( Alt+F )"));
+ // *** CONTEXT_HELP ***
+ context_help_set_keyword("Using Autos");
+ }
+@@ -1001,7 +1015,7 @@
+ {
+ this->mwindow = mwindow;
+ this->panel = panel;
+- set_tooltip(_("Generate keyframes while tweeking (j)"));
++ set_tooltip(_("Generate keyframes while tweeking ( G )"));
+ // *** CONTEXT_HELP ***
+ context_help_set_keyword("Generate Keyframes while Tweaking");
+ }
+@@ -1015,7 +1029,7 @@
+ int KeyFrameButton::keypress_event()
+ {
+ int key = get_keypress();
+- if( key == 'j' && !ctrl_down() && !shift_down() && !alt_down() ) {
++ if( key == 'g' && !ctrl_down() && !shift_down() && !alt_down() ) {
+ int value = get_value() ? 0 : 1;
+ update(value);
+ panel->panel_set_auto_keyframes(value);
+@@ -1072,7 +1086,7 @@
+ this->mwindow = mwindow;
+ this->panel = panel;
+ mangoto = new ManualGoto(mwindow, panel);
+- set_tooltip(_("Manual goto ( g )"));
++ set_tooltip(_("Manual goto ( Ctrl+G )"));
+ // *** CONTEXT_HELP ***
+ context_help_set_keyword("Transport and Buttons Bar");
+ }
+@@ -1088,7 +1102,7 @@
+
+ int EditManualGoto::keypress_event()
+ {
+- if( get_keypress() == 'g' ) {
++ if( get_keypress() == 'g' && ctrl_down() ) {
+ handle_event();
+ return 1;
+ }
+@@ -1104,7 +1118,7 @@
+ {
+ this->mwindow = mwindow;
+ this->panel = panel;
+- set_tooltip(_("Click to play (p)"));
++ set_tooltip(_("Click to play ( P )"));
+ // *** CONTEXT_HELP ***
+ context_help_set_keyword("Click to Play in Viewer and Compositor");
+ }
+@@ -1132,7 +1146,7 @@
+ {
+ this->mwindow = mwindow;
+ this->panel = panel;
+- set_tooltip(_("Commercial ( shift A )"));
++ set_tooltip(_("Commercial ( Shift+A )"));
+ // *** CONTEXT_HELP ***
+ context_help_set_keyword("The commercial DB");
+ }
+@@ -1174,7 +1188,7 @@
+ {
+ this->mwindow = mwindow;
+ this->panel = panel;
+- set_tooltip(_("Undo ( z or Ctrl-z)"));
++ set_tooltip(_("Undo ( 'Z', Ctrl+Z )"));
+ // *** CONTEXT_HELP ***
+ context_help_set_keyword("Transport and Buttons Bar");
+ }
+@@ -1200,7 +1214,7 @@
+ {
+ this->mwindow = mwindow;
+ this->panel = panel;
+- set_tooltip(_("Redo ( shift Z )"));
++ set_tooltip(_("Redo ( Shift+Z )"));
+ // *** CONTEXT_HELP ***
+ context_help_set_keyword("Transport and Buttons Bar");
+ }
+diff -ur cinelerra-5.1/cinelerra/editpopup.C cinelerra-5.1_after/cinelerra/editpopup.C
+--- cinelerra-5.1/cinelerra/editpopup.C 2022-04-11 14:29:13.599769890 -0600
++++ cinelerra-5.1_after/cinelerra/editpopup.C 2023-09-28 11:55:17.354859733 -0600
+@@ -147,7 +147,7 @@
+ }
+
+ EditPopupClearSelect::EditPopupClearSelect(MWindow *mwindow, EditPopup *popup)
+- : BC_MenuItem(_("Clear Select"),_("Ctrl-Shift-A"),'A')
++ : BC_MenuItem(_("Clear Select"),_("Ctrl+Shift+A"),'A')
+ {
+ this->mwindow = mwindow;
+ this->popup = popup;
+@@ -162,7 +162,7 @@
+ }
+
+ EditPopupSelectEdits::EditPopupSelectEdits(MWindow *mwindow, EditPopup *popup)
+- : BC_MenuItem(_("Select Edits"),_("Ctrl-Alt-'"),'\'')
++ : BC_MenuItem(_("Select Edits"),_("Ctrl+Alt+A"),'a')
+ {
+ this->mwindow = mwindow;
+ this->popup = popup;
+@@ -190,7 +190,7 @@
+ }
+
+ EditPopupCopy::EditPopupCopy(MWindow *mwindow, EditPopup *popup)
+- : BC_MenuItem(_("Copy"),_("Ctrl-c"),'c')
++ : BC_MenuItem(_("Copy"),_("Ctrl+C"),'c')
+ {
+ this->mwindow = mwindow;
+ this->popup = popup;
+@@ -204,7 +204,7 @@
+ }
+
+ EditPopupCopyPack::EditPopupCopyPack(MWindow *mwindow, EditPopup *popup)
+- : BC_MenuItem(_("Copy pack"),_("Ctrl-Shift-C"),'C')
++ : BC_MenuItem(_("Copy pack"),_("Ctrl+Shift+C"),'C')
+ {
+ this->mwindow = mwindow;
+ this->popup = popup;
+@@ -219,7 +219,7 @@
+ }
+
+ EditPopupCut::EditPopupCut(MWindow *mwindow, EditPopup *popup)
+- : BC_MenuItem(_("Cut"),_("Ctrl-x"),'x')
++ : BC_MenuItem(_("Cut"),_("Ctrl+X"),'x')
+ {
+ this->mwindow = mwindow;
+ this->popup = popup;
+@@ -233,7 +233,7 @@
+ }
+
+ EditPopupCutPack::EditPopupCutPack(MWindow *mwindow, EditPopup *popup)
+- : BC_MenuItem(_("Cut pack"),_("Ctrl-Alt-z"),'z')
++ : BC_MenuItem(_("Cut pack"),_("Ctrl+Alt+Z"),'z')
+ {
+ this->mwindow = mwindow;
+ this->popup = popup;
+@@ -248,7 +248,7 @@
+ }
+
+ EditPopupMute::EditPopupMute(MWindow *mwindow, EditPopup *popup)
+- : BC_MenuItem(C_("Mute"),_("Ctrl-m"),'m')
++ : BC_MenuItem(_("Mute"),_("Ctrl+M"),'m')
+ {
+ this->mwindow = mwindow;
+ this->popup = popup;
+@@ -262,7 +262,7 @@
+ }
+
+ EditPopupMutePack::EditPopupMutePack(MWindow *mwindow, EditPopup *popup)
+- : BC_MenuItem(_("Mute pack"),_("Ctrl-Shift-M"),'M')
++ : BC_MenuItem(_("Mute pack"),_("Ctrl+Shift+M"),'M')
+ {
+ this->mwindow = mwindow;
+ this->popup = popup;
+@@ -277,7 +277,7 @@
+ }
+
+ EditPopupPaste::EditPopupPaste(MWindow *mwindow, EditPopup *popup)
+- : BC_MenuItem(_("Paste"),_("Ctrl-v"),'v')
++ : BC_MenuItem(_("Paste"),_("Ctrl+V"),'v')
+ {
+ this->mwindow = mwindow;
+ this->popup = popup;
+@@ -297,7 +297,7 @@
+ }
+
+ EditPopupOverwrite::EditPopupOverwrite(MWindow *mwindow, EditPopup *popup)
+- : BC_MenuItem(_("Overwrite"),_("Ctrl-b"),'b')
++ : BC_MenuItem(_("Overwrite"),_("Ctrl+B"),'b')
+ {
+ this->mwindow = mwindow;
+ this->popup = popup;
+@@ -317,7 +317,7 @@
+ }
+
+ EditPopupOverwritePlugins::EditPopupOverwritePlugins(MWindow *mwindow, EditPopup *popup)
+- : BC_MenuItem(_("Overwrite Plugins"),_("Ctrl-Shift-P"),'P')
++ : BC_MenuItem(_("Overwrite Plugins"),_("Ctrl+Shift+P"),'P')
+ {
+ this->mwindow = mwindow;
+ this->popup = popup;
+@@ -372,12 +372,11 @@
+ }
+
+ EditPopupTimecode::EditPopupTimecode(MWindow *mwindow, EditPopup *popup)
+- : BC_MenuItem(_("Timecode"),_("Ctrl-!"),'!')
++ : BC_MenuItem(_("Timecode"),_("Ctrl+!"),'!')
+ {
+ this->mwindow = mwindow;
+ this->popup = popup;
+ set_ctrl(1);
+- set_shift(1);
+ }
+
+ int EditPopupTimecode::handle_event()
+diff -ur cinelerra-5.1/cinelerra/exportedl.C cinelerra-5.1_after/cinelerra/exportedl.C
+--- cinelerra-5.1/cinelerra/exportedl.C 2023-01-28 12:41:13.742539792 -0700
++++ cinelerra-5.1_after/cinelerra/exportedl.C 2023-09-28 11:55:17.354859733 -0600
+@@ -292,7 +292,7 @@
+
+
+ ExportEDLItem::ExportEDLItem(MWindow *mwindow)
+- : BC_MenuItem(_("Export EDL..."), "Shift-E", 'E')
++ : BC_MenuItem(_("Export EDL..."), "Shift+E", 'E')
+ {
+ this->mwindow = mwindow;
+ set_shift(1);
+diff -ur cinelerra-5.1/cinelerra/gwindowgui.C cinelerra-5.1_after/cinelerra/gwindowgui.C
+--- cinelerra-5.1/cinelerra/gwindowgui.C 2022-03-15 21:47:37.364382093 -0600
++++ cinelerra-5.1_after/cinelerra/gwindowgui.C 2023-09-28 11:55:17.354859733 -0600
+@@ -324,11 +324,11 @@
+ switch( ref ) {
+ case NONAUTOTOGGLES_CAMERA_XYZ:
+ camera_xyz = toggle;
+- accel = _("Shift-F1");
++ accel = _("Shift+F1");
+ break;
+ case NONAUTOTOGGLES_PROJECTOR_XYZ:
+ projector_xyz = toggle;
+- accel = _("Shift-F2");
++ accel = _("Shift+F2");
+ break;
+ case NON_AUTOMATION_HARD_EDGES:
+ VFrame *vframe = mwindow->theme->hardedge_data;
+diff -ur cinelerra-5.1/cinelerra/loadfile.C cinelerra-5.1_after/cinelerra/loadfile.C
+--- cinelerra-5.1/cinelerra/loadfile.C 2023-02-09 09:50:37.250379954 -0700
++++ cinelerra-5.1_after/cinelerra/loadfile.C 2023-09-28 11:55:17.354859733 -0600
+@@ -45,8 +45,9 @@
+ #include <string.h>
+
+ Load::Load(MWindow *mwindow, MainMenu *mainmenu)
+- : BC_MenuItem(_("Load files..."), "o", 'o')
++ : BC_MenuItem(_("Load files..."), "Ctrl+O", 'o')
+ {
++ set_ctrl(1);
+ this->mwindow = mwindow;
+ this->mainmenu = mainmenu;
+ this->thread = 0;
+diff -ur cinelerra-5.1/cinelerra/mainmenu.C cinelerra-5.1_after/cinelerra/mainmenu.C
+--- cinelerra-5.1/cinelerra/mainmenu.C 2022-03-15 21:47:37.368382117 -0600
++++ cinelerra-5.1_after/cinelerra/mainmenu.C 2023-09-28 11:55:17.355859745 -0600
+@@ -263,17 +263,17 @@
+ viewmenu->add_item(mask_automation = new ShowAutomation(mwindow, _("Mask"), "8", AUTOMATION_MASK));
+ viewmenu->add_item(speed_automation = new ShowAutomation(mwindow, _("Speed"), "9", AUTOMATION_SPEED));
+
+- camera_x = new ShowAutomation(mwindow, _("Camera X"), "Ctrl-Shift-X", AUTOMATION_CAMERA_X);
++ camera_x = new ShowAutomation(mwindow, _("Camera X"), "Ctrl+Shift+X", AUTOMATION_CAMERA_X);
+ camera_x->set_ctrl(); camera_x->set_shift(); viewmenu->add_item(camera_x);
+- camera_y = new ShowAutomation(mwindow, _("Camera Y"), "Ctrl-Shift-Y", AUTOMATION_CAMERA_Y);
++ camera_y = new ShowAutomation(mwindow, _("Camera Y"), "Ctrl+Shift+Y", AUTOMATION_CAMERA_Y);
+ camera_y->set_ctrl(); camera_y->set_shift(); viewmenu->add_item(camera_y);
+- camera_z = new ShowAutomation(mwindow, _("Camera Z"), "Ctrl-Shift-Z", AUTOMATION_CAMERA_Z);
++ camera_z = new ShowAutomation(mwindow, _("Camera Z"), "Ctrl+Shift+Z", AUTOMATION_CAMERA_Z);
+ camera_z->set_ctrl(); camera_z->set_shift(); viewmenu->add_item(camera_z);
+- project_x = new ShowAutomation(mwindow, _("Projector X"), "Alt-Shift-X", AUTOMATION_PROJECTOR_X);
++ project_x = new ShowAutomation(mwindow, _("Projector X"), "Alt+Shift+X", AUTOMATION_PROJECTOR_X);
+ project_x->set_alt(); project_x->set_shift(); viewmenu->add_item(project_x);
+- project_y = new ShowAutomation(mwindow, _("Projector Y"), "Alt-Shift-Y", AUTOMATION_PROJECTOR_Y);
++ project_y = new ShowAutomation(mwindow, _("Projector Y"), "Alt+Shift+Y", AUTOMATION_PROJECTOR_Y);
+ project_y->set_alt(); project_y->set_shift(); viewmenu->add_item(project_y);
+- project_z = new ShowAutomation(mwindow, _("Projector Z"), "Alt-Shift-Z", AUTOMATION_PROJECTOR_Z);
++ project_z = new ShowAutomation(mwindow, _("Projector Z"), "Alt+Shift+Z", AUTOMATION_PROJECTOR_Z);
+ project_z->set_alt(); project_z->set_shift(); viewmenu->add_item(project_z);
+
+ add_menu(windowmenu = new BC_Menu(_("Window")));
+@@ -291,7 +291,7 @@
+ windowmenu->add_item(new TileWindows(mwindow,_("Tile right"),1));
+ windowmenu->add_item(new BC_MenuItem("-"));
+
+- windowmenu->add_item(new TileWindows(mwindow,_("Default positions"),-1,_("Ctrl-P"),'p'));
++ windowmenu->add_item(new TileWindows(mwindow,_("Default positions"),-1,_("Ctrl+P"),'p'));
+ windowmenu->add_item(load_layout = new LoadLayout(mwindow, _("Load layout..."),LAYOUT_LOAD));
+ load_layout->create_objects();
+ windowmenu->add_item(save_layout = new LoadLayout(mwindow, _("Save layout..."),LAYOUT_SAVE));
+@@ -639,7 +639,7 @@
+
+ // ================================================= edit
+
+-Undo::Undo(MWindow *mwindow) : BC_MenuItem(_("Undo"), "z or Ctrl-z", 'z')
++Undo::Undo(MWindow *mwindow) : BC_MenuItem(_("Undo"), "Z, Ctrl+Z", 'z')
+ {
+ this->mwindow = mwindow;
+ }
+@@ -658,7 +658,7 @@
+ }
+
+
+-Redo::Redo(MWindow *mwindow) : BC_MenuItem(_("Redo"), _("Shift-Z"), 'Z')
++Redo::Redo(MWindow *mwindow) : BC_MenuItem(_("Redo"), _("Shift+Z"), 'Z')
+ {
+ set_shift(1);
+ this->mwindow = mwindow;
+@@ -679,7 +679,7 @@
+ }
+
+ CutKeyframes::CutKeyframes(MWindow *mwindow)
+- : BC_MenuItem(_("Cut keyframes"), _("Shift-X"), 'X')
++ : BC_MenuItem(_("Cut keyframes"), _("Shift+X"), 'X')
+ {
+ set_shift();
+ this->mwindow = mwindow;
+@@ -693,7 +693,7 @@
+ }
+
+ CopyKeyframes::CopyKeyframes(MWindow *mwindow)
+- : BC_MenuItem(_("Copy keyframes"), _("Shift-C"), 'C')
++ : BC_MenuItem(_("Copy keyframes"), _("Shift+C"), 'C')
+ {
+ set_shift();
+ this->mwindow = mwindow;
+@@ -707,7 +707,7 @@
+ }
+
+ PasteKeyframes::PasteKeyframes(MWindow *mwindow)
+- : BC_MenuItem(_("Paste keyframes"), _("Shift-V"), 'V')
++ : BC_MenuItem(_("Paste keyframes"), _("Shift+V"), 'V')
+ {
+ set_shift();
+ this->mwindow = mwindow;
+@@ -721,7 +721,7 @@
+ }
+
+ ClearKeyframes::ClearKeyframes(MWindow *mwindow)
+- : BC_MenuItem(_("Clear keyframes"), _("Shift-Del"), DELETE)
++ : BC_MenuItem(_("Clear keyframes"), _("Shift+Del"), DELETE)
+ {
+ set_shift();
+ this->mwindow = mwindow;
+@@ -886,7 +886,7 @@
+
+
+ CutDefaultKeyframe::CutDefaultKeyframe(MWindow *mwindow)
+- : BC_MenuItem(_("Cut default keyframe"), _("Alt-x"), 'x')
++ : BC_MenuItem(_("Cut default keyframe"), _("Alt+X"), 'x')
+ {
+ set_alt();
+ this->mwindow = mwindow;
+@@ -900,7 +900,7 @@
+ }
+
+ CopyDefaultKeyframe::CopyDefaultKeyframe(MWindow *mwindow)
+- : BC_MenuItem(_("Copy default keyframe"), _("Alt-c"), 'c')
++ : BC_MenuItem(_("Copy default keyframe"), _("Alt+C"), 'c')
+ {
+ set_alt();
+ this->mwindow = mwindow;
+@@ -914,7 +914,7 @@
+ }
+
+ PasteDefaultKeyframe::PasteDefaultKeyframe(MWindow *mwindow)
+- : BC_MenuItem(_("Paste default keyframe"), _("Alt-v"), 'v')
++ : BC_MenuItem(_("Paste default keyframe"), _("Alt+V"), 'v')
+ {
+ set_alt();
+ this->mwindow = mwindow;
+@@ -928,7 +928,7 @@
+ }
+
+ ClearDefaultKeyframe::ClearDefaultKeyframe(MWindow *mwindow)
+- : BC_MenuItem(_("Clear default keyframe"), _("Alt-Del"), DELETE)
++ : BC_MenuItem(_("Clear default keyframe"), _("Alt+Del"), DELETE)
+ {
+ set_alt();
+ this->mwindow = mwindow;
+@@ -942,7 +942,7 @@
+ }
+
+ Cut::Cut(MWindow *mwindow)
+- : BC_MenuItem(_("Split | Cut"), "x", 'x')
++ : BC_MenuItem(_("Split | Cut"), "X", 'x')
+ {
+ this->mwindow = mwindow;
+ }
+@@ -955,7 +955,7 @@
+ }
+
+ Copy::Copy(MWindow *mwindow)
+- : BC_MenuItem(_("Copy"), "c", 'c')
++ : BC_MenuItem(_("Copy"), "C", 'c')
+ {
+ this->mwindow = mwindow;
+ }
+@@ -968,7 +968,7 @@
+ }
+
+ Paste::Paste(MWindow *mwindow)
+- : BC_MenuItem(_("Paste"), "v", 'v')
++ : BC_MenuItem(_("Paste"), "V", 'v')
+ {
+ this->mwindow = mwindow;
+ }
+@@ -1024,7 +1024,7 @@
+ }
+
+ PasteSilence::PasteSilence(MWindow *mwindow)
+- : BC_MenuItem(_("Paste silence"), _("Shift-Space"), ' ')
++ : BC_MenuItem(_("Paste silence"), _("Shift+Space"), ' ')
+ {
+ this->mwindow = mwindow;
+ set_shift();
+@@ -1038,9 +1038,10 @@
+ }
+
+ SelectAll::SelectAll(MWindow *mwindow)
+- : BC_MenuItem(_("Select All"), "a", 'a')
++ : BC_MenuItem(_("Select All"), "Ctrl+A", 'a')
+ {
+ this->mwindow = mwindow;
++ set_ctrl(1);
+ }
+
+ int SelectAll::handle_event()
+@@ -1072,7 +1073,7 @@
+ return 1;
+ }
+
+-ClearSelect::ClearSelect(MWindow *mwindow) : BC_MenuItem(_("Clear Select"),"Ctrl-Shift-A",'A')
++ClearSelect::ClearSelect(MWindow *mwindow) : BC_MenuItem(_("Clear Select"),"Ctrl+Shift+A",'A')
+ {
+ set_ctrl(1);
+ set_shift(1);
+@@ -1109,7 +1110,7 @@
+ }
+
+ MuteSelection::MuteSelection(MWindow *mwindow)
+- : BC_MenuItem(_("Mute Region"), "m", 'm')
++ : BC_MenuItem(_("Mute Region"), "M", 'm')
+ {
+ this->mwindow = mwindow;
+ }
+@@ -1148,7 +1149,7 @@
+ // ============================================= audio
+
+ AddAudioTrack::AddAudioTrack(MWindow *mwindow)
+- : BC_MenuItem(_("Add track"), "t", 't')
++ : BC_MenuItem(_("Add track"), "T", 't')
+ {
+ this->mwindow = mwindow;
+ }
+@@ -1172,7 +1173,7 @@
+ }
+
+ DefaultATransition::DefaultATransition(MWindow *mwindow)
+- : BC_MenuItem(_("Default Transition"), "u", 'u')
++ : BC_MenuItem(_("Default Transition"), "U", 'u')
+ {
+ this->mwindow = mwindow;
+ }
+@@ -1216,7 +1217,7 @@
+
+
+ AddVideoTrack::AddVideoTrack(MWindow *mwindow)
+- : BC_MenuItem(_("Add track"), _("Shift-T"), 'T')
++ : BC_MenuItem(_("Add track"), _("Shift+T"), 'T')
+ {
+ set_shift();
+ this->mwindow = mwindow;
+@@ -1257,7 +1258,7 @@
+
+
+ DefaultVTransition::DefaultVTransition(MWindow *mwindow)
+- : BC_MenuItem(_("Default Transition"), _("Shift-U"), 'U')
++ : BC_MenuItem(_("Default Transition"), _("Shift+U"), 'U')
+ {
+ set_shift();
+ this->mwindow = mwindow;
+@@ -1298,7 +1299,7 @@
+ }
+
+ DeleteFirstTrack::DeleteFirstTrack(MWindow *mwindow)
+- : BC_MenuItem(_("Delete first track"), "Shift-D", 'D')
++ : BC_MenuItem(_("Delete first track"), "Shift+D", 'D')
+ {
+ set_shift(1);
+ this->mwindow = mwindow;
+@@ -1314,7 +1315,7 @@
+ }
+
+ DeleteLastTrack::DeleteLastTrack(MWindow *mwindow)
+- : BC_MenuItem(_("Delete last track"), "Ctrl-d", 'd')
++ : BC_MenuItem(_("Delete last track"), "Ctrl+D", 'd')
+ {
+ set_ctrl(1);
+ this->mwindow = mwindow;
+@@ -1330,7 +1331,7 @@
+ }
+
+ MoveTracksUp::MoveTracksUp(MWindow *mwindow)
+- : BC_MenuItem(_("Move tracks up"), _("Shift-Up"), UP)
++ : BC_MenuItem(_("Move tracks up"), _("Shift+Up"), UP)
+ {
+ this->mwindow = mwindow;
+ set_shift();
+@@ -1344,7 +1345,7 @@
+ }
+
+ MoveTracksDown::MoveTracksDown(MWindow *mwindow)
+- : BC_MenuItem(_("Move tracks down"), _("Shift-Down"), DOWN)
++ : BC_MenuItem(_("Move tracks down"), _("Shift+Down"), DOWN)
+ {
+ this->mwindow = mwindow;
+ set_shift();
+@@ -1359,7 +1360,7 @@
+
+
+ RollTracksUp::RollTracksUp(MWindow *mwindow)
+- : BC_MenuItem(_("Roll tracks up"), _("Ctrl-Shift-Up"), UP)
++ : BC_MenuItem(_("Roll tracks up"), _("Ctrl+Shift+Up"), UP)
+ {
+ this->mwindow = mwindow;
+ set_ctrl();
+@@ -1374,7 +1375,7 @@
+ }
+
+ RollTracksDown::RollTracksDown(MWindow *mwindow)
+- : BC_MenuItem(_("Roll tracks down"), _("Ctrl-Shift-Down"), DOWN)
++ : BC_MenuItem(_("Roll tracks down"), _("Ctrl+Shift+Down"), DOWN)
+ {
+ this->mwindow = mwindow;
+ set_ctrl();
+@@ -1409,7 +1410,7 @@
+
+
+ LoopPlayback::LoopPlayback(MWindow *mwindow)
+- : BC_MenuItem(_("Loop Playback"), _("Shift-L"), 'L')
++ : BC_MenuItem(_("Loop Playback"), _("Shift+L"), 'L')
+ {
+ this->mwindow = mwindow;
+ set_checked(mwindow->edl->local_session->loop_playback);
+@@ -1431,7 +1432,7 @@
+
+
+ AddSubttlTrack::AddSubttlTrack(MWindow *mwindow)
+- : BC_MenuItem(_("Add subttl"), _("Shift-Y"), 'Y')
++ : BC_MenuItem(_("Add subttl"), _("Shift+Y"), 'Y')
+ {
+ set_shift();
+ this->mwindow = mwindow;
+@@ -1445,7 +1446,7 @@
+ }
+
+ PasteSubttl::PasteSubttl(MWindow *mwindow)
+- : BC_MenuItem(_("paste subttl"), "y", 'y')
++ : BC_MenuItem(_("paste subttl"), "Y", 'y')
+ {
+ this->mwindow = mwindow;
+ }
+@@ -1459,7 +1460,7 @@
+
+
+ SetBRenderActive::SetBRenderActive(MWindow *mwindow)
+- : BC_MenuItem(_("Toggle background rendering"),_("Shift-G"),'G')
++ : BC_MenuItem(_("Toggle background rendering"),_("Shift+G"),'G')
+ {
+ this->mwindow = mwindow;
+ set_shift(1);
+@@ -1526,7 +1527,7 @@
+
+
+ CursorOnFrames::CursorOnFrames(MWindow *mwindow)
+- : BC_MenuItem(_("Align cursor on frames"),_("Ctrl-a"),'a')
++ : BC_MenuItem(_("Align cursor on frames"),_("Ctrl+F"),'f')
+ {
+ this->mwindow = mwindow;
+ set_checked(mwindow->edl->session->cursor_on_frames);
+@@ -1578,11 +1579,10 @@
+ }
+
+ SaveSettingsNow::SaveSettingsNow(MWindow *mwindow)
+- : BC_MenuItem(_("Save settings now"),_("Ctrl-Shift-S"),'S')
++ : BC_MenuItem(_("Save settings now"),_("Shift+S"),'s')
+ {
+ this->mwindow = mwindow;
+- set_ctrl(1);
+- set_shift(1);
++ set_shift(1); // set_ctrl(1);
+ }
+
+ int SaveSettingsNow::handle_event()
+@@ -1664,7 +1664,7 @@
+
+
+ ShowGWindow::ShowGWindow(MWindow *mwindow)
+- : BC_MenuItem(_("Show Overlays"), _("Ctrl-0"), '0')
++ : BC_MenuItem(_("Show Overlays"), _("Ctrl+0"), '0')
+ {
+ this->mwindow = mwindow;
+ set_ctrl(1);
+@@ -1728,7 +1728,7 @@
+ }
+
+ SplitX::SplitX(MWindow *mwindow)
+- : BC_MenuItem(_("Split X pane"), _("Ctrl-1"), '1')
++ : BC_MenuItem(_("Split X pane"), _("Ctrl+1"), '1')
+ {
+ this->mwindow = mwindow;
+ set_ctrl(1);
+@@ -1742,7 +1742,7 @@
+ }
+
+ SplitY::SplitY(MWindow *mwindow)
+- : BC_MenuItem(_("Split Y pane"), _("Ctrl-2"), '2')
++ : BC_MenuItem(_("Split Y pane"), _("Ctrl+2"), '2')
+ {
+ this->mwindow = mwindow;
+ set_ctrl(1);
+@@ -1826,7 +1826,7 @@
+ }
+
+ MixerViewer::MixerViewer(MixerItems *mixer_items)
+- : MixerItem(mixer_items, _("Mixer Viewer"), _("Shift-M"), 'M')
++ : MixerItem(mixer_items, _("Mixer Viewer"), _("Shift+M"), 'M')
+ {
+ set_shift(1);
+ }
+@@ -1839,7 +1839,7 @@
+ }
+
+ DragTileMixers::DragTileMixers(MixerItems *mixer_items)
+- : MixerItem(mixer_items, _("Drag Tile mixers"), "Alt-t", 't')
++ : MixerItem(mixer_items, _("Tile mixers"), "Alt+T", 't')
+ {
+ set_alt();
+ drag_box = 0;
+@@ -1933,7 +1933,7 @@
+ this->load_layout = load_layout;
+ if( hotkey ) {
+ char hot_txt[BCSTRLEN];
+- sprintf(hot_txt, _("Ctrl-Shift+F%d"), hotkey-KEY_F1+1);
++ sprintf(hot_txt, _("Ctrl+Shift+F%d"), hotkey-KEY_F1+1);
+ set_ctrl(); set_shift();
+ set_hotkey_text(hot_txt);
+ }
+diff -ur cinelerra-5.1/cinelerra/mwindowgui.C cinelerra-5.1_after/cinelerra/mwindowgui.C
+--- cinelerra-5.1/cinelerra/mwindowgui.C 2022-05-30 15:03:35.152305163 -0600
++++ cinelerra-5.1_after/cinelerra/mwindowgui.C 2023-09-28 11:55:17.355859745 -0600
+@@ -1092,27 +1092,38 @@
+
+ switch( get_keypress() ) {
+ case 'A':
+- if( !alt_down() ) {
+- if( !ctrl_down() || !shift_down() ) break;
++ if( !alt_down() && ctrl_down() ) {
+ mwindow->edl->tracks->clear_selected_edits();
+ draw_overlays(1);
+ result = 1;
+- break;
+- } // fall thru
++ }
++ break;
+ case 'a':
++// REM 2023
++/*
+ if( !alt_down() ) break;
+ stop_transport("MWindowGUI::keypress_event 1");
+ mwindow->nearest_auto_keyframe(shift_down(),
+ !ctrl_down() ? PLAY_FORWARD : PLAY_REVERSE);
+ result = 1;
++*/
++// REM END
++ if( ctrl_down() && alt_down() ) {
++ mwindow->select_edits(1);
++ result = 1;
++ }
+ break;
+
++// REM 2023
++/*
+ case '\'':
+ if( ctrl_down() && alt_down() ) {
+ mwindow->select_edits(1);
+ result = 1;
+ }
+ break;
++*/
++// REM END
+
+ case 'e':
+ if( ctrl_down() || alt_down() ) break;
+@@ -1123,8 +1134,8 @@
+ case 'k': case 'K':
+ if( alt_down() ) break;
+ stop_transport("MWindowGUI::keypress_event 2");
+- mwindow->nearest_plugin_keyframe(shift_down(),
+- !ctrl_down() ? PLAY_FORWARD : PLAY_REVERSE);
++// mwindow->nearest_plugin_keyframe(shift_down(),
++// !ctrl_down() ? PLAY_FORWARD : PLAY_REVERSE);
+ result = 1;
+ break;
+
+@@ -1204,10 +1215,23 @@
+ stop_transport("MWindowGUI::keypress_event 1");
+ mwindow->prev_edit_handle(shift_down());
+ }
++ // *** Shift+Left Arrow to jump to Previous Keyframe. START new code 2023 ***
++ else if( shift_down() ) {
++ stop_transport("MWindowGUI::keypress_event 1");
++ mwindow->nearest_plugin_keyframe( (!shift_down() && !ctrl_down()), PLAY_REVERSE );
++ }
++ // *** END new code 2023 ***
+ else
+ mwindow->move_left();
+ result = 1;
+ }
++ // *** Ctrl+Shift+Alt+Left Arrow to jump to Previous AutosKeyframe. START new code 2023 ***
++ if( ctrl_down() && shift_down() && alt_down() ) {
++ stop_transport("MWindowGUI::keypress_event 1");
++ mwindow->nearest_auto_keyframe( (!shift_down() && !ctrl_down() && !alt_down() ), PLAY_REVERSE );
++ result = 1;
++ }
++ // *** END new code 2023 ***
+ break;
+
+ case ',':
+@@ -1223,10 +1247,23 @@
+ stop_transport("MWindowGUI::keypress_event 2");
+ mwindow->next_edit_handle(shift_down());
+ }
++ // *** Shift+Right Arrow to jump to Next Keyframe. START new code 2023 ***
++ else if( shift_down() ) {
++ stop_transport("MWindowGUI::keypress_event 1");
++ mwindow->nearest_plugin_keyframe( (!shift_down() && !ctrl_down()), PLAY_FORWARD );
++ }
++ // *** END new code 2023 ***
+ else
+ mwindow->move_right();
+ result = 1;
+ }
++ // *** Ctrl+Shift+Alt+Right Arrow to jump to Next AutosKeyframe. START new code 2023 ***
++ if( ctrl_down() && shift_down() && alt_down() ) {
++ stop_transport("MWindowGUI::keypress_event 1");
++ mwindow->nearest_auto_keyframe( (!shift_down() && !ctrl_down() && !alt_down() ), PLAY_FORWARD );
++ result = 1;
++ }
++ // *** END new code 2023 ***
+ break;
+
+ case '.':
+diff -ur cinelerra-5.1/cinelerra/new.C cinelerra-5.1_after/cinelerra/new.C
+--- cinelerra-5.1/cinelerra/new.C 2023-01-24 11:13:37.499568388 -0700
++++ cinelerra-5.1_after/cinelerra/new.C 2023-09-28 11:55:17.355859745 -0600
+@@ -140,8 +140,9 @@
+ }
+
+ NewProject::NewProject(MWindow *mwindow)
+- : BC_MenuItem(_("New Project..."), "n", 'n'), New(mwindow)
++ : BC_MenuItem(_("New Project..."), "Ctrl+N", 'n'), New(mwindow)
+ {
++ set_ctrl(1);
+ }
+ NewProject::~NewProject()
+ {
+@@ -154,7 +155,7 @@
+ }
+
+ AppendTracks::AppendTracks(MWindow *mwindow)
+- : BC_MenuItem(_("Append to Project..."), "Shift-N", 'N'), New(mwindow)
++ : BC_MenuItem(_("Append to Project..."), "Shift+N", 'N'), New(mwindow)
+ {
+ set_shift(1);
+ }
+diff -ur cinelerra-5.1/cinelerra/playtransport.C cinelerra-5.1_after/cinelerra/playtransport.C
+--- cinelerra-5.1/cinelerra/playtransport.C 2022-03-15 21:47:37.376382165 -0600
++++ cinelerra-5.1_after/cinelerra/playtransport.C 2023-09-28 11:55:17.355859745 -0600
+@@ -273,12 +273,35 @@
+ break;
+ case 'j': case 'J':
+ if( alt_key ) command = SINGLE_FRAME_FWD;
++// IF pressed TWICE its toggle between FAST and NORMAL Rewind PLAY
++ if( !alt_key && !ctrl_key ) {
++ switch( curr_command ) {
++ case NORMAL_REWIND:
++ command = FAST_REWIND;
++ break;
++ default:
++ command = NORMAL_REWIND;
++ break;
++ }
++ }
+ break;
+ case 'k': case 'K':
+ if( alt_key ) command = SLOW_FWD;
++ if( !alt_key && !ctrl_key ) command = STOP;
+ break;
+ case 'l': case 'L':
+ if( alt_key ) command = NORMAL_FWD;
++// IF pressed TWICE its toggle between FAST and NORMAL Forward PLAY
++ if( !alt_key && !ctrl_key ) {
++ switch( curr_command ) {
++ case NORMAL_FWD:
++ command = FAST_FWD;
++ break;
++ default:
++ command = NORMAL_FWD;
++ break;
++ }
++ }
+ break;
+ case ':': case ';':
+ if( alt_key ) command = FAST_FWD;
+@@ -286,6 +309,12 @@
+ case 'm': case 'M':
+ if( alt_key ) command = STOP;
+ break;
++ case ',':
++ if( !alt_key && !ctrl_key && !shft_key ) command = SINGLE_FRAME_REWIND;
++ break;
++ case '.':
++ if( !alt_key && !ctrl_key && !shft_key ) command = SINGLE_FRAME_FWD;
++ break;
+ }
+ if( command >= 0 ) {
+ handle_transport(command, 0, use_inout, toggle_audio, loop_play, speed);
+@@ -409,7 +438,7 @@
+ FastReverseButton::FastReverseButton(MWindow *mwindow, PlayTransport *transport, int x, int y)
+ : PTransportButton(mwindow, transport, x, y, mwindow->theme->get_image_set("fastrev"))
+ {
+- set_tooltip(_("Fast reverse ( + or Alt-p )"));
++ set_tooltip(_("Fast reverse ( Numpad +, Alt+P )"));
+ // *** CONTEXT_HELP ***
+ context_help_set_keyword("Transport Controls");
+ }
+@@ -424,7 +453,7 @@
+ ReverseButton::ReverseButton(MWindow *mwindow, PlayTransport *transport, int x, int y)
+ : PTransportButton(mwindow, transport, x, y, mwindow->theme->get_image_set("reverse"))
+ {
+- set_tooltip(_("Normal reverse ( 6 or Alt-o )"));
++ set_tooltip(_("Normal reverse ( Numpad 6, Alt+O, 'J' )"));
+ // *** CONTEXT_HELP ***
+ context_help_set_keyword("Transport Controls");
+ }
+@@ -439,7 +468,7 @@
+ FrameReverseButton::FrameReverseButton(MWindow *mwindow, PlayTransport *transport, int x, int y)
+ : PTransportButton(mwindow, transport, x, y, mwindow->theme->get_image_set("framerev"))
+ {
+- set_tooltip(_("Frame reverse ( 4 or Alt-u )"));
++ set_tooltip(_("Frame reverse ( Numpad 4, Alt+U, ',' )"));
+ // *** CONTEXT_HELP ***
+ context_help_set_keyword("Transport Controls");
+ }
+@@ -456,7 +485,7 @@
+ PlayButton::PlayButton(MWindow *mwindow, PlayTransport *transport, int x, int y)
+ : PTransportButton(mwindow, transport, x, y, mwindow->theme->get_image_set("play"))
+ {
+- set_tooltip(_("Normal forward ( 3 or Alt-l )"));
++ set_tooltip(_("Normal forward ( Numpad 3, Alt+L, 'L' )"));
+ // *** CONTEXT_HELP ***
+ context_help_set_keyword("Transport Controls");
+ }
+@@ -473,7 +502,7 @@
+ FramePlayButton::FramePlayButton(MWindow *mwindow, PlayTransport *transport, int x, int y)
+ : PTransportButton(mwindow, transport, x, y, mwindow->theme->get_image_set("framefwd"))
+ {
+- set_tooltip(_("Frame forward ( 1 or Alt-j )"));
++ set_tooltip(_("Frame forward ( Numpad 1, Alt+J, '.' )"));
+ // *** CONTEXT_HELP ***
+ context_help_set_keyword("Transport Controls");
+ }
+@@ -490,7 +519,7 @@
+ FastPlayButton::FastPlayButton(MWindow *mwindow, PlayTransport *transport, int x, int y)
+ : PTransportButton(mwindow, transport, x, y, mwindow->theme->get_image_set("fastfwd"))
+ {
+- set_tooltip(_("Fast forward ( Enter or Alt-; )"));
++ set_tooltip(_("Fast forward ( Numpad Enter, Alt+; )"));
+ // *** CONTEXT_HELP ***
+ context_help_set_keyword("Transport Controls");
+ }
+@@ -518,7 +547,7 @@
+ StopButton::StopButton(MWindow *mwindow, PlayTransport *transport, int x, int y)
+ : PTransportButton(mwindow, transport, x, y, mwindow->theme->get_image_set("stop"))
+ {
+- set_tooltip(_("Stop ( 0 or Alt-m )"));
++ set_tooltip(_("Stop ( Numpad 0, Alt+M, 'K' )"));
+ // *** CONTEXT_HELP ***
+ context_help_set_keyword("Transport Controls");
+ }
+diff -ur cinelerra-5.1/cinelerra/preferencesthread.C cinelerra-5.1_after/cinelerra/preferencesthread.C
+--- cinelerra-5.1/cinelerra/preferencesthread.C 2022-03-15 21:47:37.379382184 -0600
++++ cinelerra-5.1_after/cinelerra/preferencesthread.C 2023-09-28 11:55:17.356859758 -0600
+@@ -71,7 +71,7 @@
+
+
+ PreferencesMenuitem::PreferencesMenuitem(MWindow *mwindow)
+- : BC_MenuItem(_("Preferences..."), _("Shift-P"), 'P')
++ : BC_MenuItem(_("Preferences..."), _("Shift+P"), 'P')
+ {
+ this->mwindow = mwindow;
+
+diff -ur cinelerra-5.1/cinelerra/proxy.C cinelerra-5.1_after/cinelerra/proxy.C
+--- cinelerra-5.1/cinelerra/proxy.C 2022-03-15 21:47:37.380382190 -0600
++++ cinelerra-5.1_after/cinelerra/proxy.C 2023-09-28 11:55:17.356859758 -0600
+@@ -52,7 +52,7 @@
+ #define MAX_SCALE 16
+
+ ProxyMenuItem::ProxyMenuItem(MWindow *mwindow)
+- : BC_MenuItem(_("Proxy settings..."), _("Alt-r"), 'r')
++ : BC_MenuItem(_("Proxy settings..."), _("Alt+R"), 'r')
+ {
+ this->mwindow = mwindow;
+ set_alt();
+diff -ur cinelerra-5.1/cinelerra/quit.C cinelerra-5.1_after/cinelerra/quit.C
+--- cinelerra-5.1/cinelerra/quit.C 2022-03-15 21:47:37.380382190 -0600
++++ cinelerra-5.1_after/cinelerra/quit.C 2023-09-28 11:55:17.356859758 -0600
+@@ -41,8 +41,9 @@
+
+
+ Quit::Quit(MWindow *mwindow)
+- : BC_MenuItem(_("Quit"), "q", 'q'), Thread()
++ : BC_MenuItem(_("Quit"), "Ctrl+Q", 'q'), Thread()
+ {
++ set_ctrl(1);
+ this->mwindow = mwindow;
+ }
+
+diff -ur cinelerra-5.1/cinelerra/record.C cinelerra-5.1_after/cinelerra/record.C
+--- cinelerra-5.1/cinelerra/record.C 2022-03-15 21:47:37.381382196 -0600
++++ cinelerra-5.1_after/cinelerra/record.C 2023-09-28 11:55:17.356859758 -0600
+@@ -86,7 +86,7 @@
+
+
+ RecordMenuItem::RecordMenuItem(MWindow *mwindow)
+- : BC_MenuItem(_("Record..."), "r", 'r')
++ : BC_MenuItem(_("Record..."), "R", 'r')
+ {
+ this->mwindow = mwindow;
+ record = new Record(mwindow, this);
+diff -ur cinelerra-5.1/cinelerra/render.C cinelerra-5.1_after/cinelerra/render.C
+--- cinelerra-5.1/cinelerra/render.C 2023-06-28 10:24:09.242079933 -0600
++++ cinelerra-5.1_after/cinelerra/render.C 2023-09-28 11:55:17.356859758 -0600
+@@ -83,7 +83,7 @@
+
+
+ RenderItem::RenderItem(MWindow *mwindow)
+- : BC_MenuItem(_("Render..."), _("Shift-R"), 'R')
++ : BC_MenuItem(_("Render..."), _("Shift+R"), 'R')
+ {
+ this->mwindow = mwindow;
+ set_shift(1);
+diff -ur cinelerra-5.1/cinelerra/savefile.C cinelerra-5.1_after/cinelerra/savefile.C
+--- cinelerra-5.1/cinelerra/savefile.C 2022-03-15 21:47:37.385382220 -0600
++++ cinelerra-5.1_after/cinelerra/savefile.C 2023-09-28 11:55:17.356859758 -0600
+@@ -40,7 +40,7 @@
+
+
+ SaveBackup::SaveBackup(MWindow *mwindow)
+- : BC_MenuItem(_("Save backup"), "b", 'b')
++ : BC_MenuItem(_("Save backup"), "B", 'b')
+ {
+ this->mwindow = mwindow;
+ }
+@@ -52,8 +52,9 @@
+ }
+
+
+-Save::Save(MWindow *mwindow) : BC_MenuItem(_("Save"), "s", 's')
++Save::Save(MWindow *mwindow) : BC_MenuItem(_("Save"), "Ctrl+S", 's')
+ {
++ set_ctrl(1);
+ this->mwindow = mwindow;
+ quit_now = 0;
+ }
+@@ -87,8 +88,9 @@
+ }
+
+ SaveAs::SaveAs(MWindow *mwindow)
+- : BC_MenuItem(_("Save as..."), "Shift-S", 'S'), Thread()
++ : BC_MenuItem(_("Save as..."), "Ctrl+Shift+S", 'S'), Thread()
+ {
++ set_ctrl(1);
+ set_shift(1);
+ this->mwindow = mwindow;
+ quit_now = 0;
+@@ -216,7 +218,7 @@
+ }
+
+ SaveProject::SaveProject(MWindow *mwindow)
+- : BC_MenuItem(_("Export Project..."), "Alt-s", 's'), Thread()
++ : BC_MenuItem(_("Export Project..."), "Alt+S", 's'), Thread()
+ {
+ set_alt(1);
+ this->mwindow = mwindow;
+@@ -257,10 +259,10 @@
+
+
+ SaveSession::SaveSession(MWindow *mwindow)
+- : BC_MenuItem(_("Save Session"),_("Ctrl-s"),'s')
++ : BC_MenuItem(_("Save Session"))
+ {
+ this->mwindow = mwindow;
+- set_ctrl(1);
++// set_ctrl(1);
+ }
+
+ int SaveSession::handle_event()
+diff -ur cinelerra-5.1/cinelerra/setformat.C cinelerra-5.1_after/cinelerra/setformat.C
+--- cinelerra-5.1/cinelerra/setformat.C 2023-01-24 11:13:37.500568399 -0700
++++ cinelerra-5.1_after/cinelerra/setformat.C 2023-09-28 11:55:17.357859770 -0600
+@@ -48,7 +48,7 @@
+
+
+ SetFormat::SetFormat(MWindow *mwindow)
+- : BC_MenuItem(_("Format..."), _("Shift-F"), 'F')
++ : BC_MenuItem(_("Format..."), _("Shift+F"), 'F')
+ {
+ set_shift(1);
+ this->mwindow = mwindow;
+diff -ur cinelerra-5.1/cinelerra/swindow.C cinelerra-5.1_after/cinelerra/swindow.C
+--- cinelerra-5.1/cinelerra/swindow.C 2023-02-09 09:50:37.265383255 -0700
++++ cinelerra-5.1_after/cinelerra/swindow.C 2023-09-28 11:55:17.357859770 -0600
+@@ -1106,7 +1106,7 @@
+
+
+ SubttlSWin::SubttlSWin(MWindow *mwindow)
+- : BC_MenuItem(_("SubTitle..."), _("Alt-y"), 'y')
++ : BC_MenuItem(_("SubTitle..."), _("Alt+Y"), 'y')
+ {
+ set_alt();
+ this->mwindow = mwindow;
+diff -ur cinelerra-5.1/guicast/bcfilebox.C cinelerra-5.1_after/guicast/bcfilebox.C
+--- cinelerra-5.1/guicast/bcfilebox.C 2022-03-15 21:47:37.422382444 -0600
++++ cinelerra-5.1_after/guicast/bcfilebox.C 2023-09-28 15:19:16.470367060 -0600
+@@ -767,6 +767,7 @@
+ int BC_FileBox::keypress_event()
+ {
+ switch(get_keypress()) {
++/*
+ case 'a':
+ if( !ctrl_down() ) break;
+ refresh(0, 1);
+@@ -775,6 +776,19 @@
+ if( !ctrl_down() ) break;
+ refresh(0, 0);
+ return 1;
++*/
++ // *** START new code 2023 ***
++ case 'a':
++ case 'A':
++ if( ctrl_down() && !shift_down() && !alt_down() ) {
++ refresh(0, 1); // Select All
++ return 1;
++ }
++ if( ctrl_down() && shift_down() && !alt_down() ) {
++ refresh(0, 0); // Deselect All
++ return 1;
++ }
++ // *** END new code 2023 ***
+ case 'w':
+ if( !ctrl_down() ) break;
+ set_done(1);