From: Good Guy Date: Thu, 28 Sep 2023 22:19:32 +0000 (-0600) Subject: alternative shortcuts; cd cinelerra-5.1; patch -p1 -i alt_shortcuts.patch X-Git-Tag: 2023-09~1 X-Git-Url: https://cinelerra-gg.org/git/?a=commitdiff_plain;h=5ba1e197e79774faf8b1ff3ea96728fd9a0e4940;p=goodguy%2Fcinelerra.git alternative shortcuts; cd cinelerra-5.1; patch -p1 -i alt_shortcuts.patch --- diff --git a/cinelerra-5.1/alt_shortcuts.patch b/cinelerra-5.1/alt_shortcuts.patch new file mode 100644 index 00000000..3c03efe3 --- /dev/null +++ b/cinelerra-5.1/alt_shortcuts.patch @@ -0,0 +1,1508 @@ +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 + + 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);