diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index 256c6ce..c0a1617 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -44,7 +44,9 @@ enum MwLLKeyEnum { MwLLKeyUp, MwLLKeyDown, MwLLKeyEnter, - MwLLKeyEscape + MwLLKeyEscape, + MwLLKeyLeftShift, + MwLLKeyRightShift }; enum MwLLMouseEnum { diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 0105a1b..cac30ad 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -143,6 +143,8 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { if(wp == VK_RETURN) n = MwLLKeyEnter; if(wp == VK_BACK) n = MwLLKeyBackSpace; if(wp == VK_ESCAPE) n = MwLLKeyEscape; + if(wp == VK_LSHIFT) n = MwLLKeyLeftShift; + if(wp == VK_RSHIFT) n = MwLLKeyRightShift; if(n != -1) { if(msg == WM_KEYDOWN) { MwLLDispatch(u->ll, key, &n); diff --git a/src/backend/x11.c b/src/backend/x11.c index bfe67cc..86513a7 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -347,6 +347,10 @@ void MwLLNextEvent(MwLL handle) { n = MwLLKeyEnter; } else if(strcmp(str, "Escape") == 0){ n = MwLLKeyEscape; + }else if(strcmp(str, "Shift_L") == 0){ + n = MwLLKeyLeftShift; + }else if(strcmp(str, "Shift_R") == 0){ + n = MwLLKeyRightShift; } if(n != -1) {