]> git.tdb.fi Git - libs/gui.git/blobdiff - source/gbase/window.cpp
Add platform independent constants for keys (win32 code untested)
[libs/gui.git] / source / gbase / window.cpp
index da877e966679b8ffd8f66b362a9f8feec2b6e695..4a14441e9c3704507520135239ac63ae729ea14d 100644 (file)
@@ -19,8 +19,6 @@ Distributed under the LGPL
 
 using namespace std;
 
-#include <iostream>
-
 namespace Msp {
 namespace Graphics {
 
@@ -231,11 +229,11 @@ void Window::event(const XEvent &ev)
                        char buf[16];
                        XLookupString(const_cast<XKeyEvent *>(&ev.xkey), buf, sizeof(buf), 0, 0);
                        // XXX Handle the result according to locale
-                       signal_key_press.emit(ev.xkey.keycode, ev.xkey.state, buf[0]);
+                       signal_key_press.emit(XKeycodeToKeysym(display.get_display(), ev.xkey.keycode, 0), ev.xkey.state, buf[0]);
                }
                break;
        case KeyRelease:
-               signal_key_release.emit(ev.xkey.keycode, ev.xkey.state);
+               signal_key_release.emit(XKeycodeToKeysym(display.get_display(), ev.xkey.keycode, 0), ev.xkey.state);
                break;
        case ConfigureNotify:
                options.width=ev.xconfigure.width;
@@ -264,10 +262,10 @@ int Window::wndproc(UINT msg, WPARAM wp, LPARAM lp)
        switch(msg)
        {
        case WM_KEYDOWN:
-               signal_key_press.emit((lp>>16)&0x1FF, 0, wp);
+               signal_key_press.emit(wp, 0, wp);
                break;
        case WM_KEYUP:
-               signal_key_release.emit((lp>>16)&0x1FF, 0);
+               signal_key_release.emit(wp, 0);
                break;
        case WM_LBUTTONDOWN:
                signal_button_press.emit(GET_X_LPARAM(lp), GET_Y_LPARAM(lp), 1, 0);