diff --git a/collects/framework/gen-standard-menus.ss b/collects/framework/gen-standard-menus.ss index 4209ba93..939ae52d 100755 --- a/collects/framework/gen-standard-menus.ss +++ b/collects/framework/gen-standard-menus.ss @@ -155,14 +155,6 @@ string=? ; exec mred -qr $0 `(define standard-menus-mixin (mixin (basic<%>) (standard-menus<%>) args (inherit on-menu-char on-traverse-char) -; (rename [super-on-subwindow-char on-subwindow-char]) -; (override -; [on-subwindow-char -; (lambda (receiver event) -; (if (preferences:get 'framework:menu-bindings) -; (super-on-subwindow-char receiver event) -; (on-traverse-char event)))]) - (rename [super-on-close on-close]) (private [remove-prefs-callback diff --git a/collects/framework/menu.ss b/collects/framework/menu.ss new file mode 100644 index 00000000..e688cdc9 --- /dev/null +++ b/collects/framework/menu.ss @@ -0,0 +1,26 @@ +(unit/sig framework:menu^ + (import mred^ + [preferences : framework:preferences^]) + + (define can-restore<%> + (interface (selectable-menu-item<%>) + restore-keybinding)) + + (define can-restore-mixin + (mixin (selectable-menu-item<%>) (can-restore<%>) args + (inherit set-shortcut get-shortcut) + (private + [saved-shortcut 'not-yet]) + (public + [restore-keybinding + (lambda () + (unless (eq? saved-shortcut 'not-yet) + (set-shortcut saved-shortcut)))]) + (sequence + (apply super-init args) + (set! saved-shortcut (get-shortcut)) + (unless (preferences:get 'framework:menu-bindings) + (set-shortcut #f))))) + + (define can-restore-menu-item% (can-restore-mixin menu-item%)) + (define can-restore-checkable-menu-item% (can-restore-mixin checkable-menu-item%))) \ No newline at end of file