summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdk/mir/gdkmireventsource.c2
-rw-r--r--gdk/mir/gdkmirwindowimpl.c11
2 files changed, 5 insertions, 8 deletions
diff --git a/gdk/mir/gdkmireventsource.c b/gdk/mir/gdkmireventsource.c
index 5be955dcc1..c1b7febaf0 100644
--- a/gdk/mir/gdkmireventsource.c
+++ b/gdk/mir/gdkmireventsource.c
@@ -681,6 +681,8 @@ gdk_mir_event_source_convert_events (GdkMirEventSource *source)
*/
if (window != NULL)
gdk_mir_event_source_queue_event (source->display, window, &event->event);
+ else
+ g_warning ("window was destroyed before event arrived...");
gdk_mir_queued_event_free (event);
}
diff --git a/gdk/mir/gdkmirwindowimpl.c b/gdk/mir/gdkmirwindowimpl.c
index 5ed96dbfbf..79dbe7353a 100644
--- a/gdk/mir/gdkmirwindowimpl.c
+++ b/gdk/mir/gdkmirwindowimpl.c
@@ -86,7 +86,9 @@ ensure_surface (GdkWindow *window)
if (impl->surface)
return;
- /* no destroy notify: see below... */
+ /* no destroy notify -- we must leak for now
+ * https://bugs.launchpad.net/mir/+bug/1324100
+ */
event_delegate.context = _gdk_mir_event_source_get_window_reference (window);
// Should probably calculate this once?
@@ -116,13 +118,6 @@ ensure_no_surface (GdkWindow *window)
GdkMirWindowImpl *impl = GDK_MIR_WINDOW_IMPL (window->impl);
GdkMirWindowReference *window_ref;
- /* hack: no destroy notify on the mir surface, so we have to grab it
- * from ourselves again...
- */
- window_ref = _gdk_mir_event_source_get_window_reference (window);
- _gdk_mir_window_reference_unref (window_ref);
- _gdk_mir_window_reference_unref (window_ref);
-
if (impl->cairo_surface)
{
cairo_surface_finish (impl->cairo_surface);