mirror of
https://gitea.nishi.boats/pyrite-dev/milsko
synced 2026-01-09 10:53:27 +00:00
fix gdi backend bug
git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@610 b9cfdab3-6d41-4d17-bbe4-086880011989
This commit is contained in:
@@ -130,13 +130,15 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) {
|
||||
int n = wp;
|
||||
const int base = 'A' - 1;
|
||||
|
||||
if(0x00 <= n && n <= 0x1f) {
|
||||
if(n <= 0x1f) {
|
||||
n = (n + base) | MwLLControlMask;
|
||||
if(!(HIBYTE(VkKeyScan(wp)) & 1)) n += 0x20;
|
||||
if(!(GetKeyState(VK_LSHIFT) || GetKeyState(VK_RSHIFT))) n += 0x20;
|
||||
}
|
||||
if(HIBYTE(VkKeyScan(wp)) & 2) n |= MwLLControlMask;
|
||||
if(msg == WM_SYSCHAR) n |= MwLLAltMask;
|
||||
|
||||
printf("%c\n", n & 0xff);
|
||||
|
||||
if((0x20 <= n && n <= 0x7f) || (n & MwLLKeyMask)) MwLLDispatch(u->ll, key, &n);
|
||||
} else if(msg == WM_SETFOCUS) {
|
||||
MwLLDispatch(u->ll, focus_in, NULL);
|
||||
|
||||
@@ -369,7 +369,7 @@ void MwLLNextEvent(MwLL handle) {
|
||||
if(strlen(str) == 1) {
|
||||
char s = str[0];
|
||||
|
||||
if(ev.xkey.state & (ShiftMask | LockMask)) {
|
||||
if(ev.xkey.state & (ShiftMask | LockMask) && !(ev.xkey.state & (ControlMask | Mod1Mask))) {
|
||||
n = toupper((int)s);
|
||||
} else {
|
||||
n = s;
|
||||
@@ -392,6 +392,17 @@ void MwLLNextEvent(MwLL handle) {
|
||||
n = MwLLKeyLeftShift;
|
||||
} else if(strcmp(str, "Shift_R") == 0) {
|
||||
n = MwLLKeyRightShift;
|
||||
} else if(strcmp(str, "Alt_L") == 0 || strcmp(str, "Alt_R") == 0){
|
||||
n = MwLLKeyAlt;
|
||||
} else if(strcmp(str, "Control_R") == 0 || strcmp(str, "Control_R") == 0){
|
||||
n = MwLLKeyControl;
|
||||
}
|
||||
|
||||
if(n != MwLLKeyControl && ev.xkey.state & ControlMask){
|
||||
n |= MwLLControlMask;
|
||||
}
|
||||
if(n != MwLLKeyAlt && ev.xkey.state & Mod1Mask){
|
||||
n |= MwLLAltMask;
|
||||
}
|
||||
|
||||
if(n != -1) {
|
||||
|
||||
Reference in New Issue
Block a user