Credit MEHW - BT 656 fixes compile using latest Vulkan header files v1.3.280.0
[goodguy/cinelerra.git] / cinelerra-5.1 / alt_shortcuts.patch
1 diff -ur cinelerra-5.1/cinelerra/assetpopup.C cinelerra-5.1_after/cinelerra/assetpopup.C
2 --- cinelerra-5.1/cinelerra/assetpopup.C        2022-03-15 21:47:37.298381693 -0600
3 +++ cinelerra-5.1_after/cinelerra/assetpopup.C  2023-09-28 11:55:17.347859646 -0600
4 @@ -563,10 +563,11 @@
5  }
6  
7  AssetPopupLoadFile::AssetPopupLoadFile(MWindow *mwindow, AWindowGUI *gui)
8 - : BC_MenuItem(_("Load files..."), "o", 'o')
9 + : BC_MenuItem(_("Load files..."), "Ctrl+O", 'o')
10  {
11         this->mwindow = mwindow;
12         this->gui = gui;
13 +       set_ctrl(1);
14  }
15  
16  AssetPopupLoadFile::~AssetPopupLoadFile()
17 diff -ur cinelerra-5.1/cinelerra/awindowgui.C cinelerra-5.1_after/cinelerra/awindowgui.C
18 --- cinelerra-5.1/cinelerra/awindowgui.C        2023-02-09 09:50:37.229375332 -0700
19 +++ cinelerra-5.1_after/cinelerra/awindowgui.C  2023-09-28 11:55:17.348859658 -0600
20 @@ -1890,8 +1890,8 @@
21                 tip_info = !tip_info ? 1 : 0;
22                 if( !tip_info ) hide_tip_info();
23                 return 1;
24 -       case 'o':
25 -               if( !ctrl_down() && !shift_down() ) {
26 +       case 'o':       // Ctrl+O (Oscar letter)
27 +               if( ctrl_down() && !shift_down() ) {
28                         assetlist_menu->load_file->handle_event();
29                         return 1;
30                 }
31 @@ -3622,7 +3622,7 @@
32  }
33  
34  AWindowListFormat::AWindowListFormat(MWindow *mwindow, AWindowGUI *gui)
35 - : BC_MenuItem("","v",'v')
36 + : BC_MenuItem("","V",'v')
37  {
38         this->mwindow = mwindow;
39         this->gui = gui;
40 diff -ur cinelerra-5.1/cinelerra/batchrender.C cinelerra-5.1_after/cinelerra/batchrender.C
41 --- cinelerra-5.1/cinelerra/batchrender.C       2023-02-09 09:50:37.229375332 -0700
42 +++ cinelerra-5.1_after/cinelerra/batchrender.C 2023-09-28 11:55:17.349859671 -0600
43 @@ -69,7 +69,7 @@
44  };
45  
46  BatchRenderMenuItem::BatchRenderMenuItem(MWindow *mwindow)
47 - : BC_MenuItem(_("Batch Render..."), _("Shift-B"), 'B')
48 + : BC_MenuItem(_("Batch Render..."), _("Shift+B"), 'B')
49  {
50         set_shift(1);
51         this->mwindow = mwindow;
52 @@ -1100,7 +1100,7 @@
53   : BC_GenericButton(x, y, _("Save Jobs"))
54  {
55         this->thread = thread;
56 -       set_tooltip(_("Save a Batch Render List"));
57 +       set_tooltip(_("Save a Batch Render List (Ctrl+S)"));
58         gui = 0;
59         startup_lock = new Mutex("BatchRenderSaveList::startup_lock");
60  }
61 @@ -1166,8 +1166,13 @@
62  }
63  
64  int BatchRenderSaveList::keypress_event() {
65 -       if( get_keypress() == 's' ||
66 -           get_keypress() == 'S' ) return handle_event();
67 +// Ctrl+S pressed?
68 +       switch( get_keypress() ) {
69 +               case 's':
70 +               case 'S':
71 +                       if( ctrl_down() && !alt_down() && !shift_down() ) return handle_event();
72 +               break;
73 +       }
74         return context_help_check_and_show();
75  }
76  
77 @@ -1179,7 +1184,7 @@
78      Thread()
79  {
80         this->thread = thread;
81 -       set_tooltip(_("Load a previously saved Batch Render List"));
82 +       set_tooltip(_("Load a previously saved Batch Render List (Ctrl+O)"));
83         gui = 0;
84         startup_lock = new Mutex("BatchRenderLoadList::startup_lock");
85  }
86 @@ -1247,8 +1252,13 @@
87  }
88  
89  int BatchRenderLoadList::keypress_event() {
90 -       if( get_keypress() == 'o' ||
91 -           get_keypress() == 'O' ) return handle_event();
92 +// Ctrl+O pressed?
93 +       switch( get_keypress() ) {
94 +               case 'o':
95 +               case 'O':
96 +                       if( ctrl_down() && !alt_down() && !shift_down() ) return handle_event();
97 +               break;
98 +       }
99         return context_help_check_and_show();
100  }
101  
102 diff -ur cinelerra-5.1/cinelerra/bdcreate.C cinelerra-5.1_after/cinelerra/bdcreate.C
103 --- cinelerra-5.1/cinelerra/bdcreate.C  2023-02-09 09:50:37.229375332 -0700
104 +++ cinelerra-5.1_after/cinelerra/bdcreate.C    2023-09-28 11:55:17.349859671 -0600
105 @@ -122,10 +122,8 @@
106  const int CreateBD_Thread::BD_INTERLACE_MODE = ILACE_MODE_NOTINTERLACED;
107  
108  CreateBD_MenuItem::CreateBD_MenuItem(MWindow *mwindow)
109 - : BC_MenuItem(_("BD Render..."), _("Ctrl-Shift-D"), 'D')
110 + : BC_MenuItem(_("BD Render..."))
111  {
112 -       set_ctrl(1);
113 -       set_shift(1);
114         this->mwindow = mwindow;
115  }
116  
117 diff -ur cinelerra-5.1/cinelerra/canvas.C cinelerra-5.1_after/cinelerra/canvas.C
118 --- cinelerra-5.1/cinelerra/canvas.C    2022-03-15 21:47:37.304381729 -0600
119 +++ cinelerra-5.1_after/cinelerra/canvas.C      2023-09-28 11:55:17.350859683 -0600
120 @@ -1025,7 +1025,7 @@
121  
122  
123  CanvasPopupCameraKeyframe::CanvasPopupCameraKeyframe(Canvas *canvas)
124 - : BC_MenuItem(_("Camera keyframe"), _("Shift-F11"), KEY_F11)
125 + : BC_MenuItem(_("Camera keyframe"), _("Shift+F11"), KEY_F11)
126  {
127         this->canvas = canvas;
128         set_shift(1);
129 @@ -1037,7 +1037,7 @@
130  }
131  
132  CanvasPopupProjectorKeyframe::CanvasPopupProjectorKeyframe(Canvas *canvas)
133 - : BC_MenuItem(_("Projector keyframe"), _("Shift-F12"), KEY_F12)
134 + : BC_MenuItem(_("Projector keyframe"), _("Shift+F12"), KEY_F12)
135  {
136         this->canvas = canvas;
137         set_shift(1);
138 @@ -1062,7 +1062,7 @@
139  
140  
141  CanvasFullScreenItem::CanvasFullScreenItem(Canvas *canvas)
142 - : BC_MenuItem(_("Fullscreen"), "f", 'f')
143 + : BC_MenuItem(_("Fullscreen"), "F", 'f')
144  {
145         this->canvas = canvas;
146  }
147 diff -ur cinelerra-5.1/cinelerra/channelinfo.C cinelerra-5.1_after/cinelerra/channelinfo.C
148 --- cinelerra-5.1/cinelerra/channelinfo.C       2023-02-09 09:50:37.229375332 -0700
149 +++ cinelerra-5.1_after/cinelerra/channelinfo.C 2023-09-28 11:55:17.350859683 -0600
150 @@ -1815,7 +1815,7 @@
151  }
152  
153  ChannelScan::ChannelScan(MWindow *mwindow)
154 - : BC_MenuItem(_("Scan..."), _("Ctrl-Alt-s"), 's')
155 + : BC_MenuItem(_("Scan..."), _("Ctrl+Alt+S"), 's')
156  {
157         set_ctrl();
158         set_alt();
159 diff -ur cinelerra-5.1/cinelerra/convert.C cinelerra-5.1_after/cinelerra/convert.C
160 --- cinelerra-5.1/cinelerra/convert.C   2022-03-15 21:47:37.307381747 -0600
161 +++ cinelerra-5.1_after/cinelerra/convert.C     2023-09-28 11:55:17.351859696 -0600
162 @@ -637,7 +637,7 @@
163  
164  
165  ConvertMenuItem::ConvertMenuItem(MWindow *mwindow)
166 - : BC_MenuItem(_("Transcode..."),  _("Alt-e"), 'e')
167 + : BC_MenuItem(_("Transcode..."),  _("Alt+E"), 'e')
168  {
169         this->mwindow = mwindow;
170         set_alt();
171 diff -ur cinelerra-5.1/cinelerra/cwindowgui.C cinelerra-5.1_after/cinelerra/cwindowgui.C
172 --- cinelerra-5.1/cinelerra/cwindowgui.C        2022-03-15 21:47:37.308381753 -0600
173 +++ cinelerra-5.1_after/cinelerra/cwindowgui.C  2023-09-28 11:55:17.351859696 -0600
174 @@ -487,6 +487,8 @@
175                 }
176                 break;
177  
178 +// *** 2023. REM Original code. (editpanel.C take its place, for me)
179 +/*
180         case ',':
181                 if( !ctrl_down() && !alt_down() ) {
182                         unlock_window();
183 @@ -498,6 +500,8 @@
184                         result = 1;
185                 }
186                 break;
187 +*/
188 +// *** END rem***
189  
190         case RIGHT:
191                 if( !ctrl_down() ) {
192 @@ -516,6 +520,8 @@
193                 }
194                 break;
195  
196 +// *** 2023. REM Original code. (editpanel.C take its place, for me)
197 +/*
198         case '.':
199                 if( !ctrl_down() && !alt_down() ) {
200                         unlock_window();
201 @@ -527,6 +533,8 @@
202                         result = 1;
203                 }
204                 break;
205 +*/
206 +// *** END rem***
207         }
208  
209         if( !result && cwindow_operation < 0 && ctrl_down() && shift_down() ) {
210 diff -ur cinelerra-5.1/cinelerra/cwindowtool.C cinelerra-5.1_after/cinelerra/cwindowtool.C
211 --- cinelerra-5.1/cinelerra/cwindowtool.C       2023-02-09 09:50:37.231375772 -0700
212 +++ cinelerra-5.1_after/cinelerra/cwindowtool.C 2023-09-28 11:55:17.352859708 -0600
213 @@ -1645,7 +1645,7 @@
214         add_subwindow(t_bump = new CWindowCurveToggle(Projector_Crv_Bump, mwindow, this, x1, y));
215         t_bump->context_help_set_keyword("Bump autos");
216         x1 += button->get_w() + xs25;
217 -       y += yS(5);
218 +// 2023 REM    y += yS(5);
219         add_subwindow(add_keyframe = new CWindowProjectorAddKeyframe(mwindow, this, x1, y));
220         add_keyframe->context_help_set_keyword("Using Autos");
221         x1 += add_keyframe->get_w() + xs15;
222 @@ -1910,7 +1910,7 @@
223  {
224         this->mwindow = mwindow;
225         this->gui = gui;
226 -       set_tooltip(_("Add Keyframe: Shift-F12"));
227 +       set_tooltip(_("Add Keyframe: Shift+F12"));
228  }
229  
230  int CWindowProjectorAddKeyframe::handle_event()
231 diff -ur cinelerra-5.1/cinelerra/dvdcreate.C cinelerra-5.1_after/cinelerra/dvdcreate.C
232 --- cinelerra-5.1/cinelerra/dvdcreate.C 2023-06-28 10:24:09.241079904 -0600
233 +++ cinelerra-5.1_after/cinelerra/dvdcreate.C   2023-09-28 11:55:17.353859720 -0600
234 @@ -117,9 +117,8 @@
235  
236  
237  CreateDVD_MenuItem::CreateDVD_MenuItem(MWindow *mwindow)
238 - : BC_MenuItem(_("DVD Render..."), _("Alt-d"), 'd')
239 + : BC_MenuItem(_("DVD Render..."))
240  {
241 -       set_alt(1);
242         this->mwindow = mwindow;
243  }
244  
245 diff -ur cinelerra-5.1/cinelerra/editpanel.C cinelerra-5.1_after/cinelerra/editpanel.C
246 --- cinelerra-5.1/cinelerra/editpanel.C 2023-02-09 09:50:37.245378853 -0700
247 +++ cinelerra-5.1_after/cinelerra/editpanel.C   2023-09-28 11:55:17.354859733 -0600
248 @@ -484,7 +484,7 @@
249  {
250         this->mwindow = mwindow;
251         this->panel = panel;
252 -       set_tooltip(_("Toggle label at current position ( l )"));
253 +       set_tooltip(_("Toggle label at current position ( ' )")); // single quote
254  // *** CONTEXT_HELP ***
255         context_help_set_keyword("Labels");
256  }
257 @@ -494,7 +494,7 @@
258  }
259  int EditLabelbutton::keypress_event()
260  {
261 -       if( get_keypress() == 'l' && !alt_down() )
262 +       if( get_keypress() == '\'' && !alt_down() )  // single quote
263                 return handle_event();
264         return context_help_check_and_show();
265  }
266 @@ -511,7 +511,7 @@
267  {
268         this->mwindow = mwindow;
269         this->panel = panel;
270 -       set_tooltip(_("Next label ( ctrl -> )"));
271 +       set_tooltip(_("Next label ( Ctrl+Right Arrow )"));
272  // *** CONTEXT_HELP ***
273         context_help_set_keyword("Labels");
274  }
275 @@ -547,7 +547,7 @@
276  {
277         this->mwindow = mwindow;
278         this->panel = panel;
279 -       set_tooltip(_("Previous label ( ctrl <- )"));
280 +       set_tooltip(_("Previous label ( Ctrl+Left Arrow )"));
281  // *** CONTEXT_HELP ***
282         context_help_set_keyword("Labels");
283  }
284 @@ -583,7 +583,7 @@
285  {
286         this->mwindow = mwindow;
287         this->panel = panel;
288 -       set_tooltip(_("Previous edit (alt <- )"));
289 +       set_tooltip(_("Previous edit ( Alt+Left Arrow, 'A' )"));
290  // *** CONTEXT_HELP ***
291         context_help_set_keyword("Snapping while Cutting and Dragging");
292  }
293 @@ -594,7 +594,7 @@
294  {
295         if( alt_down() ) {
296                 int key = get_keypress();
297 -               if( (key == LEFT || key == ',') && !ctrl_down() ) {
298 +               if( key == LEFT && !ctrl_down() ) {
299                         panel->panel_prev_edit(0);
300                         return 1;
301                 }
302 @@ -603,6 +603,13 @@
303                         return 1;
304                 }
305         }
306 +       else {
307 +               int key = get_keypress();
308 +               if( key == 'a' && !ctrl_down() && !shift_down() ) {
309 +                       panel->panel_prev_edit(0);
310 +                       return 1;
311 +               }
312 +       }
313         return context_help_check_and_show();
314  }
315  int EditPrevEdit::handle_event()
316 @@ -619,7 +626,7 @@
317  {
318         this->mwindow = mwindow;
319         this->panel = panel;
320 -       set_tooltip(_("Next edit ( alt -> )"));
321 +       set_tooltip(_("Next edit ( Alt+Right Arrow, 'S' )"));
322  // *** CONTEXT_HELP ***
323         context_help_set_keyword("Snapping while Cutting and Dragging");
324  }
325 @@ -630,7 +637,7 @@
326  {
327         if( alt_down() ) {
328                 int key = get_keypress();
329 -               if( (key == RIGHT || key == '.') && !ctrl_down() ) {
330 +               if( key == RIGHT && !ctrl_down() ) {
331                         panel->panel_next_edit(0);
332                         return 1;
333                 }
334 @@ -639,6 +646,13 @@
335                         return 1;
336                 }
337         }
338 +       else {
339 +               int key = get_keypress();
340 +               if( key == 's' && !ctrl_down() && !shift_down() ) {
341 +                       panel->panel_next_edit(0);
342 +                       return 1;
343 +               }
344 +       }
345         return context_help_check_and_show();
346  }
347  int EditNextEdit::handle_event()
348 @@ -654,7 +668,7 @@
349  {
350         this->mwindow = mwindow;
351         this->panel = panel;
352 -       set_tooltip(_("Copy ( c )"));
353 +       set_tooltip(_("Copy ( C )"));
354  // *** CONTEXT_HELP ***
355         context_help_set_keyword("Cut and Paste Editing");
356  }
357 @@ -683,7 +697,7 @@
358  {
359         this->mwindow = mwindow;
360         this->panel = panel;
361 -       set_tooltip(_("Overwrite ( b )"));
362 +       set_tooltip(_("Overwrite ( B )"));
363  // *** CONTEXT_HELP ***
364         context_help_set_keyword("Two Screen Editing");
365  }
366 @@ -713,7 +727,7 @@
367  {
368         this->mwindow = mwindow;
369         this->panel = panel;
370 -       set_tooltip(_("In point ( [ or < )"));
371 +       set_tooltip(_("In point ( '[', '<', 'I' )"));
372  // *** CONTEXT_HELP ***
373         context_help_set_keyword("In\\/Out Points");
374  }
375 @@ -735,7 +749,7 @@
376                 }
377         }
378         else if( !alt_down() ) {
379 -               if( key == '[' || key == '<' ) {
380 +               if( key == '[' || key == '<' || key == 'i' ) {
381                         panel->panel_set_inpoint();
382                         return 1;
383                 }
384 @@ -750,7 +764,7 @@
385  {
386         this->mwindow = mwindow;
387         this->panel = panel;
388 -       set_tooltip(_("Out point ( ] or > )"));
389 +       set_tooltip(_("Out point ( ']', '>', 'O' )"));
390  // *** CONTEXT_HELP ***
391         context_help_set_keyword("In\\/Out Points");
392  }
393 @@ -772,7 +786,7 @@
394                 }
395         }
396         else if( !alt_down() ) {
397 -               if( key == ']' || key == '>' ) {
398 +               if( key == ']' || key == '>' || key == 'o' ) {
399                         panel->panel_set_outpoint();
400                         return 1;
401                 }
402 @@ -786,7 +800,7 @@
403  {
404         this->mwindow = mwindow;
405         this->panel = panel;
406 -       set_tooltip(_("Splice ( v )"));
407 +       set_tooltip(_("Splice ( V )"));
408  // *** CONTEXT_HELP ***
409         context_help_set_keyword("Two Screen Editing");
410  }
411 @@ -815,7 +829,7 @@
412  {
413         this->mwindow = mwindow;
414         this->panel = panel;
415 -       set_tooltip(_("To clip ( i )"));
416 +       set_tooltip(_("To clip ( Ctrl+I )"));
417  // *** CONTEXT_HELP ***
418         context_help_set_keyword("Two Screen Editing");
419  }
420 @@ -831,8 +845,8 @@
421  int EditToClip::keypress_event()
422  {
423         if( alt_down() ) return context_help_check_and_show();
424 -       if( get_keypress() == 'i' ||
425 -           (panel->is_vwindow() && get_keypress() == 'I') ) {
426 +       if( (get_keypress() == 'i' && ctrl_down()) ||
427 +           (panel->is_vwindow() && (get_keypress() == 'I' && ctrl_down()) ) ) {
428                 handle_event();
429                 return 1;
430         }
431 @@ -845,7 +859,7 @@
432  {
433         this->mwindow = mwindow;
434         this->panel = panel;
435 -       set_tooltip(_("Split | Cut ( x )"));
436 +       set_tooltip(_("Split | Cut ( X )"));
437  // *** CONTEXT_HELP ***
438         context_help_set_keyword("Cut and Paste Editing");
439  }
440 @@ -873,7 +887,7 @@
441  {
442         this->mwindow = mwindow;
443         this->panel = panel;
444 -       set_tooltip(_("Paste ( v )"));
445 +       set_tooltip(_("Paste ( V )"));
446  // *** CONTEXT_HELP ***
447         context_help_set_keyword("Cut and Paste Editing");
448  }
449 @@ -899,7 +913,7 @@
450  {
451         this->mwindow = mwindow;
452         this->panel = panel;
453 -       set_tooltip(_("Fit selection to display ( f )"));
454 +       set_tooltip(_("Fit selection to display ( F )"));
455  // *** CONTEXT_HELP ***
456         context_help_set_keyword("Transport and Buttons Bar");
457  }
458 @@ -926,7 +940,7 @@
459  {
460         this->mwindow = mwindow;
461         this->panel = panel;
462 -       set_tooltip(_("Fit all autos to display ( Alt + f )"));
463 +       set_tooltip(_("Fit all autos to display ( Alt+F )"));
464  // *** CONTEXT_HELP ***
465         context_help_set_keyword("Using Autos");
466  }
467 @@ -1001,7 +1015,7 @@
468  {
469         this->mwindow = mwindow;
470         this->panel = panel;
471 -       set_tooltip(_("Generate keyframes while tweeking (j)"));
472 +       set_tooltip(_("Generate keyframes while tweeking ( G )"));
473  // *** CONTEXT_HELP ***
474         context_help_set_keyword("Generate Keyframes while Tweaking");
475  }
476 @@ -1015,7 +1029,7 @@
477  int KeyFrameButton::keypress_event()
478  {
479         int key = get_keypress();
480 -       if( key == 'j' && !ctrl_down() && !shift_down() && !alt_down() ) {
481 +       if( key == 'g' && !ctrl_down() && !shift_down() && !alt_down() ) {
482                 int value = get_value() ? 0 : 1;
483                 update(value);
484                 panel->panel_set_auto_keyframes(value);
485 @@ -1072,7 +1086,7 @@
486         this->mwindow = mwindow;
487         this->panel = panel;
488         mangoto = new ManualGoto(mwindow, panel);
489 -       set_tooltip(_("Manual goto ( g )"));
490 +       set_tooltip(_("Manual goto ( Ctrl+G )"));
491  // *** CONTEXT_HELP ***
492         context_help_set_keyword("Transport and Buttons Bar");
493  }
494 @@ -1088,7 +1102,7 @@
495  
496  int EditManualGoto::keypress_event()
497  {
498 -       if( get_keypress() == 'g' ) {
499 +       if( get_keypress() == 'g' && ctrl_down() ) {
500                 handle_event();
501                 return 1;
502         }
503 @@ -1104,7 +1118,7 @@
504  {
505          this->mwindow = mwindow;
506          this->panel = panel;
507 -        set_tooltip(_("Click to play (p)"));
508 +        set_tooltip(_("Click to play ( P )"));
509  // *** CONTEXT_HELP ***
510         context_help_set_keyword("Click to Play in Viewer and Compositor");
511  }
512 @@ -1132,7 +1146,7 @@
513  {
514         this->mwindow = mwindow;
515         this->panel = panel;
516 -       set_tooltip(_("Commercial ( shift A )"));
517 +       set_tooltip(_("Commercial ( Shift+A )"));
518  // *** CONTEXT_HELP ***
519         context_help_set_keyword("The commercial DB");
520  }
521 @@ -1174,7 +1188,7 @@
522  {
523         this->mwindow = mwindow;
524         this->panel = panel;
525 -       set_tooltip(_("Undo ( z or Ctrl-z)"));
526 +       set_tooltip(_("Undo ( 'Z', Ctrl+Z )"));
527  // *** CONTEXT_HELP ***
528         context_help_set_keyword("Transport and Buttons Bar");
529  }
530 @@ -1200,7 +1214,7 @@
531  {
532         this->mwindow = mwindow;
533         this->panel = panel;
534 -       set_tooltip(_("Redo ( shift Z )"));
535 +       set_tooltip(_("Redo ( Shift+Z )"));
536  // *** CONTEXT_HELP ***
537         context_help_set_keyword("Transport and Buttons Bar");
538  }
539 diff -ur cinelerra-5.1/cinelerra/editpopup.C cinelerra-5.1_after/cinelerra/editpopup.C
540 --- cinelerra-5.1/cinelerra/editpopup.C 2022-04-11 14:29:13.599769890 -0600
541 +++ cinelerra-5.1_after/cinelerra/editpopup.C   2023-09-28 11:55:17.354859733 -0600
542 @@ -147,7 +147,7 @@
543  }
544  
545  EditPopupClearSelect::EditPopupClearSelect(MWindow *mwindow, EditPopup *popup)
546 - : BC_MenuItem(_("Clear Select"),_("Ctrl-Shift-A"),'A')
547 + : BC_MenuItem(_("Clear Select"),_("Ctrl+Shift+A"),'A')
548  {
549         this->mwindow = mwindow;
550         this->popup = popup;
551 @@ -162,7 +162,7 @@
552  }
553  
554  EditPopupSelectEdits::EditPopupSelectEdits(MWindow *mwindow, EditPopup *popup)
555 - : BC_MenuItem(_("Select Edits"),_("Ctrl-Alt-'"),'\'')
556 + : BC_MenuItem(_("Select Edits"),_("Ctrl+Alt+A"),'a')
557  {
558         this->mwindow = mwindow;
559         this->popup = popup;
560 @@ -190,7 +190,7 @@
561  }
562  
563  EditPopupCopy::EditPopupCopy(MWindow *mwindow, EditPopup *popup)
564 - : BC_MenuItem(_("Copy"),_("Ctrl-c"),'c')
565 + : BC_MenuItem(_("Copy"),_("Ctrl+C"),'c')
566  {
567         this->mwindow = mwindow;
568         this->popup = popup;
569 @@ -204,7 +204,7 @@
570  }
571  
572  EditPopupCopyPack::EditPopupCopyPack(MWindow *mwindow, EditPopup *popup)
573 - : BC_MenuItem(_("Copy pack"),_("Ctrl-Shift-C"),'C')
574 + : BC_MenuItem(_("Copy pack"),_("Ctrl+Shift+C"),'C')
575  {
576         this->mwindow = mwindow;
577         this->popup = popup;
578 @@ -219,7 +219,7 @@
579  }
580  
581  EditPopupCut::EditPopupCut(MWindow *mwindow, EditPopup *popup)
582 - : BC_MenuItem(_("Cut"),_("Ctrl-x"),'x')
583 + : BC_MenuItem(_("Cut"),_("Ctrl+X"),'x')
584  {
585         this->mwindow = mwindow;
586         this->popup = popup;
587 @@ -233,7 +233,7 @@
588  }
589  
590  EditPopupCutPack::EditPopupCutPack(MWindow *mwindow, EditPopup *popup)
591 - : BC_MenuItem(_("Cut pack"),_("Ctrl-Alt-z"),'z')
592 + : BC_MenuItem(_("Cut pack"),_("Ctrl+Alt+Z"),'z')
593  {
594         this->mwindow = mwindow;
595         this->popup = popup;
596 @@ -248,7 +248,7 @@
597  }
598  
599  EditPopupMute::EditPopupMute(MWindow *mwindow, EditPopup *popup)
600 - : BC_MenuItem(C_("Mute"),_("Ctrl-m"),'m')
601 + : BC_MenuItem(_("Mute"),_("Ctrl+M"),'m')
602  {
603         this->mwindow = mwindow;
604         this->popup = popup;
605 @@ -262,7 +262,7 @@
606  }
607  
608  EditPopupMutePack::EditPopupMutePack(MWindow *mwindow, EditPopup *popup)
609 - : BC_MenuItem(_("Mute pack"),_("Ctrl-Shift-M"),'M')
610 + : BC_MenuItem(_("Mute pack"),_("Ctrl+Shift+M"),'M')
611  {
612         this->mwindow = mwindow;
613         this->popup = popup;
614 @@ -277,7 +277,7 @@
615  }
616  
617  EditPopupPaste::EditPopupPaste(MWindow *mwindow, EditPopup *popup)
618 - : BC_MenuItem(_("Paste"),_("Ctrl-v"),'v')
619 + : BC_MenuItem(_("Paste"),_("Ctrl+V"),'v')
620  {
621         this->mwindow = mwindow;
622         this->popup = popup;
623 @@ -297,7 +297,7 @@
624  }
625  
626  EditPopupOverwrite::EditPopupOverwrite(MWindow *mwindow, EditPopup *popup)
627 - : BC_MenuItem(_("Overwrite"),_("Ctrl-b"),'b')
628 + : BC_MenuItem(_("Overwrite"),_("Ctrl+B"),'b')
629  {
630         this->mwindow = mwindow;
631         this->popup = popup;
632 @@ -317,7 +317,7 @@
633  }
634  
635  EditPopupOverwritePlugins::EditPopupOverwritePlugins(MWindow *mwindow, EditPopup *popup)
636 - : BC_MenuItem(_("Overwrite Plugins"),_("Ctrl-Shift-P"),'P')
637 + : BC_MenuItem(_("Overwrite Plugins"),_("Ctrl+Shift+P"),'P')
638  {
639         this->mwindow = mwindow;
640         this->popup = popup;
641 @@ -372,12 +372,11 @@
642  }
643  
644  EditPopupTimecode::EditPopupTimecode(MWindow *mwindow, EditPopup *popup)
645 - : BC_MenuItem(_("Timecode"),_("Ctrl-!"),'!')
646 + : BC_MenuItem(_("Timecode"),_("Ctrl+!"),'!')
647  {
648         this->mwindow = mwindow;
649         this->popup = popup;
650         set_ctrl(1);
651 -       set_shift(1);
652  }
653  
654  int EditPopupTimecode::handle_event()
655 diff -ur cinelerra-5.1/cinelerra/exportedl.C cinelerra-5.1_after/cinelerra/exportedl.C
656 --- cinelerra-5.1/cinelerra/exportedl.C 2023-01-28 12:41:13.742539792 -0700
657 +++ cinelerra-5.1_after/cinelerra/exportedl.C   2023-09-28 11:55:17.354859733 -0600
658 @@ -292,7 +292,7 @@
659  
660  
661  ExportEDLItem::ExportEDLItem(MWindow *mwindow)
662 - : BC_MenuItem(_("Export EDL..."), "Shift-E", 'E')
663 + : BC_MenuItem(_("Export EDL..."), "Shift+E", 'E')
664  {
665         this->mwindow = mwindow;
666         set_shift(1);
667 diff -ur cinelerra-5.1/cinelerra/gwindowgui.C cinelerra-5.1_after/cinelerra/gwindowgui.C
668 --- cinelerra-5.1/cinelerra/gwindowgui.C        2022-03-15 21:47:37.364382093 -0600
669 +++ cinelerra-5.1_after/cinelerra/gwindowgui.C  2023-09-28 11:55:17.354859733 -0600
670 @@ -324,11 +324,11 @@
671                         switch( ref ) {
672                         case NONAUTOTOGGLES_CAMERA_XYZ:
673                                 camera_xyz = toggle;
674 -                               accel = _("Shift-F1");
675 +                               accel = _("Shift+F1");
676                                 break;
677                         case NONAUTOTOGGLES_PROJECTOR_XYZ:
678                                 projector_xyz = toggle;
679 -                               accel = _("Shift-F2");
680 +                               accel = _("Shift+F2");
681                                 break;
682                         case NON_AUTOMATION_HARD_EDGES:
683                                 VFrame *vframe = mwindow->theme->hardedge_data;
684 diff -ur cinelerra-5.1/cinelerra/loadfile.C cinelerra-5.1_after/cinelerra/loadfile.C
685 --- cinelerra-5.1/cinelerra/loadfile.C  2023-02-09 09:50:37.250379954 -0700
686 +++ cinelerra-5.1_after/cinelerra/loadfile.C    2023-09-28 11:55:17.354859733 -0600
687 @@ -45,8 +45,9 @@
688  #include <string.h>
689  
690  Load::Load(MWindow *mwindow, MainMenu *mainmenu)
691 - : BC_MenuItem(_("Load files..."), "o", 'o')
692 + : BC_MenuItem(_("Load files..."), "Ctrl+O", 'o')
693  {
694 +       set_ctrl(1);
695         this->mwindow = mwindow;
696         this->mainmenu = mainmenu;
697         this->thread = 0;
698 diff -ur cinelerra-5.1/cinelerra/mainmenu.C cinelerra-5.1_after/cinelerra/mainmenu.C
699 --- cinelerra-5.1/cinelerra/mainmenu.C  2022-03-15 21:47:37.368382117 -0600
700 +++ cinelerra-5.1_after/cinelerra/mainmenu.C    2023-09-28 11:55:17.355859745 -0600
701 @@ -263,17 +263,17 @@
702         viewmenu->add_item(mask_automation = new ShowAutomation(mwindow, _("Mask"), "8", AUTOMATION_MASK));
703         viewmenu->add_item(speed_automation = new ShowAutomation(mwindow, _("Speed"), "9", AUTOMATION_SPEED));
704  
705 -       camera_x = new ShowAutomation(mwindow, _("Camera X"), "Ctrl-Shift-X", AUTOMATION_CAMERA_X);
706 +       camera_x = new ShowAutomation(mwindow, _("Camera X"), "Ctrl+Shift+X", AUTOMATION_CAMERA_X);
707         camera_x->set_ctrl();  camera_x->set_shift();   viewmenu->add_item(camera_x);
708 -       camera_y = new ShowAutomation(mwindow, _("Camera Y"), "Ctrl-Shift-Y", AUTOMATION_CAMERA_Y);
709 +       camera_y = new ShowAutomation(mwindow, _("Camera Y"), "Ctrl+Shift+Y", AUTOMATION_CAMERA_Y);
710         camera_y->set_ctrl();  camera_y->set_shift();   viewmenu->add_item(camera_y);
711 -       camera_z = new ShowAutomation(mwindow, _("Camera Z"), "Ctrl-Shift-Z", AUTOMATION_CAMERA_Z);
712 +       camera_z = new ShowAutomation(mwindow, _("Camera Z"), "Ctrl+Shift+Z", AUTOMATION_CAMERA_Z);
713         camera_z->set_ctrl();  camera_z->set_shift();  viewmenu->add_item(camera_z);
714 -       project_x = new ShowAutomation(mwindow, _("Projector X"), "Alt-Shift-X", AUTOMATION_PROJECTOR_X);
715 +       project_x = new ShowAutomation(mwindow, _("Projector X"), "Alt+Shift+X", AUTOMATION_PROJECTOR_X);
716         project_x->set_alt();  project_x->set_shift();  viewmenu->add_item(project_x);
717 -       project_y = new ShowAutomation(mwindow, _("Projector Y"), "Alt-Shift-Y", AUTOMATION_PROJECTOR_Y);
718 +       project_y = new ShowAutomation(mwindow, _("Projector Y"), "Alt+Shift+Y", AUTOMATION_PROJECTOR_Y);
719         project_y->set_alt();  project_y->set_shift();  viewmenu->add_item(project_y);
720 -       project_z = new ShowAutomation(mwindow, _("Projector Z"), "Alt-Shift-Z", AUTOMATION_PROJECTOR_Z);
721 +       project_z = new ShowAutomation(mwindow, _("Projector Z"), "Alt+Shift+Z", AUTOMATION_PROJECTOR_Z);
722         project_z->set_alt();  project_z->set_shift();  viewmenu->add_item(project_z);
723  
724         add_menu(windowmenu = new BC_Menu(_("Window")));
725 @@ -291,7 +291,7 @@
726         windowmenu->add_item(new TileWindows(mwindow,_("Tile right"),1));
727         windowmenu->add_item(new BC_MenuItem("-"));
728  
729 -       windowmenu->add_item(new TileWindows(mwindow,_("Default positions"),-1,_("Ctrl-P"),'p'));
730 +       windowmenu->add_item(new TileWindows(mwindow,_("Default positions"),-1,_("Ctrl+P"),'p'));
731         windowmenu->add_item(load_layout = new LoadLayout(mwindow, _("Load layout..."),LAYOUT_LOAD));
732         load_layout->create_objects();
733         windowmenu->add_item(save_layout = new LoadLayout(mwindow, _("Save layout..."),LAYOUT_SAVE));
734 @@ -639,7 +639,7 @@
735  
736  // ================================================= edit
737  
738 -Undo::Undo(MWindow *mwindow) : BC_MenuItem(_("Undo"), "z or Ctrl-z", 'z')
739 +Undo::Undo(MWindow *mwindow) : BC_MenuItem(_("Undo"), "Z, Ctrl+Z", 'z')
740  {
741         this->mwindow = mwindow;
742  }
743 @@ -658,7 +658,7 @@
744  }
745  
746  
747 -Redo::Redo(MWindow *mwindow) : BC_MenuItem(_("Redo"), _("Shift-Z"), 'Z')
748 +Redo::Redo(MWindow *mwindow) : BC_MenuItem(_("Redo"), _("Shift+Z"), 'Z')
749  {
750         set_shift(1);
751         this->mwindow = mwindow;
752 @@ -679,7 +679,7 @@
753  }
754  
755  CutKeyframes::CutKeyframes(MWindow *mwindow)
756 - : BC_MenuItem(_("Cut keyframes"), _("Shift-X"), 'X')
757 + : BC_MenuItem(_("Cut keyframes"), _("Shift+X"), 'X')
758  {
759         set_shift();
760         this->mwindow = mwindow;
761 @@ -693,7 +693,7 @@
762  }
763  
764  CopyKeyframes::CopyKeyframes(MWindow *mwindow)
765 - : BC_MenuItem(_("Copy keyframes"), _("Shift-C"), 'C')
766 + : BC_MenuItem(_("Copy keyframes"), _("Shift+C"), 'C')
767  {
768         set_shift();
769         this->mwindow = mwindow;
770 @@ -707,7 +707,7 @@
771  }
772  
773  PasteKeyframes::PasteKeyframes(MWindow *mwindow)
774 - : BC_MenuItem(_("Paste keyframes"), _("Shift-V"), 'V')
775 + : BC_MenuItem(_("Paste keyframes"), _("Shift+V"), 'V')
776  {
777         set_shift();
778         this->mwindow = mwindow;
779 @@ -721,7 +721,7 @@
780  }
781  
782  ClearKeyframes::ClearKeyframes(MWindow *mwindow)
783 - : BC_MenuItem(_("Clear keyframes"), _("Shift-Del"), DELETE)
784 + : BC_MenuItem(_("Clear keyframes"), _("Shift+Del"), DELETE)
785  {
786         set_shift();
787         this->mwindow = mwindow;
788 @@ -886,7 +886,7 @@
789  
790  
791  CutDefaultKeyframe::CutDefaultKeyframe(MWindow *mwindow)
792 - : BC_MenuItem(_("Cut default keyframe"), _("Alt-x"), 'x')
793 + : BC_MenuItem(_("Cut default keyframe"), _("Alt+X"), 'x')
794  {
795         set_alt();
796         this->mwindow = mwindow;
797 @@ -900,7 +900,7 @@
798  }
799  
800  CopyDefaultKeyframe::CopyDefaultKeyframe(MWindow *mwindow)
801 - : BC_MenuItem(_("Copy default keyframe"), _("Alt-c"), 'c')
802 + : BC_MenuItem(_("Copy default keyframe"), _("Alt+C"), 'c')
803  {
804         set_alt();
805         this->mwindow = mwindow;
806 @@ -914,7 +914,7 @@
807  }
808  
809  PasteDefaultKeyframe::PasteDefaultKeyframe(MWindow *mwindow)
810 - : BC_MenuItem(_("Paste default keyframe"), _("Alt-v"), 'v')
811 + : BC_MenuItem(_("Paste default keyframe"), _("Alt+V"), 'v')
812  {
813         set_alt();
814         this->mwindow = mwindow;
815 @@ -928,7 +928,7 @@
816  }
817  
818  ClearDefaultKeyframe::ClearDefaultKeyframe(MWindow *mwindow)
819 - : BC_MenuItem(_("Clear default keyframe"), _("Alt-Del"), DELETE)
820 + : BC_MenuItem(_("Clear default keyframe"), _("Alt+Del"), DELETE)
821  {
822         set_alt();
823         this->mwindow = mwindow;
824 @@ -942,7 +942,7 @@
825  }
826  
827  Cut::Cut(MWindow *mwindow)
828 - : BC_MenuItem(_("Split | Cut"), "x", 'x')
829 + : BC_MenuItem(_("Split | Cut"), "X", 'x')
830  {
831         this->mwindow = mwindow;
832  }
833 @@ -955,7 +955,7 @@
834  }
835  
836  Copy::Copy(MWindow *mwindow)
837 - : BC_MenuItem(_("Copy"), "c", 'c')
838 + : BC_MenuItem(_("Copy"), "C", 'c')
839  {
840         this->mwindow = mwindow;
841  }
842 @@ -968,7 +968,7 @@
843  }
844  
845  Paste::Paste(MWindow *mwindow)
846 - : BC_MenuItem(_("Paste"), "v", 'v')
847 + : BC_MenuItem(_("Paste"), "V", 'v')
848  {
849         this->mwindow = mwindow;
850  }
851 @@ -1024,7 +1024,7 @@
852  }
853  
854  PasteSilence::PasteSilence(MWindow *mwindow)
855 - : BC_MenuItem(_("Paste silence"), _("Shift-Space"), ' ')
856 + : BC_MenuItem(_("Paste silence"), _("Shift+Space"), ' ')
857  {
858         this->mwindow = mwindow;
859         set_shift();
860 @@ -1038,9 +1038,10 @@
861  }
862  
863  SelectAll::SelectAll(MWindow *mwindow)
864 - : BC_MenuItem(_("Select All"), "a", 'a')
865 + : BC_MenuItem(_("Select All"), "Ctrl+A", 'a')
866  {
867         this->mwindow = mwindow;
868 +       set_ctrl(1);
869  }
870  
871  int SelectAll::handle_event()
872 @@ -1072,7 +1073,7 @@
873         return 1;
874  }
875  
876 -ClearSelect::ClearSelect(MWindow *mwindow) : BC_MenuItem(_("Clear Select"),"Ctrl-Shift-A",'A')
877 +ClearSelect::ClearSelect(MWindow *mwindow) : BC_MenuItem(_("Clear Select"),"Ctrl+Shift+A",'A')
878  {
879         set_ctrl(1);
880         set_shift(1);
881 @@ -1109,7 +1110,7 @@
882  }
883  
884  MuteSelection::MuteSelection(MWindow *mwindow)
885 - : BC_MenuItem(_("Mute Region"), "m", 'm')
886 + : BC_MenuItem(_("Mute Region"), "M", 'm')
887  {
888         this->mwindow = mwindow;
889  }
890 @@ -1148,7 +1149,7 @@
891  // ============================================= audio
892  
893  AddAudioTrack::AddAudioTrack(MWindow *mwindow)
894 - : BC_MenuItem(_("Add track"), "t", 't')
895 + : BC_MenuItem(_("Add track"), "T", 't')
896  {
897         this->mwindow = mwindow;
898  }
899 @@ -1172,7 +1173,7 @@
900  }
901  
902  DefaultATransition::DefaultATransition(MWindow *mwindow)
903 - : BC_MenuItem(_("Default Transition"), "u", 'u')
904 + : BC_MenuItem(_("Default Transition"), "U", 'u')
905  {
906         this->mwindow = mwindow;
907  }
908 @@ -1216,7 +1217,7 @@
909  
910  
911  AddVideoTrack::AddVideoTrack(MWindow *mwindow)
912 - : BC_MenuItem(_("Add track"), _("Shift-T"), 'T')
913 + : BC_MenuItem(_("Add track"), _("Shift+T"), 'T')
914  {
915         set_shift();
916         this->mwindow = mwindow;
917 @@ -1257,7 +1258,7 @@
918  
919  
920  DefaultVTransition::DefaultVTransition(MWindow *mwindow)
921 - : BC_MenuItem(_("Default Transition"), _("Shift-U"), 'U')
922 + : BC_MenuItem(_("Default Transition"), _("Shift+U"), 'U')
923  {
924         set_shift();
925         this->mwindow = mwindow;
926 @@ -1298,7 +1299,7 @@
927  }
928  
929  DeleteFirstTrack::DeleteFirstTrack(MWindow *mwindow)
930 - : BC_MenuItem(_("Delete first track"), "Shift-D", 'D')
931 + : BC_MenuItem(_("Delete first track"), "Shift+D", 'D')
932  {
933         set_shift(1);
934         this->mwindow = mwindow;
935 @@ -1314,7 +1315,7 @@
936  }
937  
938  DeleteLastTrack::DeleteLastTrack(MWindow *mwindow)
939 - : BC_MenuItem(_("Delete last track"), "Ctrl-d", 'd')
940 + : BC_MenuItem(_("Delete last track"), "Ctrl+D", 'd')
941  {
942         set_ctrl(1);
943         this->mwindow = mwindow;
944 @@ -1330,7 +1331,7 @@
945  }
946  
947  MoveTracksUp::MoveTracksUp(MWindow *mwindow)
948 - : BC_MenuItem(_("Move tracks up"), _("Shift-Up"), UP)
949 + : BC_MenuItem(_("Move tracks up"), _("Shift+Up"), UP)
950  {
951         this->mwindow = mwindow;
952         set_shift();
953 @@ -1344,7 +1345,7 @@
954  }
955  
956  MoveTracksDown::MoveTracksDown(MWindow *mwindow)
957 - : BC_MenuItem(_("Move tracks down"), _("Shift-Down"), DOWN)
958 + : BC_MenuItem(_("Move tracks down"), _("Shift+Down"), DOWN)
959  {
960         this->mwindow = mwindow;
961         set_shift();
962 @@ -1359,7 +1360,7 @@
963  
964  
965  RollTracksUp::RollTracksUp(MWindow *mwindow)
966 - : BC_MenuItem(_("Roll tracks up"), _("Ctrl-Shift-Up"), UP)
967 + : BC_MenuItem(_("Roll tracks up"), _("Ctrl+Shift+Up"), UP)
968  {
969         this->mwindow = mwindow;
970         set_ctrl();
971 @@ -1374,7 +1375,7 @@
972  }
973  
974  RollTracksDown::RollTracksDown(MWindow *mwindow)
975 - : BC_MenuItem(_("Roll tracks down"), _("Ctrl-Shift-Down"), DOWN)
976 + : BC_MenuItem(_("Roll tracks down"), _("Ctrl+Shift+Down"), DOWN)
977  {
978         this->mwindow = mwindow;
979         set_ctrl();
980 @@ -1409,7 +1410,7 @@
981  
982  
983  LoopPlayback::LoopPlayback(MWindow *mwindow)
984 - : BC_MenuItem(_("Loop Playback"), _("Shift-L"), 'L')
985 + : BC_MenuItem(_("Loop Playback"), _("Shift+L"), 'L')
986  {
987         this->mwindow = mwindow;
988         set_checked(mwindow->edl->local_session->loop_playback);
989 @@ -1431,7 +1432,7 @@
990  
991  
992  AddSubttlTrack::AddSubttlTrack(MWindow *mwindow)
993 - : BC_MenuItem(_("Add subttl"), _("Shift-Y"), 'Y')
994 + : BC_MenuItem(_("Add subttl"), _("Shift+Y"), 'Y')
995  {
996         set_shift();
997         this->mwindow = mwindow;
998 @@ -1445,7 +1446,7 @@
999  }
1000  
1001  PasteSubttl::PasteSubttl(MWindow *mwindow)
1002 - : BC_MenuItem(_("paste subttl"), "y", 'y')
1003 + : BC_MenuItem(_("paste subttl"), "Y", 'y')
1004  {
1005         this->mwindow = mwindow;
1006  }
1007 @@ -1459,7 +1460,7 @@
1008  
1009  
1010  SetBRenderActive::SetBRenderActive(MWindow *mwindow)
1011 - : BC_MenuItem(_("Toggle background rendering"),_("Shift-G"),'G')
1012 + : BC_MenuItem(_("Toggle background rendering"),_("Shift+G"),'G')
1013  {
1014         this->mwindow = mwindow;
1015         set_shift(1);
1016 @@ -1526,7 +1527,7 @@
1017  
1018  
1019  CursorOnFrames::CursorOnFrames(MWindow *mwindow)
1020 - : BC_MenuItem(_("Align cursor on frames"),_("Ctrl-a"),'a')
1021 + : BC_MenuItem(_("Align cursor on frames"),_("Ctrl+F"),'f')
1022  {
1023         this->mwindow = mwindow;
1024         set_checked(mwindow->edl->session->cursor_on_frames);
1025 @@ -1578,11 +1579,10 @@
1026  }
1027  
1028  SaveSettingsNow::SaveSettingsNow(MWindow *mwindow)
1029 - : BC_MenuItem(_("Save settings now"),_("Ctrl-Shift-S"),'S')
1030 + : BC_MenuItem(_("Save settings now"),_("Shift+S"),'s')
1031  {
1032         this->mwindow = mwindow;
1033 -       set_ctrl(1);
1034 -       set_shift(1);
1035 +       set_shift(1);   // set_ctrl(1);
1036  }
1037  
1038  int SaveSettingsNow::handle_event()
1039 @@ -1664,7 +1664,7 @@
1040  
1041  
1042  ShowGWindow::ShowGWindow(MWindow *mwindow)
1043 - : BC_MenuItem(_("Show Overlays"), _("Ctrl-0"), '0')
1044 + : BC_MenuItem(_("Show Overlays"), _("Ctrl+0"), '0')
1045  {
1046         this->mwindow = mwindow;
1047         set_ctrl(1);
1048 @@ -1728,7 +1728,7 @@
1049  }
1050  
1051  SplitX::SplitX(MWindow *mwindow)
1052 - : BC_MenuItem(_("Split X pane"), _("Ctrl-1"), '1')
1053 + : BC_MenuItem(_("Split X pane"), _("Ctrl+1"), '1')
1054  {
1055         this->mwindow = mwindow;
1056         set_ctrl(1);
1057 @@ -1742,7 +1742,7 @@
1058  }
1059  
1060  SplitY::SplitY(MWindow *mwindow)
1061 - : BC_MenuItem(_("Split Y pane"), _("Ctrl-2"), '2')
1062 + : BC_MenuItem(_("Split Y pane"), _("Ctrl+2"), '2')
1063  {
1064         this->mwindow = mwindow;
1065         set_ctrl(1);
1066 @@ -1826,7 +1826,7 @@
1067  }
1068  
1069  MixerViewer::MixerViewer(MixerItems *mixer_items)
1070 - : MixerItem(mixer_items, _("Mixer Viewer"), _("Shift-M"), 'M')
1071 + : MixerItem(mixer_items, _("Mixer Viewer"), _("Shift+M"), 'M')
1072  {
1073         set_shift(1);
1074  }
1075 @@ -1839,7 +1839,7 @@
1076  }
1077  
1078  DragTileMixers::DragTileMixers(MixerItems *mixer_items)
1079 - : MixerItem(mixer_items, _("Drag Tile mixers"), "Alt-t", 't')
1080 + : MixerItem(mixer_items, _("Tile mixers"), "Alt+T", 't')
1081  {
1082         set_alt();
1083         drag_box = 0;
1084 @@ -1933,7 +1933,7 @@
1085         this->load_layout = load_layout;
1086         if( hotkey ) {
1087                 char hot_txt[BCSTRLEN];
1088 -               sprintf(hot_txt, _("Ctrl-Shift+F%d"), hotkey-KEY_F1+1);
1089 +               sprintf(hot_txt, _("Ctrl+Shift+F%d"), hotkey-KEY_F1+1);
1090                 set_ctrl();  set_shift();
1091                 set_hotkey_text(hot_txt);
1092         }
1093 diff -ur cinelerra-5.1/cinelerra/mwindowgui.C cinelerra-5.1_after/cinelerra/mwindowgui.C
1094 --- cinelerra-5.1/cinelerra/mwindowgui.C        2022-05-30 15:03:35.152305163 -0600
1095 +++ cinelerra-5.1_after/cinelerra/mwindowgui.C  2023-09-28 11:55:17.355859745 -0600
1096 @@ -1092,27 +1092,38 @@
1097  
1098         switch( get_keypress() ) {
1099         case 'A':
1100 -               if( !alt_down() ) {
1101 -                       if( !ctrl_down() || !shift_down() ) break;
1102 +               if( !alt_down() && ctrl_down() ) {
1103                         mwindow->edl->tracks->clear_selected_edits();
1104                         draw_overlays(1);
1105                         result = 1;
1106 -                       break;
1107 -               } // fall thru
1108 +               }
1109 +               break;
1110         case 'a':
1111 +// REM 2023
1112 +/*
1113                 if( !alt_down() ) break;
1114                 stop_transport("MWindowGUI::keypress_event 1");
1115                 mwindow->nearest_auto_keyframe(shift_down(),
1116                         !ctrl_down() ? PLAY_FORWARD : PLAY_REVERSE);
1117                 result = 1;
1118 +*/
1119 +// REM END
1120 +               if( ctrl_down() && alt_down() ) {
1121 +                       mwindow->select_edits(1);
1122 +                       result = 1;
1123 +               }
1124                 break;
1125  
1126 +// REM 2023
1127 +/*
1128         case '\'':
1129                 if( ctrl_down() && alt_down() ) {
1130                         mwindow->select_edits(1);
1131                         result = 1;
1132                 }
1133                 break;
1134 +*/
1135 +// REM END
1136  
1137         case 'e':
1138                 if( ctrl_down() || alt_down() ) break;
1139 @@ -1123,8 +1134,8 @@
1140         case 'k': case 'K':
1141                 if( alt_down() ) break;
1142                 stop_transport("MWindowGUI::keypress_event 2");
1143 -               mwindow->nearest_plugin_keyframe(shift_down(),
1144 -                       !ctrl_down() ? PLAY_FORWARD : PLAY_REVERSE);
1145 +//             mwindow->nearest_plugin_keyframe(shift_down(),
1146 +//                     !ctrl_down() ? PLAY_FORWARD : PLAY_REVERSE);
1147                 result = 1;
1148                 break;
1149  
1150 @@ -1204,10 +1215,23 @@
1151                                 stop_transport("MWindowGUI::keypress_event 1");
1152                                 mwindow->prev_edit_handle(shift_down());
1153                         }
1154 +                       // *** Shift+Left Arrow to jump to Previous Keyframe. START new code 2023 ***
1155 +                       else if( shift_down() ) {
1156 +                               stop_transport("MWindowGUI::keypress_event 1");
1157 +                               mwindow->nearest_plugin_keyframe( (!shift_down() && !ctrl_down()), PLAY_REVERSE );
1158 +                       }
1159 +                       // *** END new code 2023 ***
1160                         else
1161                                 mwindow->move_left();
1162                         result = 1;
1163                 }
1164 +               // *** Ctrl+Shift+Alt+Left Arrow to jump to Previous AutosKeyframe. START new code 2023 ***
1165 +               if( ctrl_down() && shift_down() && alt_down() ) {
1166 +                       stop_transport("MWindowGUI::keypress_event 1");
1167 +                       mwindow->nearest_auto_keyframe( (!shift_down() && !ctrl_down() && !alt_down() ), PLAY_REVERSE );
1168 +                       result = 1;
1169 +                       }
1170 +               // *** END new code 2023 ***
1171                 break;
1172  
1173         case ',':
1174 @@ -1223,10 +1247,23 @@
1175                                 stop_transport("MWindowGUI::keypress_event 2");
1176                                 mwindow->next_edit_handle(shift_down());
1177                         }
1178 +                       // *** Shift+Right Arrow to jump to Next Keyframe. START new code 2023 ***
1179 +                       else if( shift_down() ) {
1180 +                               stop_transport("MWindowGUI::keypress_event 1");
1181 +                               mwindow->nearest_plugin_keyframe( (!shift_down() && !ctrl_down()), PLAY_FORWARD );
1182 +                       }
1183 +                       // *** END new code 2023 ***
1184                         else
1185                                 mwindow->move_right();
1186                         result = 1;
1187                 }
1188 +               // *** Ctrl+Shift+Alt+Right Arrow to jump to Next AutosKeyframe. START new code 2023 ***
1189 +               if( ctrl_down() && shift_down() && alt_down() ) {
1190 +                       stop_transport("MWindowGUI::keypress_event 1");
1191 +                       mwindow->nearest_auto_keyframe( (!shift_down() && !ctrl_down() && !alt_down() ), PLAY_FORWARD );
1192 +                       result = 1;
1193 +                       }
1194 +               // *** END new code 2023 ***
1195                 break;
1196  
1197         case '.':
1198 diff -ur cinelerra-5.1/cinelerra/new.C cinelerra-5.1_after/cinelerra/new.C
1199 --- cinelerra-5.1/cinelerra/new.C       2023-01-24 11:13:37.499568388 -0700
1200 +++ cinelerra-5.1_after/cinelerra/new.C 2023-09-28 11:55:17.355859745 -0600
1201 @@ -140,8 +140,9 @@
1202  }
1203  
1204  NewProject::NewProject(MWindow *mwindow)
1205 - : BC_MenuItem(_("New Project..."), "n", 'n'), New(mwindow)
1206 + : BC_MenuItem(_("New Project..."), "Ctrl+N", 'n'), New(mwindow)
1207  {
1208 +       set_ctrl(1);
1209  }
1210  NewProject::~NewProject()
1211  {
1212 @@ -154,7 +155,7 @@
1213  }
1214  
1215  AppendTracks::AppendTracks(MWindow *mwindow)
1216 - : BC_MenuItem(_("Append to Project..."), "Shift-N", 'N'), New(mwindow)
1217 + : BC_MenuItem(_("Append to Project..."), "Shift+N", 'N'), New(mwindow)
1218  {
1219         set_shift(1);
1220  }
1221 diff -ur cinelerra-5.1/cinelerra/playtransport.C cinelerra-5.1_after/cinelerra/playtransport.C
1222 --- cinelerra-5.1/cinelerra/playtransport.C     2022-03-15 21:47:37.376382165 -0600
1223 +++ cinelerra-5.1_after/cinelerra/playtransport.C       2023-09-28 11:55:17.355859745 -0600
1224 @@ -273,12 +273,35 @@
1225                 break;
1226         case 'j': case 'J':
1227                 if( alt_key ) command = SINGLE_FRAME_FWD;
1228 +//  IF pressed TWICE its toggle between FAST and NORMAL Rewind PLAY
1229 +               if( !alt_key && !ctrl_key ) {
1230 +                       switch( curr_command ) {
1231 +                               case NORMAL_REWIND:
1232 +                                       command = FAST_REWIND;
1233 +                                       break;
1234 +                               default:
1235 +                                       command = NORMAL_REWIND;
1236 +                                       break;
1237 +                       }
1238 +               }
1239                 break;
1240         case 'k': case 'K':
1241                 if( alt_key ) command = SLOW_FWD;
1242 +               if( !alt_key && !ctrl_key ) command = STOP;
1243                 break;
1244         case 'l': case 'L':
1245                 if( alt_key ) command = NORMAL_FWD;
1246 +//  IF pressed TWICE its toggle between FAST and NORMAL Forward PLAY
1247 +               if( !alt_key && !ctrl_key ) {
1248 +                       switch( curr_command ) {
1249 +                               case NORMAL_FWD:
1250 +                                       command = FAST_FWD;
1251 +                                       break;
1252 +                               default:
1253 +                                       command = NORMAL_FWD;
1254 +                                       break;
1255 +                       }
1256 +               }
1257                 break;
1258         case ':': case ';':
1259                 if( alt_key ) command = FAST_FWD;
1260 @@ -286,6 +309,12 @@
1261         case 'm': case 'M':
1262                 if( alt_key ) command = STOP;
1263                 break;
1264 +       case ',':
1265 +               if( !alt_key && !ctrl_key && !shft_key ) command = SINGLE_FRAME_REWIND;
1266 +               break;
1267 +       case '.':
1268 +               if( !alt_key && !ctrl_key && !shft_key ) command = SINGLE_FRAME_FWD;
1269 +               break;
1270         }
1271         if( command >= 0 ) {
1272                 handle_transport(command, 0, use_inout, toggle_audio, loop_play, speed);
1273 @@ -409,7 +438,7 @@
1274  FastReverseButton::FastReverseButton(MWindow *mwindow, PlayTransport *transport, int x, int y)
1275   : PTransportButton(mwindow, transport, x, y, mwindow->theme->get_image_set("fastrev"))
1276  {
1277 -       set_tooltip(_("Fast reverse ( + or Alt-p )"));
1278 +       set_tooltip(_("Fast reverse ( Numpad +, Alt+P )"));
1279  // *** CONTEXT_HELP ***
1280         context_help_set_keyword("Transport Controls");
1281  }
1282 @@ -424,7 +453,7 @@
1283  ReverseButton::ReverseButton(MWindow *mwindow, PlayTransport *transport, int x, int y)
1284   : PTransportButton(mwindow, transport, x, y, mwindow->theme->get_image_set("reverse"))
1285  {
1286 -       set_tooltip(_("Normal reverse ( 6 or Alt-o )"));
1287 +       set_tooltip(_("Normal reverse ( Numpad 6, Alt+O, 'J' )"));
1288  // *** CONTEXT_HELP ***
1289         context_help_set_keyword("Transport Controls");
1290  }
1291 @@ -439,7 +468,7 @@
1292  FrameReverseButton::FrameReverseButton(MWindow *mwindow, PlayTransport *transport, int x, int y)
1293   : PTransportButton(mwindow, transport, x, y, mwindow->theme->get_image_set("framerev"))
1294  {
1295 -       set_tooltip(_("Frame reverse ( 4 or Alt-u )"));
1296 +       set_tooltip(_("Frame reverse ( Numpad 4, Alt+U, ',' )"));
1297  // *** CONTEXT_HELP ***
1298         context_help_set_keyword("Transport Controls");
1299  }
1300 @@ -456,7 +485,7 @@
1301  PlayButton::PlayButton(MWindow *mwindow, PlayTransport *transport, int x, int y)
1302   : PTransportButton(mwindow, transport, x, y, mwindow->theme->get_image_set("play"))
1303  {
1304 -       set_tooltip(_("Normal forward ( 3 or Alt-l )"));
1305 +       set_tooltip(_("Normal forward ( Numpad 3, Alt+L, 'L' )"));
1306  // *** CONTEXT_HELP ***
1307         context_help_set_keyword("Transport Controls");
1308  }
1309 @@ -473,7 +502,7 @@
1310  FramePlayButton::FramePlayButton(MWindow *mwindow, PlayTransport *transport, int x, int y)
1311   : PTransportButton(mwindow, transport, x, y, mwindow->theme->get_image_set("framefwd"))
1312  {
1313 -       set_tooltip(_("Frame forward ( 1 or Alt-j )"));
1314 +       set_tooltip(_("Frame forward ( Numpad 1, Alt+J, '.' )"));
1315  // *** CONTEXT_HELP ***
1316         context_help_set_keyword("Transport Controls");
1317  }
1318 @@ -490,7 +519,7 @@
1319  FastPlayButton::FastPlayButton(MWindow *mwindow, PlayTransport *transport, int x, int y)
1320   : PTransportButton(mwindow, transport, x, y, mwindow->theme->get_image_set("fastfwd"))
1321  {
1322 -       set_tooltip(_("Fast forward ( Enter or Alt-; )"));
1323 +       set_tooltip(_("Fast forward ( Numpad Enter, Alt+; )"));
1324  // *** CONTEXT_HELP ***
1325         context_help_set_keyword("Transport Controls");
1326  }
1327 @@ -518,7 +547,7 @@
1328  StopButton::StopButton(MWindow *mwindow, PlayTransport *transport, int x, int y)
1329   : PTransportButton(mwindow, transport, x, y, mwindow->theme->get_image_set("stop"))
1330  {
1331 -       set_tooltip(_("Stop ( 0 or Alt-m )"));
1332 +       set_tooltip(_("Stop ( Numpad 0, Alt+M, 'K' )"));
1333  // *** CONTEXT_HELP ***
1334         context_help_set_keyword("Transport Controls");
1335  }
1336 diff -ur cinelerra-5.1/cinelerra/preferencesthread.C cinelerra-5.1_after/cinelerra/preferencesthread.C
1337 --- cinelerra-5.1/cinelerra/preferencesthread.C 2022-03-15 21:47:37.379382184 -0600
1338 +++ cinelerra-5.1_after/cinelerra/preferencesthread.C   2023-09-28 11:55:17.356859758 -0600
1339 @@ -71,7 +71,7 @@
1340  
1341  
1342  PreferencesMenuitem::PreferencesMenuitem(MWindow *mwindow)
1343 - : BC_MenuItem(_("Preferences..."), _("Shift-P"), 'P')
1344 + : BC_MenuItem(_("Preferences..."), _("Shift+P"), 'P')
1345  {
1346         this->mwindow = mwindow;
1347  
1348 diff -ur cinelerra-5.1/cinelerra/proxy.C cinelerra-5.1_after/cinelerra/proxy.C
1349 --- cinelerra-5.1/cinelerra/proxy.C     2022-03-15 21:47:37.380382190 -0600
1350 +++ cinelerra-5.1_after/cinelerra/proxy.C       2023-09-28 11:55:17.356859758 -0600
1351 @@ -52,7 +52,7 @@
1352  #define MAX_SCALE 16
1353  
1354  ProxyMenuItem::ProxyMenuItem(MWindow *mwindow)
1355 - : BC_MenuItem(_("Proxy settings..."),  _("Alt-r"), 'r')
1356 + : BC_MenuItem(_("Proxy settings..."),  _("Alt+R"), 'r')
1357  {
1358         this->mwindow = mwindow;
1359         set_alt();
1360 diff -ur cinelerra-5.1/cinelerra/quit.C cinelerra-5.1_after/cinelerra/quit.C
1361 --- cinelerra-5.1/cinelerra/quit.C      2022-03-15 21:47:37.380382190 -0600
1362 +++ cinelerra-5.1_after/cinelerra/quit.C        2023-09-28 11:55:17.356859758 -0600
1363 @@ -41,8 +41,9 @@
1364  
1365  
1366  Quit::Quit(MWindow *mwindow)
1367 - : BC_MenuItem(_("Quit"), "q", 'q'), Thread()
1368 + : BC_MenuItem(_("Quit"), "Ctrl+Q", 'q'), Thread()
1369  {
1370 +       set_ctrl(1);
1371         this->mwindow = mwindow;
1372  }
1373  
1374 diff -ur cinelerra-5.1/cinelerra/record.C cinelerra-5.1_after/cinelerra/record.C
1375 --- cinelerra-5.1/cinelerra/record.C    2022-03-15 21:47:37.381382196 -0600
1376 +++ cinelerra-5.1_after/cinelerra/record.C      2023-09-28 11:55:17.356859758 -0600
1377 @@ -86,7 +86,7 @@
1378  
1379  
1380  RecordMenuItem::RecordMenuItem(MWindow *mwindow)
1381 - : BC_MenuItem(_("Record..."), "r", 'r')
1382 + : BC_MenuItem(_("Record..."), "R", 'r')
1383  {
1384         this->mwindow = mwindow;
1385         record = new Record(mwindow, this);
1386 diff -ur cinelerra-5.1/cinelerra/render.C cinelerra-5.1_after/cinelerra/render.C
1387 --- cinelerra-5.1/cinelerra/render.C    2023-06-28 10:24:09.242079933 -0600
1388 +++ cinelerra-5.1_after/cinelerra/render.C      2023-09-28 11:55:17.356859758 -0600
1389 @@ -83,7 +83,7 @@
1390  
1391  
1392  RenderItem::RenderItem(MWindow *mwindow)
1393 - : BC_MenuItem(_("Render..."), _("Shift-R"), 'R')
1394 + : BC_MenuItem(_("Render..."), _("Shift+R"), 'R')
1395  {
1396         this->mwindow = mwindow;
1397         set_shift(1);
1398 diff -ur cinelerra-5.1/cinelerra/savefile.C cinelerra-5.1_after/cinelerra/savefile.C
1399 --- cinelerra-5.1/cinelerra/savefile.C  2022-03-15 21:47:37.385382220 -0600
1400 +++ cinelerra-5.1_after/cinelerra/savefile.C    2023-09-28 11:55:17.356859758 -0600
1401 @@ -40,7 +40,7 @@
1402  
1403  
1404  SaveBackup::SaveBackup(MWindow *mwindow)
1405 - : BC_MenuItem(_("Save backup"), "b", 'b')
1406 + : BC_MenuItem(_("Save backup"), "B", 'b')
1407  {
1408         this->mwindow = mwindow;
1409  }
1410 @@ -52,8 +52,9 @@
1411  }
1412  
1413  
1414 -Save::Save(MWindow *mwindow) : BC_MenuItem(_("Save"), "s", 's')
1415 +Save::Save(MWindow *mwindow) : BC_MenuItem(_("Save"), "Ctrl+S", 's')
1416  {
1417 +       set_ctrl(1);
1418         this->mwindow = mwindow;
1419         quit_now = 0;
1420  }
1421 @@ -87,8 +88,9 @@
1422  }
1423  
1424  SaveAs::SaveAs(MWindow *mwindow)
1425 - : BC_MenuItem(_("Save as..."), "Shift-S", 'S'), Thread()
1426 + : BC_MenuItem(_("Save as..."), "Ctrl+Shift+S", 'S'), Thread()
1427  {
1428 +       set_ctrl(1);
1429         set_shift(1);
1430         this->mwindow = mwindow;
1431         quit_now = 0;
1432 @@ -216,7 +218,7 @@
1433  }
1434  
1435  SaveProject::SaveProject(MWindow *mwindow)
1436 - : BC_MenuItem(_("Export Project..."), "Alt-s", 's'), Thread()
1437 + : BC_MenuItem(_("Export Project..."), "Alt+S", 's'), Thread()
1438  {
1439         set_alt(1);
1440         this->mwindow = mwindow;
1441 @@ -257,10 +259,10 @@
1442  
1443    
1444  SaveSession::SaveSession(MWindow *mwindow)
1445 - : BC_MenuItem(_("Save Session"),_("Ctrl-s"),'s')
1446 + : BC_MenuItem(_("Save Session"))
1447  {
1448         this->mwindow = mwindow;
1449 -       set_ctrl(1);
1450 +//     set_ctrl(1);
1451  }
1452  
1453  int SaveSession::handle_event()
1454 diff -ur cinelerra-5.1/cinelerra/setformat.C cinelerra-5.1_after/cinelerra/setformat.C
1455 --- cinelerra-5.1/cinelerra/setformat.C 2023-01-24 11:13:37.500568399 -0700
1456 +++ cinelerra-5.1_after/cinelerra/setformat.C   2023-09-28 11:55:17.357859770 -0600
1457 @@ -48,7 +48,7 @@
1458  
1459  
1460  SetFormat::SetFormat(MWindow *mwindow)
1461 - : BC_MenuItem(_("Format..."), _("Shift-F"), 'F')
1462 + : BC_MenuItem(_("Format..."), _("Shift+F"), 'F')
1463  {
1464         set_shift(1);
1465         this->mwindow = mwindow;
1466 diff -ur cinelerra-5.1/cinelerra/swindow.C cinelerra-5.1_after/cinelerra/swindow.C
1467 --- cinelerra-5.1/cinelerra/swindow.C   2023-02-09 09:50:37.265383255 -0700
1468 +++ cinelerra-5.1_after/cinelerra/swindow.C     2023-09-28 11:55:17.357859770 -0600
1469 @@ -1106,7 +1106,7 @@
1470  
1471  
1472  SubttlSWin::SubttlSWin(MWindow *mwindow)
1473 - : BC_MenuItem(_("SubTitle..."), _("Alt-y"), 'y')
1474 + : BC_MenuItem(_("SubTitle..."), _("Alt+Y"), 'y')
1475  {
1476         set_alt();
1477         this->mwindow = mwindow;
1478 diff -ur cinelerra-5.1/guicast/bcfilebox.C cinelerra-5.1_after/guicast/bcfilebox.C
1479 --- cinelerra-5.1/guicast/bcfilebox.C   2022-03-15 21:47:37.422382444 -0600
1480 +++ cinelerra-5.1_after/guicast/bcfilebox.C     2023-09-28 15:19:16.470367060 -0600
1481 @@ -767,6 +767,7 @@
1482  int BC_FileBox::keypress_event()
1483  {
1484         switch(get_keypress()) {
1485 +/*
1486         case 'a':
1487                 if( !ctrl_down() ) break;
1488                 refresh(0, 1);
1489 @@ -775,6 +776,19 @@
1490                 if( !ctrl_down() ) break;
1491                 refresh(0, 0);
1492                 return 1;
1493 +*/
1494 +       // *** START new code 2023 ***
1495 +       case 'a':
1496 +       case 'A': 
1497 +               if( ctrl_down() && !shift_down() && !alt_down() ) {
1498 +                       refresh(0, 1);  // Select All
1499 +                       return 1;
1500 +               }
1501 +               if( ctrl_down() && shift_down() && !alt_down() ) {
1502 +                       refresh(0, 0);  // Deselect All
1503 +                       return 1;
1504 +               }
1505 +       // *** END new code 2023 ***
1506         case 'w':
1507                 if( !ctrl_down() ) break;
1508                 set_done(1);