fixed mouse events in fb version too
[winnie] / src / fbdev / mouse.cc
index 5fd080b..61c5406 100644 (file)
@@ -71,12 +71,15 @@ void process_mouse_event()
                return;
        }
 
-       Window *top = wm->get_window_at_pos(pointer_x, pointer_y);
-       if(top) {
-               wm->set_focused_window(top);
-       }
-       else {
-               wm->set_focused_window(0);
+       Window *top;
+       if(!(top = wm->get_grab_window())) {
+               top = wm->get_window_at_pos(pointer_x, pointer_y);
+               if(top) {
+                       wm->set_focused_window(top);
+               }
+               else {
+                       wm->set_focused_window(0);
+               }
        }
 
         /* - send each pointer move and button press/release to the topmost window
@@ -101,7 +104,8 @@ void process_mouse_event()
                        int s = (bnstate >> i) & 1;
                        int prev_s = (prev_state >> i) & 1;
                        if(s != prev_s) {
-                               button_callback(top, i, s);
+                               Rect rect = top->get_absolute_rect();
+                               button_callback(top, i, s, pointer_x - rect.x, pointer_y - rect.y);
                        }
                }
        }