diff options
-rw-r--r-- | cocoa/ScintillaCocoa.mm | 1 | ||||
-rw-r--r-- | gtk/ScintillaGTK.cxx | 10 | ||||
-rw-r--r-- | include/Platform.h | 6 | ||||
-rw-r--r-- | src/KeyMap.h | 1 |
4 files changed, 17 insertions, 1 deletions
diff --git a/cocoa/ScintillaCocoa.mm b/cocoa/ScintillaCocoa.mm index 2c827e3c7..b7ae09f64 100644 --- a/cocoa/ScintillaCocoa.mm +++ b/cocoa/ScintillaCocoa.mm @@ -34,7 +34,6 @@ NSString* ScintillaRecPboardType = @"com.scintilla.utf16-plain-text.rectangular" // Define keyboard shortcuts (equivalents) the Mac way. #define SCI_CMD ( SCI_CTRL) #define SCI_SCMD ( SCI_CMD | SCI_SHIFT) -#define SCI_META ( SCMOD_META ) #define SCI_SMETA ( SCI_META | SCI_SHIFT) static const KeyToCommand macMapDefault[] = diff --git a/gtk/ScintillaGTK.cxx b/gtk/ScintillaGTK.cxx index 73d15c25f..bb1062d90 100644 --- a/gtk/ScintillaGTK.cxx +++ b/gtk/ScintillaGTK.cxx @@ -2223,7 +2223,17 @@ gboolean ScintillaGTK::KeyThis(GdkEventKey *event) { key = KeyTranslate(key); bool consumed = false; +#if !(PLAT_GTK_MACOSX) bool added = KeyDown(key, shift, ctrl, alt, &consumed) != 0; +#else + bool meta = ctrl; + ctrl = alt; + alt = (event->state & GDK_MOD5_MASK) != 0; + bool added = KeyDownWithModifiers(key, (shift ? SCI_SHIFT : 0) | + (ctrl ? SCI_CTRL : 0) | + (alt ? SCI_ALT : 0) | + (meta ? SCI_META : 0), &consumed) != 0; +#endif if (!consumed) consumed = added; //fprintf(stderr, "SK-key: %d %x %x\n",event->keyval, event->state, consumed); diff --git a/include/Platform.h b/include/Platform.h index 8180b0a6d..b0f3de0dc 100644 --- a/include/Platform.h +++ b/include/Platform.h @@ -16,6 +16,7 @@ #define PLAT_GTK 0 #define PLAT_GTK_WIN32 0 +#define PLAT_GTK_MACOSX 0 #define PLAT_MACOSX 0 #define PLAT_WIN 0 #define PLAT_WX 0 @@ -38,6 +39,11 @@ #define PLAT_GTK_WIN32 1 #endif +#if defined(__APPLE__) +#undef PLAT_GTK_MACOSX +#define PLAT_GTK_MACOSX 1 +#endif + #elif defined(__APPLE__) #undef PLAT_MACOSX diff --git a/src/KeyMap.h b/src/KeyMap.h index fd9005de8..f1235d845 100644 --- a/src/KeyMap.h +++ b/src/KeyMap.h @@ -16,6 +16,7 @@ namespace Scintilla { #define SCI_SHIFT SCMOD_SHIFT #define SCI_CTRL SCMOD_CTRL #define SCI_ALT SCMOD_ALT +#define SCI_META SCMOD_META #define SCI_CSHIFT (SCI_CTRL | SCI_SHIFT) #define SCI_ASHIFT (SCI_ALT | SCI_SHIFT) |