summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOlivier Fourdan <fourdan@xfce.org>2020-12-12 20:42:44 +0100
committerOlivier Fourdan <fourdan@xfce.org>2020-12-12 20:58:21 +0100
commit0e30ccc211d90920909fec9ca7b913004a13606f (patch)
tree2e15d01bbdf32cbdecebeb92418c12af94d55f2d /src
parent9a4db3888c0cead24bf6206febf1a7689f04dfa3 (diff)
downloadxfwm4-0e30ccc211d90920909fec9ca7b913004a13606f.tar.gz
compositor: Trap XErrors when disabling compositor
Signed-off-by: Olivier Fourdan <fourdan@xfce.org>
Diffstat (limited to 'src')
-rw-r--r--src/compositor.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/compositor.c b/src/compositor.c
index 81bd91d6c..7aa532a32 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -1345,8 +1345,13 @@ choose_glx_settings (ScreenInfo *screen_info)
static void
free_glx_data (ScreenInfo *screen_info)
{
+ DisplayInfo *display_info;
+
g_return_if_fail (screen_info != NULL);
+ display_info = screen_info->display_info;
+ myDisplayErrorTrapPush (display_info);
+
if (screen_info->glx_context)
{
glXDestroyContext (myScreenGetXDisplay (screen_info), screen_info->glx_context);
@@ -1368,6 +1373,7 @@ free_glx_data (ScreenInfo *screen_info)
#endif
screen_info->gl_sync = 0;
}
+ myDisplayErrorTrapPopIgnored (display_info);
}
static gboolean
@@ -4944,6 +4950,8 @@ compositorUnmanageScreen (ScreenInfo *screen_info)
remove_timeouts (screen_info);
+ myDisplayErrorTrapPush (display_info);
+
i = 0;
for (list = screen_info->cwindows; list; list = g_list_next (list))
{
@@ -5069,6 +5077,8 @@ compositorUnmanageScreen (ScreenInfo *screen_info)
screen_info->output = screen_info->xroot;
compositorSetCMSelection (screen_info, None);
+
+ myDisplayErrorTrapPopIgnored (display_info);
#endif /* HAVE_COMPOSITOR */
}