[MonoDevelop] Two shortcut key bugs in Mono.TextEditor

Matt Guo matt at mattguo.com
Sun Mar 21 06:11:37 EDT 2010


BTW, I don't know why MD itself doesn't have such bugs.

On Sun, Mar 21, 2010 at 5:39 PM, Matt Guo <matt at mattguo.com> wrote:
> [Bug 1]
> Mono.TextEditor can't call "Redo" by "Ctrl + Shift + z".
>
> [To fix it]
> in SImpleEditMode.cs, Change this line (around Ln 251):
>
> keyBindings.Add (GetKeyCode (Gdk.Key.z, Gdk.ModifierType.ControlMask |
> Gdk.ModifierType.ShiftMask), MiscActions.Redo);
> ->
> keyBindings.Add (GetKeyCode (Gdk.Key.Z, Gdk.ModifierType.ControlMask |
> Gdk.ModifierType.ShiftMask), MiscActions.Redo);
>
> i.e. make the "z" uppercase.
>
> [Bug 2]
> Mono.TextEditor can't call most shortcut key when CapsLock is on (iff
> the shortcut key contains any alphabet).
> E.g. when CapsLock is on, pressing "Ctrl + z" won't call "undo", since
> in SimpleEditMode, the expected key code is GetKeyCode (Gdk.Key.z,
> Gdk.ModifierType.ControlMask), while the input keyCode is
>  GetKeyCode (Gdk.Key.Z, Gdk.ModifierType.ControlMask).
>
> [To fix it]
> So IMO, a more general solution to fix Bug 1 and 2 could be:
> Make a KeyCombination class:
> class KeyCombination {
>  Gdk.Key Key { get; set; }
>  Gdk.ModifierType Modifier  { get; set; }
>  override Equals (... //Ignore the case of Key here.
> }
>
> and Make KeyCombination the key type of the KeyBindings dictionary in
> SimpleEditMode.
>
> --
> B.R.
> GUO Rui (Matt)
>



-- 
B.R.
GUO Rui (Matt)


More information about the Monodevelop-list mailing list