• Sam Lantinga's avatar
    Fixed bug 1173 (No mouse wheel event on linux/x11) · 65b0f309
    Sam Lantinga authored
     Matthias      2011-03-20 23:07:02 PDT
    
    On X11, SDL 1.3 does not generate a mouse wheel event. Instead, button
    down/buttton up events are generated by SDL. After looking at the code in
    SDL_x11events.c, I assume this is due to the fact that X11 does not have a
    dedicated mouse wheel event.
    
    I did a little research on the behavior of mouse wheel events on X11 systems.
    Apparently, mouse wheel events generate a button down/button up event with the
    same time, i.e. with exact same timestamp.
    
    Attached you can find my changes to SDL_x11events.c, which generates SDL mouse
    wheel events for those button down events that have a button release event
    immediately following it (for the same button, and with the same timestamp).
    
    I did have to make an assumption: As standard X11 implementations know only 5
    buttons, I have mapped Button4 to "wheel up" (i.e. +1), and Button5 to "wheel
    down" (i.e. -1).
    
    Note that if you include this patch, no SDL button down/up events will be
    generated on X11 platforms for mouse wheel events (which is probably a
    significant change for those that have programmed their code to work with
    them).
    65b0f309
Name
Last commit
Last update
..
SDL_x11clipboard.c Loading commit data...
SDL_x11clipboard.h Loading commit data...
SDL_x11dyn.c Loading commit data...
SDL_x11dyn.h Loading commit data...
SDL_x11events.c Loading commit data...
SDL_x11events.h Loading commit data...
SDL_x11framebuffer.c Loading commit data...
SDL_x11framebuffer.h Loading commit data...
SDL_x11keyboard.c Loading commit data...
SDL_x11keyboard.h Loading commit data...
SDL_x11modes.c Loading commit data...
SDL_x11modes.h Loading commit data...
SDL_x11mouse.c Loading commit data...
SDL_x11mouse.h Loading commit data...
SDL_x11opengl.c Loading commit data...
SDL_x11opengl.h Loading commit data...
SDL_x11opengles.c Loading commit data...
SDL_x11opengles.h Loading commit data...
SDL_x11shape.c Loading commit data...
SDL_x11shape.h Loading commit data...
SDL_x11sym.h Loading commit data...
SDL_x11touch.c Loading commit data...
SDL_x11touch.h Loading commit data...
SDL_x11video.c Loading commit data...
SDL_x11video.h Loading commit data...
SDL_x11window.c Loading commit data...
SDL_x11window.h Loading commit data...
imKStoUCS.c Loading commit data...
imKStoUCS.h Loading commit data...