X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fwayland%2Ffg_input_devices_wl.c;h=bb32f98f1f784ac5cdc51ffc588988331f2ca2b8;hb=c5fa24956f3db8df3f658b5dc64353dede2e10ea;hp=0aaa91e189ea153706033873d6c45669619d40fb;hpb=af47c3f93c7834b4006c49ec9df6a6ffdd3025de;p=freeglut diff --git a/src/wayland/fg_input_devices_wl.c b/src/wayland/fg_input_devices_wl.c index 0aaa91e..bb32f98 100644 --- a/src/wayland/fg_input_devices_wl.c +++ b/src/wayland/fg_input_devices_wl.c @@ -71,8 +71,10 @@ void fghKeyboardInterpretKeysym( SFG_Window* window, xkb_keysym_t sym, uint32_t state ) { - FGCBKeyboard keyboard_cb; - FGCBSpecial special_cb; + FGCBKeyboardUC keyboard_cb; + FGCBSpecialUC special_cb; + FGCBUserData keyboard_ud; + FGCBUserData special_ud; char string[16]; int special = -1; @@ -81,13 +83,17 @@ void fghKeyboardInterpretKeysym( SFG_Window* window, * others, which need to be translated to GLUT_KEY_Xs... */ if( state ) { - keyboard_cb = (FGCBKeyboard)( FETCH_WCB( *window, Keyboard )); - special_cb = (FGCBSpecial) ( FETCH_WCB( *window, Special )); + keyboard_cb = (FGCBKeyboardUC)( FETCH_WCB( *window, Keyboard )); + special_cb = (FGCBSpecialUC) ( FETCH_WCB( *window, Special )); + keyboard_ud = FETCH_USER_DATA_WCB( *window, Keyboard ); + special_ud = FETCH_USER_DATA_WCB( *window, Special ); } else { - keyboard_cb = (FGCBKeyboard)( FETCH_WCB( *window, KeyboardUp )); - special_cb = (FGCBSpecial) ( FETCH_WCB( *window, SpecialUp )); + keyboard_cb = (FGCBKeyboardUC)( FETCH_WCB( *window, KeyboardUp )); + special_cb = (FGCBSpecialUC) ( FETCH_WCB( *window, SpecialUp )); + keyboard_ud = FETCH_USER_DATA_WCB( *window, KeyboardUp ); + special_ud = FETCH_USER_DATA_WCB( *window, SpecialUp ); } switch( sym ) @@ -127,13 +133,13 @@ void fghKeyboardInterpretKeysym( SFG_Window* window, if( special_cb && (special != -1) ) { fgSetWindow( window ); - special_cb( special, window->State.MouseX, window->State.MouseY ); + special_cb( special, window->State.MouseX, window->State.MouseY, special_ud ); } else if( keyboard_cb && (special == -1) ) { fgSetWindow( window ); xkb_keysym_to_utf8( sym, string, sizeof( string ) ); - keyboard_cb( string[0], window->State.MouseX, window->State.MouseY ); + keyboard_cb( string[0], window->State.MouseX, window->State.MouseY, keyboard_ud ); } }