Mercurial > sdl-ios-xcode
changeset 3773:3b5691f85c0d gsoc2008_manymouse
Further x11 code improvments + comments
author | Szymon Wilczek <kazeuser@gmail.com> |
---|---|
date | Mon, 04 Aug 2008 11:18:10 +0000 |
parents | 9087a84cba51 |
children | 8b5b67000dc0 |
files | src/events/SDL_mouse_c.h src/video/x11/SDL_x11video.c src/video/x11/SDL_x11window.c |
diffstat | 3 files changed, 47 insertions(+), 87 deletions(-) [+] |
line wrap: on
line diff
--- a/src/events/SDL_mouse_c.h Sat Aug 02 17:40:49 2008 +0000 +++ b/src/events/SDL_mouse_c.h Mon Aug 04 11:18:10 2008 +0000 @@ -56,6 +56,13 @@ /* Free the mouse when it's time */ void (*FreeMouse) (SDL_Mouse * mouse); + /*data common for tablets*/ + int pressure; + int pressure_max; + int pressure_min; + int tilt;/*for future use*/ + int rotation;/*for future use*/ + /* Data common to all mice */ SDL_WindowID focus; int which; @@ -64,11 +71,7 @@ int z;/*for future use*/ int xdelta; int ydelta; - int pressure; - int pressure_max; - int pressure_min; - int tilt;/*for future use*/ - int rotation;/*for future use*/ + char* name; Uint8 buttonstate; SDL_bool relative_mode;
--- a/src/video/x11/SDL_x11video.c Sat Aug 02 17:40:49 2008 +0000 +++ b/src/video/x11/SDL_x11video.c Mon Aug 04 11:18:10 2008 +0000 @@ -220,7 +220,7 @@ int X11_VideoInit(_THIS) { - int i,index=0,c_not_needed; + int i,index=0,event_code; XEventClass xEvent; SDL_VideoData *data = (SDL_VideoData *) _this->driverdata; @@ -250,90 +250,46 @@ return -1; } X11_InitMouse(_this); + /*we're generating the table of events that should be recognized*/ for(i=0;i<SDL_NumOfXDevices;++i) - { - DeviceKeyPress(SDL_XDevices[i],c_not_needed,xEvent); - if (xEvent) SDL_XEvents[index++] = xEvent; - DeviceKeyRelease(SDL_XDevices[i],c_not_needed,xEvent); - if (xEvent) SDL_XEvents[index++] = xEvent; - - /*focus events*/ - DeviceFocusIn(SDL_XDevices[i],c_not_needed,xEvent); - if (xEvent) SDL_XEvents[index++] = xEvent; - DeviceFocusOut(SDL_XDevices[i],c_not_needed,xEvent); - if (xEvent) SDL_XEvents[index++] = xEvent; - - /*button events*/ - DeviceButtonPress(SDL_XDevices[i],c_not_needed,xEvent); - if (xEvent) - { - SDL_XEvents[index++] = xEvent; - button_pressed=c_not_needed; - } - DeviceButtonRelease(SDL_XDevices[i],c_not_needed,xEvent); - if (xEvent) - { - SDL_XEvents[index++] = xEvent; - button_released=c_not_needed; - } + { + /*button events*/ + DeviceButtonPress(SDL_XDevices[i],event_code,xEvent); + if (xEvent) + { + SDL_XEvents[index++] = xEvent; + button_pressed=event_code; + } + DeviceButtonRelease(SDL_XDevices[i],event_code,xEvent); + if (xEvent) + { + SDL_XEvents[index++] = xEvent; + button_released=event_code; + } - /*proximity events*/ - ProximityIn(SDL_XDevices[i],c_not_needed,xEvent); - if (xEvent) - { - SDL_XEvents[index++] = xEvent; - proximity_in=c_not_needed; - } - ProximityOut(SDL_XDevices[i],c_not_needed,xEvent); - if (xEvent) - { - SDL_XEvents[index++] = xEvent; - proximity_out=c_not_needed; - } - /*motion events*/ - DeviceMotionNotify(SDL_XDevices[i],c_not_needed,xEvent); - if (xEvent) - { - SDL_XEvents[index++] = xEvent; - motion=c_not_needed; - } + /*proximity events*/ + ProximityIn(SDL_XDevices[i],event_code,xEvent); + if (xEvent) + { + SDL_XEvents[index++] = xEvent; + proximity_in=event_code; + } + ProximityOut(SDL_XDevices[i],event_code,xEvent); + if (xEvent) + { + SDL_XEvents[index++] = xEvent; + proximity_out=event_code; + } - /*device state*/ - DeviceStateNotify(SDL_XDevices[i],c_not_needed,xEvent); - if (xEvent) SDL_XEvents[index++] = xEvent; - DeviceMappingNotify(SDL_XDevices[i], - c_not_needed,xEvent); - if (xEvent) SDL_XEvents[index++] = xEvent; - ChangeDeviceNotify(SDL_XDevices[i],c_not_needed,xEvent); - if (xEvent) SDL_XEvents[index++] = xEvent; - -#if 0 - /* this cuts the motion data down - not sure if this is useful */ - DevicePointerMotionHint(SDL_XDevices[i], - c_not_neededINPUTEVENT_DEVICE_POINTER_MOTION_HINT],xEvent); - if (xEvent) SDL_XEvents[index++] = xEvent; -#endif + /*motion events*/ + DeviceMotionNotify(SDL_XDevices[i],event_code,xEvent); + if (xEvent) + { + SDL_XEvents[index++] = xEvent; + motion=event_code; + } - /*button motion*/ - DeviceButtonMotion(SDL_XDevices[i], - c_not_needed,xEvent); - if (xEvent) SDL_XEvents[index++] = xEvent; - DeviceButton1Motion(SDL_XDevices[i], - c_not_needed,xEvent); - if (xEvent) SDL_XEvents[index++] = xEvent; - DeviceButton2Motion(SDL_XDevices[i], - c_not_needed,xEvent); - if (xEvent) SDL_XEvents[index++] = xEvent; - DeviceButton3Motion(SDL_XDevices[i], - c_not_needed,xEvent); - if (xEvent) SDL_XEvents[index++] = xEvent; - DeviceButton4Motion(SDL_XDevices[i], - c_not_needed,xEvent); - if (xEvent) SDL_XEvents[index++] = xEvent; - DeviceButton5Motion(SDL_XDevices[i], - c_not_needed,xEvent); - if (xEvent) SDL_XEvents[index++] = xEvent; } SDL_NumOfXEvents=index;
--- a/src/video/x11/SDL_x11window.c Sat Aug 02 17:40:49 2008 +0000 +++ b/src/video/x11/SDL_x11window.c Mon Aug 04 11:18:10 2008 +0000 @@ -490,7 +490,6 @@ PointerMotionMask | KeyPressMask | KeyReleaseMask | PropertyChangeMask | StructureNotifyMask | KeymapStateMask | fevent)); - XSelectExtensionEvent(data->display, w, SDL_XEvents, SDL_NumOfXEvents); } #else XMapWindow(data->display,w); @@ -500,8 +499,10 @@ PointerMotionMask | KeyPressMask | KeyReleaseMask | PropertyChangeMask | StructureNotifyMask | KeymapStateMask)); +#endif + + /*we're informing the display what extension events we want to receive from it*/ XSelectExtensionEvent(data->display, w, SDL_XEvents, SDL_NumOfXEvents); -#endif return 0; }