No need to special case the root window now that it has the right size.

2007-06-30  Richard Hult  <richard@imendio.com>

	* gdk/quartz/gdkevents-quartz.c: (create_crossing_event),
	(synthesize_crossing_events), (find_mouse_window_for_ns_event),
	(synthesize_crossing_events_for_ns_event): No need to special case
	the root window now that it has the right size.

svn path=/trunk/; revision=18314
This commit is contained in:
Richard Hult
2007-06-30 19:50:31 +00:00
committed by Richard Hult
parent 95f61d98f3
commit a598c633b5
2 changed files with 20 additions and 45 deletions

View File

@ -638,25 +638,17 @@ create_crossing_event (GdkWindow *window,
{
NSWindow *nswindow;
GdkWindow *toplevel;
GdkWindowImplQuartz *impl;
NSPoint point;
nswindow = [nsevent window];
point = [nsevent locationInWindow];
toplevel = [(GdkQuartzView *)[nswindow contentView] gdkWindow];
impl = GDK_WINDOW_IMPL_QUARTZ (GDK_WINDOW_OBJECT (toplevel)->impl);
x_tmp = point.x;
/* Flip the y coordinate. */
if (toplevel == _gdk_root)
y_tmp = _gdk_quartz_window_get_inverted_screen_y (point.y);
else
{
GdkWindowImplQuartz *impl;
impl = GDK_WINDOW_IMPL_QUARTZ (GDK_WINDOW_OBJECT (toplevel)->impl);
y_tmp = impl->height - point.y;
}
y_tmp = impl->height - point.y;
get_converted_window_coordinates (toplevel,
x_tmp, y_tmp,
@ -832,7 +824,7 @@ synthesize_crossing_events (GdkWindow *window,
*/
g_warning ("Trying to create crossing event when current_mouse_window is NULL");
}
_gdk_quartz_events_update_mouse_window (window);
/* FIXME: This does't work when someone calls gdk_window_set_cursor
@ -1026,26 +1018,18 @@ find_mouse_window_for_ns_event (NSEvent *nsevent,
gint *y_ret)
{
GdkWindow *event_toplevel;
GdkWindowImplQuartz *impl;
GdkWindow *mouse_toplevel;
GdkWindow *mouse_window;
NSPoint point;
gint x_tmp, y_tmp;
event_toplevel = [(GdkQuartzView *)[[nsevent window] contentView] gdkWindow];
impl = GDK_WINDOW_IMPL_QUARTZ (GDK_WINDOW_OBJECT (event_toplevel)->impl);
point = [nsevent locationInWindow];
x_tmp = point.x;
/* Flip the y coordinate. */
if (event_toplevel == _gdk_root)
y_tmp = _gdk_quartz_window_get_inverted_screen_y (point.y);
else
{
GdkWindowImplQuartz *impl;
impl = GDK_WINDOW_IMPL_QUARTZ (GDK_WINDOW_OBJECT (event_toplevel)->impl);
y_tmp = impl->height - point.y;
}
y_tmp = impl->height - point.y;
if (!current_mouse_window)
return NULL;
@ -1112,6 +1096,7 @@ synthesize_crossing_events_for_ns_event (NSEvent *nsevent)
case NSMouseEntered:
{
GdkWindow *event_toplevel;
GdkWindowImplQuartz *impl;
NSPoint point;
/* This is the only case where we actually use the window from
@ -1119,20 +1104,11 @@ synthesize_crossing_events_for_ns_event (NSEvent *nsevent)
* so it can be tracked properly.
*/
event_toplevel = [(GdkQuartzView *)[[nsevent window] contentView] gdkWindow];
impl = GDK_WINDOW_IMPL_QUARTZ (GDK_WINDOW_OBJECT (event_toplevel)->impl);
point = [nsevent locationInWindow];
x = point.x;
/* Flip the y coordinate. */
if (event_toplevel == _gdk_root)
y = _gdk_quartz_window_get_inverted_screen_y (point.y);
else
{
GdkWindowImplQuartz *impl;
impl = GDK_WINDOW_IMPL_QUARTZ (GDK_WINDOW_OBJECT (event_toplevel)->impl);
y = impl->height - point.y;
}
y = impl->height - point.y;
mouse_window = _gdk_quartz_window_find_child (event_toplevel, x, y);
@ -1155,6 +1131,7 @@ synthesize_crossing_events_for_ns_event (NSEvent *nsevent)
case NSMouseExited:
{
GdkWindow *event_toplevel;
GdkWindowImplQuartz *impl;
NSPoint point;
gint x_orig, y_orig;
@ -1167,20 +1144,11 @@ synthesize_crossing_events_for_ns_event (NSEvent *nsevent)
* we need.
*/
event_toplevel = [(GdkQuartzView *)[[nsevent window] contentView] gdkWindow];
impl = GDK_WINDOW_IMPL_QUARTZ (GDK_WINDOW_OBJECT (event_toplevel)->impl);
point = [nsevent locationInWindow];
x = point.x;
/* Flip the y coordinate. */
if (event_toplevel == _gdk_root)
y = _gdk_quartz_window_get_inverted_screen_y (point.y);
else
{
GdkWindowImplQuartz *impl;
impl = GDK_WINDOW_IMPL_QUARTZ (GDK_WINDOW_OBJECT (event_toplevel)->impl);
y = impl->height - point.y;
}
y = impl->height - point.y;
if (gdk_window_get_origin (event_toplevel, &x_orig, &y_orig))
{