X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fevents.c;h=b5d3c18c4473bfdee23c1b4bbf70b19512eafa42;hb=6b83db8bee17d70c4e89dc3e3b703b7032aa5f27;hp=b9e4e9a2a5127bcd3a007623d04672f7aab6e3fb;hpb=05c80e257e74b9f48c5d4b5cc807db0a4fb82fd2;p=rocksndiamonds.git diff --git a/src/events.c b/src/events.c index b9e4e9a2..b5d3c18c 100644 --- a/src/events.c +++ b/src/events.c @@ -216,7 +216,7 @@ void HandleButtonEvent(XButtonEvent *event) { motion_status = FALSE; - if (event->type==ButtonPress) + if (event->type == ButtonPress) button_status = event->button; else button_status = MB_RELEASED; @@ -226,9 +226,21 @@ void HandleButtonEvent(XButtonEvent *event) void HandleMotionEvent(XMotionEvent *event) { + Window root, child; + int root_x, root_y; + int win_x, win_y; + unsigned int mask; + + if (!XQueryPointer(display, window, &root, &child, &root_x, &root_y, + &win_x, &win_y, &mask)) + return; + + if (!button_status && game_status != LEVELED) + return; + motion_status = TRUE; - HandleButton(event->x, event->y, button_status); + HandleButton(win_x, win_y, button_status); } void HandleKeyEvent(XKeyEvent *event) @@ -300,9 +312,11 @@ void HandleButton(int mx, int my, int button) old_mx = mx; old_my = my; + /* HandleVideoButtons(mx,my, button); HandleSoundButtons(mx,my, button); HandleGameButtons(mx,my, button); + */ } HandleGadgets(mx, my, button); @@ -326,7 +340,6 @@ void HandleButton(int mx, int my, int button) break; case LEVELED: - LevelEd(mx,my, button); break; case HELPSCREEN: @@ -532,7 +545,6 @@ void HandleKey(KeySym key, int key_status) case LEVELED: HandleLevelEditorKeyInput(key); - LevelNameTyping(key); break; case PLAYING: