Merged from trunk:

2007-12-21  Richard Hult  <richard@imendio.com>

	Merged from trunk:

	* gdk/quartz/gdkwindow-quartz.c: (_gdk_windowing_window_destroy):
	Plug leak of destroyed subviews, fixes bug #504753.

svn path=/branches/gtk-2-12/; revision=19219
This commit is contained in:
Richard Hult
2007-12-21 20:23:35 +00:00
committed by Richard Hult
parent 322dea23ec
commit 1527fc1dc5
2 changed files with 16 additions and 14 deletions

View File

@@ -1,3 +1,10 @@
2007-12-21 Richard Hult <richard@imendio.com>
Merged from trunk:
* gdk/quartz/gdkwindow-quartz.c: (_gdk_windowing_window_destroy):
Plug leak of destroyed subviews, fixes bug #504753.
2007-12-20 Johan Dahlin <johan@gnome.org>
* gtk/gtk-builder-convert (GtkBuilderConverter._remove_window):

View File

@@ -868,6 +868,7 @@ _gdk_windowing_window_destroy (GdkWindow *window,
GdkWindowObject *private;
GdkWindowImplQuartz *impl;
GdkWindowObject *parent;
GdkWindow *mouse_window;
private = GDK_WINDOW_OBJECT (window);
impl = GDK_WINDOW_IMPL_QUARTZ (private->impl);
@@ -895,24 +896,21 @@ _gdk_windowing_window_destroy (GdkWindow *window,
if (window == _gdk_quartz_keyboard_grab_window)
gdk_keyboard_ungrab (0);
_gdk_quartz_drawable_finish (GDK_DRAWABLE (impl));
mouse_window = _gdk_quartz_events_get_mouse_window (FALSE);
if (window == mouse_window ||
_gdk_quartz_window_is_ancestor (window, mouse_window))
_gdk_quartz_events_update_mouse_window (_gdk_root);
if (!recursing && !foreign_destroy)
{
GdkWindowImplQuartz *impl = GDK_WINDOW_IMPL_QUARTZ (GDK_WINDOW_OBJECT (window)->impl);
GdkWindow *mouse_window;
mouse_window = _gdk_quartz_events_get_mouse_window (FALSE);
if (window == mouse_window ||
_gdk_quartz_window_is_ancestor (window, mouse_window))
_gdk_quartz_events_update_mouse_window (_gdk_root);
GDK_QUARTZ_ALLOC_POOL;
_gdk_quartz_drawable_finish (GDK_DRAWABLE (impl));
if (impl->toplevel)
[impl->toplevel close];
else if (impl->view)
[impl->view release];
[impl->view removeFromSuperview];
GDK_QUARTZ_RELEASE_POOL;
}
@@ -2884,9 +2882,6 @@ gdk_window_configure_finished (GdkWindow *window)
void
gdk_window_destroy_notify (GdkWindow *window)
{
/* FIXME: Implement. We should call this from -[GdkQuartzWindow dealloc] or
* -[GdkQuartzView dealloc], although I suspect that currently they leak
* anyway. */
}
void