From 8ba8d01ec07d45ec67bd06df0670c7498fa20bb9 Mon Sep 17 00:00:00 2001 From: Neil Toronto Date: Fri, 29 Aug 2014 16:37:47 -0400 Subject: [PATCH] Altered `keymap%` to not claim to handle key events that it doesn't Previously, `keymap%` would return #t for all shift, ctrl, and key release events. DrRacket's editors would then not handle those events (correctly, as they shouldn't handle already-handled events), meaning that the events weren't sent to any snips. --- .../drracket-pkgs/drracket/drracket/private/frame.rkt | 3 +-- pkgs/gui-pkgs/gui-lib/mred/private/wxme/keymap.rkt | 11 ++++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/pkgs/drracket-pkgs/drracket/drracket/private/frame.rkt b/pkgs/drracket-pkgs/drracket/drracket/private/frame.rkt index 76ce3087b9..71e7daa726 100644 --- a/pkgs/drracket-pkgs/drracket/drracket/private/frame.rkt +++ b/pkgs/drracket-pkgs/drracket/drracket/private/frame.rkt @@ -231,8 +231,7 @@ (send receiver get-editor) receiver) event)) - ;; (printf "user-key? ~s\n" user-key?) returns #t - ;; for key release events -- is this a problem? (we'll find out!) + ;; (printf "user-key? ~s\n" user-key?) (or user-key? (super on-subwindow-char receiver event))) diff --git a/pkgs/gui-pkgs/gui-lib/mred/private/wxme/keymap.rkt b/pkgs/gui-pkgs/gui-lib/mred/private/wxme/keymap.rkt index 462a29aa1d..426f23b9d2 100644 --- a/pkgs/gui-pkgs/gui-lib/mred/private/wxme/keymap.rkt +++ b/pkgs/gui-pkgs/gui-lib/mred/private/wxme/keymap.rkt @@ -457,11 +457,12 @@ (def/public (handle-key-event [any? obj] [key-event% event]) (let ([code (send event get-key-code)]) - (or (eq? code 'shift) - (eq? code 'rshift) - (eq? code 'control) - (eq? code 'rcontrol) - (eq? code 'release) + (if (or (eq? code 'shift) + (eq? code 'rshift) + (eq? code 'control) + (eq? code 'rcontrol) + (eq? code 'release)) + prefixed? (let ([score (get-best-score code (send event get-other-shift-key-code)