Add private backend data to events, and handle it when copying/freeing

2008-05-06  Richard Hult  <richard@imendio.com>

	* gdk/gdkevents.c: (gdk_event_copy), (gdk_event_free):
	* gdk/gdkinternals.h: Add private backend data to events, and
	handle it when copying/freeing events. Currently only needed in
	the quartz backend.

	* gdk/directfb/gdkevents-directfb.c:
	* gdk/quartz/gdkevents-quartz.c:
	* gdk/win32/gdkevents-win32.c:
	* gdk/x11/gdkevents-x11.c: (_gdk_windowing_event_data_copy)
	(_gdk_windowing_event_data_free): Add stubs for X11, win32 and
	directfb. Implement for quartz. Part of fixing bug #473822.

svn path=/trunk/; revision=20078
This commit is contained in:
Richard Hult
2008-05-06 21:00:06 +00:00
committed by Richard Hult
parent e6431057d6
commit 4ee2d1b6ba
7 changed files with 88 additions and 0 deletions

View File

@ -420,6 +420,9 @@ gdk_event_copy (const GdkEvent *event)
default:
break;
}
if (gdk_event_is_allocated (event))
_gdk_windowing_event_data_copy (new_event, event);
return new_event;
}
@ -485,6 +488,8 @@ gdk_event_free (GdkEvent *event)
break;
}
_gdk_windowing_event_data_free (event);
g_hash_table_remove (event_hash, event);
g_slice_free (GdkEventPrivate, (GdkEventPrivate*) event);
}