Blob Blame History Raw
From a97fd51f9062e9bab8336baf2da35219fc72d4d3 Mon Sep 17 00:00:00 2001
From: raveit65 <mate@raveit.de>
Date: Mon, 1 May 2017 14:35:34 +0200
Subject: [PATCH] Revert "compositor: fix possible crash closing/destroying
 window"

This reverts commit 768fdd8d3852e67555a585da28b6404a97853cbd.

fixes probably "strange window switching foreground/background behavior"
issue 251
---
 src/compositor/compositor-private.h |  3 ---
 src/compositor/compositor-xrender.c | 34 +++++++++-------------------------
 src/compositor/compositor.c         |  4 ----
 3 files changed, 9 insertions(+), 32 deletions(-)

diff --git a/src/compositor/compositor-private.h b/src/compositor/compositor-private.h
index 1fa6469..fcb1518 100644
--- a/src/compositor/compositor-private.h
+++ b/src/compositor/compositor-private.h
@@ -50,9 +50,6 @@ struct _MetaCompositor
                              MetaScreen     *screen,
                              MetaWindow     *window);
 
-  void (*free_window) (MetaCompositor *compositor,
-                       MetaWindow     *window);
-
   void (*maximize_window)   (MetaCompositor *compositor,
                              MetaWindow     *window);
   void (*unmaximize_window) (MetaCompositor *compositor,
diff --git a/src/compositor/compositor-xrender.c b/src/compositor/compositor-xrender.c
index 4ad4a6a..04e89f6 100644
--- a/src/compositor/compositor-xrender.c
+++ b/src/compositor/compositor-xrender.c
@@ -2692,38 +2692,23 @@ xrender_end_move (MetaCompositor *compositor,
 #ifdef HAVE_COMPOSITE_EXTENSIONS
 #endif
 }
-#endif /* 0 */
 
 static void
 xrender_free_window (MetaCompositor *compositor,
                      MetaWindow     *window)
 {
 #ifdef HAVE_COMPOSITE_EXTENSIONS
-  MetaCompositorXRender *xrc;
-  MetaFrame *frame;
-  Window xwindow;
-
-  xrc = (MetaCompositorXRender *) compositor;
-  frame = meta_window_get_frame (window);
-  xwindow = None;
-
-  if (frame)
-    {
-      xwindow = meta_frame_get_xwindow (frame);
-    }
-  else
-    {
-      /* FIXME: When an undecorated window is hidden this is called, but the
-       * window does not get readded if it is subsequentally shown again. See:
-       * http://bugzilla.gnome.org/show_bug.cgi?id=504876
-       */
-      /* xwindow = meta_window_get_xwindow (window); */
-    }
-
-  if (xwindow != None)
-    destroy_win (xrc->display, xwindow, FALSE);
+  /* FIXME: When an undecorated window is hidden this is called,
+     but the window does not get readded if it is subsequentally shown again
+     See http://bugzilla.gnome.org/show_bug.cgi?id=504876
+
+     I don't *think* theres any need for this call anyway, leaving it out
+     does not seem to cause any side effects so far, but I should check with
+     someone who understands more. */
+  /* destroy_win (compositor->display, window->xwindow, FALSE); */
 #endif
 }
+#endif /* 0 */
 
 static void
 xrender_process_event (MetaCompositor *compositor,
@@ -3023,7 +3008,6 @@ static MetaCompositor comp_info = {
   xrender_process_event,
   xrender_get_window_surface,
   xrender_set_active_window,
-  xrender_free_window,
   xrender_maximize_window,
   xrender_unmaximize_window,
 };
diff --git a/src/compositor/compositor.c b/src/compositor/compositor.c
index 39344e8..7e3c79c 100644
--- a/src/compositor/compositor.c
+++ b/src/compositor/compositor.c
@@ -156,10 +156,6 @@ void meta_compositor_end_move (MetaCompositor *compositor,
 void meta_compositor_free_window (MetaCompositor *compositor,
                                   MetaWindow     *window)
 {
-#ifdef HAVE_COMPOSITE_EXTENSIONS
-  if (compositor && compositor->free_window)
-    compositor->free_window (compositor, window);
-#endif
 }
 
 void
-- 
2.12.2