diff options
author | Olivier Fourdan <fourdan@xfce.org> | 2020-12-12 20:42:44 +0100 |
---|---|---|
committer | Olivier Fourdan <fourdan@xfce.org> | 2020-12-12 20:58:21 +0100 |
commit | 0e30ccc211d90920909fec9ca7b913004a13606f (patch) | |
tree | 2e15d01bbdf32cbdecebeb92418c12af94d55f2d /src | |
parent | 9a4db3888c0cead24bf6206febf1a7689f04dfa3 (diff) | |
download | xfwm4-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.c | 10 |
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 */ } |