summaryrefslogtreecommitdiffstats
path: root/client_examples
diff options
context:
space:
mode:
Diffstat (limited to 'client_examples')
-rw-r--r--client_examples/SDLvncviewer.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/client_examples/SDLvncviewer.c b/client_examples/SDLvncviewer.c
index 58884cf..e1fe3ff 100644
--- a/client_examples/SDLvncviewer.c
+++ b/client_examples/SDLvncviewer.c
@@ -208,9 +208,20 @@ int main(int argc,char** argv) {
case SDL_VIDEOEXPOSE:
SendFramebufferUpdateRequest(cl,0,0,cl->width,cl->height,FALSE);
break;
+ case SDL_MOUSEBUTTONUP: case SDL_MOUSEBUTTONDOWN:
case SDL_MOUSEMOTION: {
int x,y;
- SDL_GetMouseState(&x,&y);
+ int state=SDL_GetMouseState(&x,&y);
+ struct { int sdl; int rfb; } buttonMapping[]={
+ {SDL_BUTTON_LEFT, rfbButton1Mask},
+ {SDL_BUTTON_RIGHT, rfbButton2Mask},
+ {SDL_BUTTON_MIDDLE, rfbButton3Mask},
+ {0,0}
+ };
+ int i;
+ for(buttonMask=0,i=0;buttonMapping[i].sdl;i++)
+ if(state&SDL_BUTTON(buttonMapping[i].sdl))
+ buttonMask|=buttonMapping[i].rfb;
SendPointerEvent(cl,x,y,buttonMask);
}
break;