diff options
-rw-r--r-- | include/pugl/pugl.h | 20 | ||||
-rw-r--r-- | src/mac.m | 8 | ||||
-rw-r--r-- | src/win.c | 10 |
3 files changed, 21 insertions, 17 deletions
diff --git a/include/pugl/pugl.h b/include/pugl/pugl.h index 9d29ed8..481754b 100644 --- a/include/pugl/pugl.h +++ b/include/pugl/pugl.h @@ -370,17 +370,13 @@ typedef enum { PUGL_KEY_HOME, PUGL_KEY_END, PUGL_KEY_INSERT, - PUGL_KEY_SHIFT, - PUGL_KEY_SHIFT_L = PUGL_KEY_SHIFT, + PUGL_KEY_SHIFT_L, PUGL_KEY_SHIFT_R, - PUGL_KEY_CTRL, - PUGL_KEY_CTRL_L = PUGL_KEY_CTRL, + PUGL_KEY_CTRL_L, PUGL_KEY_CTRL_R, - PUGL_KEY_ALT, - PUGL_KEY_ALT_L = PUGL_KEY_ALT, + PUGL_KEY_ALT_L, PUGL_KEY_ALT_R, - PUGL_KEY_SUPER, - PUGL_KEY_SUPER_L = PUGL_KEY_SUPER, + PUGL_KEY_SUPER_L, PUGL_KEY_SUPER_R, PUGL_KEY_MENU, PUGL_KEY_CAPS_LOCK, @@ -2142,6 +2138,14 @@ puglRequestAttention(PuglView* view) puglGetViewStyle(view) | PUGL_VIEW_STYLE_DEMANDING); } +# define PUGL_KEY_SHIFT PUGL_KEY_SHIFT_L + +# define PUGL_KEY_CTRL PUGL_KEY_CTRL_L + +# define PUGL_KEY_ALT PUGL_KEY_ALT_L + +# define PUGL_KEY_SUPER PUGL_KEY_SUPER_L + #endif // PUGL_DISABLE_DEPRECATED /** @@ -825,17 +825,17 @@ handleCrossing(PuglWrapperView* view, NSEvent* event, const PuglEventType type) if ((mods & PUGL_MOD_SHIFT) != (puglview->impl->mods & PUGL_MOD_SHIFT)) { type = mods & PUGL_MOD_SHIFT ? PUGL_KEY_PRESS : PUGL_KEY_RELEASE; - special = PUGL_KEY_SHIFT; + special = PUGL_KEY_SHIFT_L; } else if ((mods & PUGL_MOD_CTRL) != (puglview->impl->mods & PUGL_MOD_CTRL)) { type = mods & PUGL_MOD_CTRL ? PUGL_KEY_PRESS : PUGL_KEY_RELEASE; - special = PUGL_KEY_CTRL; + special = PUGL_KEY_CTRL_L; } else if ((mods & PUGL_MOD_ALT) != (puglview->impl->mods & PUGL_MOD_ALT)) { type = mods & PUGL_MOD_ALT ? PUGL_KEY_PRESS : PUGL_KEY_RELEASE; - special = PUGL_KEY_ALT; + special = PUGL_KEY_ALT_L; } else if ((mods & PUGL_MOD_SUPER) != (puglview->impl->mods & PUGL_MOD_SUPER)) { type = mods & PUGL_MOD_SUPER ? PUGL_KEY_PRESS : PUGL_KEY_RELEASE; - special = PUGL_KEY_SUPER; + special = PUGL_KEY_SUPER_L; } if (special != 0) { @@ -403,7 +403,7 @@ puglFreeWorldInternals(PuglWorld* world) } static PuglKey -keySymToSpecial(WPARAM sym) +keySymToSpecial(const WPARAM sym, const bool ext) { // clang-format off switch (sym) { @@ -430,13 +430,13 @@ keySymToSpecial(WPARAM sym) case VK_HOME: return PUGL_KEY_HOME; case VK_END: return PUGL_KEY_END; case VK_INSERT: return PUGL_KEY_INSERT; - case VK_SHIFT: + case VK_SHIFT: return ext ? PUGL_KEY_SHIFT_L : PUGL_KEY_SHIFT_R; case VK_LSHIFT: return PUGL_KEY_SHIFT_L; case VK_RSHIFT: return PUGL_KEY_SHIFT_R; - case VK_CONTROL: + case VK_CONTROL: return ext ? PUGL_KEY_CTRL_L : PUGL_KEY_CTRL_R; case VK_LCONTROL: return PUGL_KEY_CTRL_L; case VK_RCONTROL: return PUGL_KEY_CTRL_R; - case VK_MENU: + case VK_MENU: return ext ? PUGL_KEY_ALT_L : PUGL_KEY_ALT_R; case VK_LMENU: return PUGL_KEY_ALT_L; case VK_RMENU: return PUGL_KEY_ALT_R; case VK_LWIN: return PUGL_KEY_SUPER_L; @@ -563,7 +563,7 @@ initKeyEvent(PuglKeyEvent* event, const PuglKey special = keySymToSpecial(vkey); if (special) { - if (ext && (special == PUGL_KEY_CTRL || special == PUGL_KEY_ALT)) { + if (ext && (special == PUGL_KEY_CTRL_L || special == PUGL_KEY_ALT_L)) { event->key = (uint32_t)special + 1U; // Right hand key } else { event->key = (uint32_t)special; |