diff options
author | nyamatongwe <unknown> | 2011-07-19 11:38:01 +1000 |
---|---|---|
committer | nyamatongwe <unknown> | 2011-07-19 11:38:01 +1000 |
commit | 24116121f7662aa3b008971053bddb23be7cc36f (patch) | |
tree | 0f223aaa14770e262fa41ea276512901a210d35c | |
parent | c7ab0fe4f5e640022b4c177d4382bbd762aae605 (diff) | |
download | scintilla-mirror-24116121f7662aa3b008971053bddb23be7cc36f.tar.gz |
Integrate OS X key mapping into main key map.
-rw-r--r-- | src/KeyMap.cxx | 47 |
1 files changed, 38 insertions, 9 deletions
diff --git a/src/KeyMap.cxx b/src/KeyMap.cxx index c223d5b59..4d866d195 100644 --- a/src/KeyMap.cxx +++ b/src/KeyMap.cxx @@ -66,14 +66,42 @@ unsigned int KeyMap::Find(int key, int modifiers) { return 0; } +#if PLAT_GTK_MACOSX +#define OS_X_KEYS 1 +#else +#define OS_X_KEYS 0 +#endif + +// Define a modifier that is exactly Ctrl key on all platforms +// Most uses of Ctrl map to Cmd on OS X but some can't so use SCI_[S]CTRL_META +#if OS_X_KEYS +#define SCI_CTRL_META SCI_META +#define SCI_SCTRL_META (SCI_META | SCI_SHIFT) +#else +#define SCI_CTRL_META SCI_CTRL +#define SCI_SCTRL_META (SCI_CTRL | SCI_SHIFT) +#endif + const KeyToCommand KeyMap::MapDefault[] = { + +#if OS_X_KEYS + {SCK_DOWN, SCI_CTRL, SCI_DOCUMENTEND}, + {SCK_DOWN, SCI_CSHIFT, SCI_DOCUMENTENDEXTEND}, + {SCK_UP, SCI_CTRL, SCI_DOCUMENTSTART}, + {SCK_UP, SCI_CSHIFT, SCI_DOCUMENTSTARTEXTEND}, + {SCK_LEFT, SCI_CTRL, SCI_VCHOME}, + {SCK_LEFT, SCI_CSHIFT, SCI_VCHOMEEXTEND}, + {SCK_RIGHT, SCI_CTRL, SCI_LINEEND}, + {SCK_RIGHT, SCI_CSHIFT, SCI_LINEENDEXTEND}, +#endif + {SCK_DOWN, SCI_NORM, SCI_LINEDOWN}, {SCK_DOWN, SCI_SHIFT, SCI_LINEDOWNEXTEND}, - {SCK_DOWN, SCI_CTRL, SCI_LINESCROLLDOWN}, + {SCK_DOWN, SCI_CTRL_META, SCI_LINESCROLLDOWN}, {SCK_DOWN, SCI_ASHIFT, SCI_LINEDOWNRECTEXTEND}, {SCK_UP, SCI_NORM, SCI_LINEUP}, {SCK_UP, SCI_SHIFT, SCI_LINEUPEXTEND}, - {SCK_UP, SCI_CTRL, SCI_LINESCROLLUP}, + {SCK_UP, SCI_CTRL_META, SCI_LINESCROLLUP}, {SCK_UP, SCI_ASHIFT, SCI_LINEUPRECTEXTEND}, {'[', SCI_CTRL, SCI_PARAUP}, {'[', SCI_CSHIFT, SCI_PARAUPEXTEND}, @@ -81,13 +109,13 @@ const KeyToCommand KeyMap::MapDefault[] = { {']', SCI_CSHIFT, SCI_PARADOWNEXTEND}, {SCK_LEFT, SCI_NORM, SCI_CHARLEFT}, {SCK_LEFT, SCI_SHIFT, SCI_CHARLEFTEXTEND}, - {SCK_LEFT, SCI_CTRL, SCI_WORDLEFT}, - {SCK_LEFT, SCI_CSHIFT, SCI_WORDLEFTEXTEND}, + {SCK_LEFT, SCI_CTRL_META, SCI_WORDLEFT}, + {SCK_LEFT, SCI_SCTRL_META, SCI_WORDLEFTEXTEND}, {SCK_LEFT, SCI_ASHIFT, SCI_CHARLEFTRECTEXTEND}, {SCK_RIGHT, SCI_NORM, SCI_CHARRIGHT}, {SCK_RIGHT, SCI_SHIFT, SCI_CHARRIGHTEXTEND}, - {SCK_RIGHT, SCI_CTRL, SCI_WORDRIGHT}, - {SCK_RIGHT, SCI_CSHIFT, SCI_WORDRIGHTEXTEND}, + {SCK_RIGHT, SCI_CTRL_META, SCI_WORDRIGHT}, + {SCK_RIGHT, SCI_SCTRL_META, SCI_WORDRIGHTEXTEND}, {SCK_RIGHT, SCI_ASHIFT, SCI_CHARRIGHTRECTEXTEND}, {'/', SCI_CTRL, SCI_WORDPARTLEFT}, {'/', SCI_CSHIFT, SCI_WORDPARTLEFTEXTEND}, @@ -98,14 +126,12 @@ const KeyToCommand KeyMap::MapDefault[] = { {SCK_HOME, SCI_CTRL, SCI_DOCUMENTSTART}, {SCK_HOME, SCI_CSHIFT, SCI_DOCUMENTSTARTEXTEND}, {SCK_HOME, SCI_ALT, SCI_HOMEDISPLAY}, -// {SCK_HOME, SCI_ASHIFT, SCI_HOMEDISPLAYEXTEND}, {SCK_HOME, SCI_ASHIFT, SCI_VCHOMERECTEXTEND}, {SCK_END, SCI_NORM, SCI_LINEEND}, {SCK_END, SCI_SHIFT, SCI_LINEENDEXTEND}, {SCK_END, SCI_CTRL, SCI_DOCUMENTEND}, {SCK_END, SCI_CSHIFT, SCI_DOCUMENTENDEXTEND}, {SCK_END, SCI_ALT, SCI_LINEENDDISPLAY}, -// {SCK_END, SCI_ASHIFT, SCI_LINEENDDISPLAYEXTEND}, {SCK_END, SCI_ASHIFT, SCI_LINEENDRECTEXTEND}, {SCK_PRIOR, SCI_NORM, SCI_PAGEUP}, {SCK_PRIOR, SCI_SHIFT, SCI_PAGEUPEXTEND}, @@ -127,7 +153,11 @@ const KeyToCommand KeyMap::MapDefault[] = { {SCK_BACK, SCI_ALT, SCI_UNDO}, {SCK_BACK, SCI_CSHIFT, SCI_DELLINELEFT}, {'Z', SCI_CTRL, SCI_UNDO}, +#if OS_X_KEYS + {'Z', SCI_CSHIFT, SCI_REDO}, +#else {'Y', SCI_CTRL, SCI_REDO}, +#endif {'X', SCI_CTRL, SCI_CUT}, {'C', SCI_CTRL, SCI_COPY}, {'V', SCI_CTRL, SCI_PASTE}, @@ -139,7 +169,6 @@ const KeyToCommand KeyMap::MapDefault[] = { {SCK_ADD, SCI_CTRL, SCI_ZOOMIN}, {SCK_SUBTRACT, SCI_CTRL, SCI_ZOOMOUT}, {SCK_DIVIDE, SCI_CTRL, SCI_SETZOOM}, - //'L', SCI_CTRL, SCI_FORMFEED, {'L', SCI_CTRL, SCI_LINECUT}, {'L', SCI_CSHIFT, SCI_LINEDELETE}, {'T', SCI_CSHIFT, SCI_LINECOPY}, |