diff --git a/include/Mw/Constants.h b/include/Mw/Constants.h
index dbb9953..15853ff 100644
--- a/include/Mw/Constants.h
+++ b/include/Mw/Constants.h
@@ -121,12 +121,12 @@ enum MwMOUSE {
MwMOUSE_WHEELDOWN
};
-#define MwKEY_MASK (1 << 31)
-#define MwKEY_CONTROL_MASK MwKEY_MASK | (1 << 30)
-#define MwKEY_ALT_MASK MwKEY_MASK | (1 << 29)
+#define MwKEY_FLAG 0x80000000
+#define MwKEY_CONTROL_FLAG MwKEY_FLAG | 0x40000000
+#define MwKEY_ALT_FLAG MwKEY_FLAG | 0x20000000
enum MwKEY {
- MwKEY_BACKSPACE = MwKEY_MASK | 1,
+ MwKEY_BACKSPACE = MwKEY_FLAG | 1,
MwKEY_LEFT,
MwKEY_RIGHT,
MwKEY_UP,
diff --git a/milsko.xml b/milsko.xml
index 0fda1d6..717a49e 100644
--- a/milsko.xml
+++ b/milsko.xml
@@ -216,15 +216,44 @@
+
+ 0x80000001
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
0x0fffffff
+
0xf
0xf0
0x10
0x20
0x40
0x80
+
+ 0x80000000
+ 0xc0000000
+ 0xa0000000
diff --git a/src/backend/gdi.c b/src/backend/gdi.c
index 5725912..b7bebe0 100644
--- a/src/backend/gdi.c
+++ b/src/backend/gdi.c
@@ -166,13 +166,13 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) {
const int base = 'A' - 1;
if(n != 0x1b && n <= 0x1f) {
- n = (n + base) | MwKEY_CONTROL_MASK;
+ n = (n + base) | MwKEY_CONTROL_FLAG;
if(!(GetKeyState(VK_LSHIFT) || GetKeyState(VK_RSHIFT))) n += 0x20;
}
- if(HIBYTE(VkKeyScan(wp)) & 2) n |= MwKEY_CONTROL_MASK;
- if(msg == WM_SYSCHAR) n |= MwKEY_ALT_MASK;
+ if(HIBYTE(VkKeyScan(wp)) & 2) n |= MwKEY_CONTROL_FLAG;
+ if(msg == WM_SYSCHAR) n |= MwKEY_ALT_FLAG;
- if((0x20 <= n && n <= 0x7f) || (n & MwKEY_MASK)) MwLLDispatch(u->ll, key, &n);
+ if((0x20 <= n && n <= 0x7f) || (n & MwKEY_FLAG)) MwLLDispatch(u->ll, key, &n);
} else if(msg == WM_SETFOCUS) {
MwLLDispatch(u->ll, focus_in, NULL);
} else if(msg == WM_KILLFOCUS) {
@@ -193,7 +193,7 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) {
if(wp == VK_CONTROL) n = MwKEY_CONTROL;
if((msg == WM_SYSKEYDOWN || msg == WM_SYSKEYUP) && n != -1 && wp != VK_MENU) {
- n |= MwKEY_ALT_MASK;
+ n |= MwKEY_ALT_FLAG;
}
if(n != -1) {
if(msg == WM_KEYDOWN || msg == WM_SYSKEYDOWN) {
diff --git a/src/backend/wayland.c b/src/backend/wayland.c
index 56a356f..5936648 100644
--- a/src/backend/wayland.c
+++ b/src/backend/wayland.c
@@ -807,10 +807,10 @@ static void keyboard_key(void* data,
}
if((self->wayland.mod_state & 4) == 4) {
- key |= MwKEY_CONTROL_MASK;
+ key |= MwKEY_CONTROL_FLAG;
}
if((self->wayland.mod_state & 8) == 8) {
- key |= MwKEY_ALT_MASK;
+ key |= MwKEY_ALT_FLAG;
}
if(key != -1) {
diff --git a/src/backend/x11.c b/src/backend/x11.c
index fd86af0..8d93e6a 100644
--- a/src/backend/x11.c
+++ b/src/backend/x11.c
@@ -815,10 +815,10 @@ static void MwLLNextEventImpl(MwLL handle) {
}
if(n != MwKEY_CONTROL && ev.xkey.state & ControlMask) {
- n |= MwKEY_CONTROL_MASK;
+ n |= MwKEY_CONTROL_FLAG;
}
if(n != MwKEY_ALT && ev.xkey.state & Mod1Mask) {
- n |= MwKEY_ALT_MASK;
+ n |= MwKEY_ALT_FLAG;
}
if(n != -1) {
diff --git a/src/widget/entry.c b/src/widget/entry.c
index 173b5ee..d38e6d5 100644
--- a/src/widget/entry.c
+++ b/src/widget/entry.c
@@ -113,9 +113,9 @@ static void key(MwWidget handle, int code) {
t->cursor++;
} else if(code == MwKEY_ENTER) {
MwDispatchUserHandler(handle, MwNactivateHandler, NULL);
- } else if(code == (MwKEY_CONTROL_MASK | 'v')) {
+ } else if(code == (MwKEY_CONTROL_FLAG | 'v')) {
MwLLGetClipboard(handle->lowlevel, MwCLIPBOARD_MAIN);
- } else if(!(code & MwKEY_MASK)) {
+ } else if(!(code & MwKEY_FLAG)) {
int incr = 0;
out = malloc(strlen(str) + 5 + 1);
incr += MwUTF8Copy(str, 0, out, 0, t->cursor);