mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-02-17 01:11:45 +00:00
[qwaq] Move mouse event offsetting to Window
This way, Group doesn't need to query its owner's position.
This commit is contained in:
parent
8707ac0d57
commit
30519e93fb
2 changed files with 6 additions and 10 deletions
|
@ -127,17 +127,11 @@ find_mouse_view(Group *group, Point pos)
|
|||
[[views objectAtIndex:focused] handleEvent: event];
|
||||
}
|
||||
} else if (event.what & qe_positional) {
|
||||
Point origin = {};
|
||||
if (owner) {
|
||||
origin = [owner origin];
|
||||
}
|
||||
event.mouse.x -= origin.x;
|
||||
event.mouse.y -= origin.y;
|
||||
Point pos = {event.mouse.x, event.mouse.y};
|
||||
if (mouse_grabbed) {
|
||||
[mouse_grabbed handleEvent: event];
|
||||
} else {
|
||||
View *mouse_view = find_mouse_view (self, pos);
|
||||
Point pos = {event.mouse.x, event.mouse.y};
|
||||
View *mouse_view = find_mouse_view (self, pos);
|
||||
if (mouse_within != mouse_view) {
|
||||
[mouse_within onMouseLeave: pos];
|
||||
[mouse_view onMouseEnter: pos];
|
||||
|
@ -147,8 +141,6 @@ find_mouse_view(Group *group, Point pos)
|
|||
[mouse_within handleEvent: event];
|
||||
}
|
||||
}
|
||||
event.mouse.x += origin.x;
|
||||
event.mouse.y += origin.y;
|
||||
} else {
|
||||
// broadcast
|
||||
[views makeObjectsPerformSelector: @selector(draw) withObject: event];
|
||||
|
|
|
@ -154,7 +154,11 @@
|
|||
|
||||
-handleEvent: (qwaq_event_t *) event
|
||||
{
|
||||
event.mouse.x -= xpos;
|
||||
event.mouse.y -= ypos;
|
||||
[objects handleEvent: event];
|
||||
event.mouse.x += xpos;
|
||||
event.mouse.y += ypos;
|
||||
return self;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue