diff --git a/CMakeLists.txt b/CMakeLists.txt index b879331..7f95454 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,7 +30,7 @@ OPTION(MAIKO_DISPLAY_X11 "Use X11 for display." ON) IF(MAIKO_DISPLAY_X11) FIND_PACKAGE(X11 REQUIRED) SET(MAIKO_DISPLAY_X11_DEFINITIONS - "-DXWINDOW" + "-DXWINDOW -DLOCK_X_UPDATES" ) SET(MAIKO_DISPLAY_X11_LIBRARIES X11::X11) SET(MAIKO_DISPLAY_X11_SRCS diff --git a/bin/makefile-cygwin.x86_64-x b/bin/makefile-cygwin.x86_64-x index f280cba..8129feb 100644 --- a/bin/makefile-cygwin.x86_64-x +++ b/bin/makefile-cygwin.x86_64-x @@ -14,7 +14,7 @@ XFILES = $(OBJECTDIR)xmkicon.o \ $(OBJECTDIR)xwinman.o -XFLAGS = -DXWINDOW +XFLAGS = -DXWINDOW -DLOCK_X_UPDATES # OPTFLAGS is normally -O2. OPTFLAGS = -O2 -g3 diff --git a/bin/makefile-darwin.386-x b/bin/makefile-darwin.386-x index 7cb52d3..5125737 100644 --- a/bin/makefile-darwin.386-x +++ b/bin/makefile-darwin.386-x @@ -13,7 +13,7 @@ XFILES = $(OBJECTDIR)xmkicon.o \ $(OBJECTDIR)xwinman.o -XFLAGS = -I/opt/X11/include -DXWINDOW +XFLAGS = -I/opt/X11/include -DXWINDOW -DLOCK_X_UPDATES # OPTFLAGS is normally -O2. OPTFLAGS = -O2 -g diff --git a/bin/makefile-darwin.aarch64-x b/bin/makefile-darwin.aarch64-x index a92219f..f8f59e7 100644 --- a/bin/makefile-darwin.aarch64-x +++ b/bin/makefile-darwin.aarch64-x @@ -13,7 +13,7 @@ XFILES = $(OBJECTDIR)xmkicon.o \ $(OBJECTDIR)xwinman.o -XFLAGS = -I/opt/X11/include -DXWINDOW +XFLAGS = -I/opt/X11/include -DXWINDOW -DLOCK_X_UPDATES # OPTFLAGS is normally -O2. OPTFLAGS = -O2 diff --git a/bin/makefile-darwin.ppc-x b/bin/makefile-darwin.ppc-x index 50db58f..8d35749 100644 --- a/bin/makefile-darwin.ppc-x +++ b/bin/makefile-darwin.ppc-x @@ -13,7 +13,7 @@ XFILES = $(OBJECTDIR)xmkicon.o \ $(OBJECTDIR)xwinman.o -XFLAGS = -I/usr/X11/include -DXWINDOW +XFLAGS = -I/usr/X11/include -DXWINDOW -DLOCK_X_UPDATES # OPTFLAGS is normally -O2. OPTFLAGS = -O2 -g diff --git a/bin/makefile-darwin.x86_64-x b/bin/makefile-darwin.x86_64-x index e17f10b..0ac392b 100644 --- a/bin/makefile-darwin.x86_64-x +++ b/bin/makefile-darwin.x86_64-x @@ -13,7 +13,7 @@ XFILES = $(OBJECTDIR)xmkicon.o \ $(OBJECTDIR)xwinman.o -XFLAGS = -I/opt/X11/include -DXWINDOW +XFLAGS = -I/opt/X11/include -DXWINDOW -DLOCK_X_UPDATES # OPTFLAGS is normally -O2. OPTFLAGS = -O1 -g diff --git a/bin/makefile-init-darwin.386 b/bin/makefile-init-darwin.386 index c7aaa62..fbd168d 100644 --- a/bin/makefile-init-darwin.386 +++ b/bin/makefile-init-darwin.386 @@ -13,7 +13,7 @@ XFILES = $(OBJECTDIR)xmkicon.o \ $(OBJECTDIR)xwinman.o -XFLAGS = -I/opt/X11/include -DXWINDOW +XFLAGS = -I/opt/X11/include -DXWINDOW -DLOCK_X_UPDATES # OPTFLAGS is normally -O2, for INIT we want unoptimized in case we need to debug it OPTFLAGS = -O0 -g diff --git a/bin/makefile-init-darwin.aarch64 b/bin/makefile-init-darwin.aarch64 index 1314d4f..c81744d 100644 --- a/bin/makefile-init-darwin.aarch64 +++ b/bin/makefile-init-darwin.aarch64 @@ -13,7 +13,7 @@ XFILES = $(OBJECTDIR)xmkicon.o \ $(OBJECTDIR)xwinman.o -XFLAGS = -I/opt/X11/include -DXWINDOW +XFLAGS = -I/opt/X11/include -DXWINDOW -DLOCK_X_UPDATES # OPTFLAGS is normally -O2. OPTFLAGS = -O0 -g3 diff --git a/bin/makefile-init-darwin.x86_64 b/bin/makefile-init-darwin.x86_64 index 322b4a8..943e903 100644 --- a/bin/makefile-init-darwin.x86_64 +++ b/bin/makefile-init-darwin.x86_64 @@ -13,7 +13,7 @@ XFILES = $(OBJECTDIR)xmkicon.o \ $(OBJECTDIR)xwinman.o -XFLAGS = -I/opt/X11/include -DXWINDOW +XFLAGS = -I/opt/X11/include -DXWINDOW -DLOCK_X_UPDATES # OPTFLAGS is normally -O2. OPTFLAGS = -O0 -g diff --git a/bin/makefile-init-linux.x86_64 b/bin/makefile-init-linux.x86_64 index 8d696dd..3f64a50 100644 --- a/bin/makefile-init-linux.x86_64 +++ b/bin/makefile-init-linux.x86_64 @@ -14,7 +14,7 @@ XFILES = $(OBJECTDIR)xmkicon.o \ $(OBJECTDIR)xwinman.o -XFLAGS = -DXWINDOW +XFLAGS = -DXWINDOW -DLOCK_X_UPDATES # OPTFLAGS is normally -O2, for INIT we want unoptimized in case we need to debug it OPTFLAGS = -O0 -g diff --git a/bin/makefile-init-sunos5.sparc b/bin/makefile-init-sunos5.sparc index c8ced0b..69f8997 100644 --- a/bin/makefile-init-sunos5.sparc +++ b/bin/makefile-init-sunos5.sparc @@ -30,7 +30,7 @@ XFILES = $(OBJECTDIR)xmkicon.o \ $(OBJECTDIR)xrdopt.o \ $(OBJECTDIR)xwinman.o -XFLAGS = -DXWINDOW +XFLAGS = -DXWINDOW -DLOCK_X_UPDATES # OPTFLAGS is normally -g for MAKEINIT, as it needs debugging often. OPTFLAGS = -g3 -O0 diff --git a/bin/makefile-linux.386-x b/bin/makefile-linux.386-x index b25198d..37fb185 100644 --- a/bin/makefile-linux.386-x +++ b/bin/makefile-linux.386-x @@ -13,7 +13,7 @@ XFILES = $(OBJECTDIR)xmkicon.o \ $(OBJECTDIR)xwinman.o -XFLAGS = -DXWINDOW +XFLAGS = -DXWINDOW -DLOCK_X_UPDATES # OPTFLAGS is normally -O2. OPTFLAGS = -O2 -g3 diff --git a/bin/makefile-linux.aarch64-x b/bin/makefile-linux.aarch64-x index 1f2f156..c6db5f1 100644 --- a/bin/makefile-linux.aarch64-x +++ b/bin/makefile-linux.aarch64-x @@ -13,7 +13,7 @@ XFILES = $(OBJECTDIR)xmkicon.o \ $(OBJECTDIR)xrdopt.o \ $(OBJECTDIR)xwinman.o -XFLAGS = -DXWINDOW +XFLAGS = -DXWINDOW -DLOCK_X_UPDATES # OPTFLAGS is normally -O2. OPTFLAGS = -O2 -g3 diff --git a/bin/makefile-linux.armv7l-x b/bin/makefile-linux.armv7l-x index 1f2f156..c6db5f1 100644 --- a/bin/makefile-linux.armv7l-x +++ b/bin/makefile-linux.armv7l-x @@ -13,7 +13,7 @@ XFILES = $(OBJECTDIR)xmkicon.o \ $(OBJECTDIR)xrdopt.o \ $(OBJECTDIR)xwinman.o -XFLAGS = -DXWINDOW +XFLAGS = -DXWINDOW -DLOCK_X_UPDATES # OPTFLAGS is normally -O2. OPTFLAGS = -O2 -g3 diff --git a/bin/makefile-linux.x86_64-x b/bin/makefile-linux.x86_64-x index f280cba..8129feb 100644 --- a/bin/makefile-linux.x86_64-x +++ b/bin/makefile-linux.x86_64-x @@ -14,7 +14,7 @@ XFILES = $(OBJECTDIR)xmkicon.o \ $(OBJECTDIR)xwinman.o -XFLAGS = -DXWINDOW +XFLAGS = -DXWINDOW -DLOCK_X_UPDATES # OPTFLAGS is normally -O2. OPTFLAGS = -O2 -g3 diff --git a/bin/makefile-openbsd.x86_64-x b/bin/makefile-openbsd.x86_64-x index b95e5f5..70a1798 100644 --- a/bin/makefile-openbsd.x86_64-x +++ b/bin/makefile-openbsd.x86_64-x @@ -13,7 +13,7 @@ XFILES = $(OBJECTDIR)xmkicon.o \ $(OBJECTDIR)xwinman.o -XFLAGS = -I/usr/X11R6/include -DXWINDOW +XFLAGS = -I/usr/X11R6/include -DXWINDOW -DLOCK_X_UPDATES # OPTFLAGS is normally -O2. OPTFLAGS = -O2 -g3 diff --git a/bin/makefile-sunos5.386-x b/bin/makefile-sunos5.386-x index b22e33b..f1c7b78 100644 --- a/bin/makefile-sunos5.386-x +++ b/bin/makefile-sunos5.386-x @@ -22,7 +22,7 @@ XFILES = $(OBJECTDIR)xmkicon.o \ $(OBJECTDIR)xrdopt.o \ $(OBJECTDIR)xwinman.o -XFLAGS = -DXWINDOW +XFLAGS = -DXWINDOW -DLOCK_X_UPDATES # OPTFLAGS is normally -O2. OPTFLAGS = -O2 -g diff --git a/bin/makefile-sunos5.i386-x b/bin/makefile-sunos5.i386-x index 74a8bb6..8831073 100644 --- a/bin/makefile-sunos5.i386-x +++ b/bin/makefile-sunos5.i386-x @@ -22,7 +22,7 @@ XFILES = $(OBJECTDIR)xmkicon.o \ $(OBJECTDIR)xrdopt.o \ $(OBJECTDIR)xwinman.o -XFLAGS = -DXWINDOW +XFLAGS = -DXWINDOW -DLOCK_X_UPDATES # OPTFLAGS is normally -O2. OPTFLAGS = -O2 -g3 diff --git a/bin/makefile-sunos5.sparc-x b/bin/makefile-sunos5.sparc-x index 931d228..a9304cc 100644 --- a/bin/makefile-sunos5.sparc-x +++ b/bin/makefile-sunos5.sparc-x @@ -29,7 +29,7 @@ XFILES = $(OBJECTDIR)xmkicon.o \ $(OBJECTDIR)xrdopt.o \ $(OBJECTDIR)xwinman.o -XFLAGS = -DXWINDOW +XFLAGS = -DXWINDOW -DLOCK_X_UPDATES # OPTFLAGS is normally -O2. OPTFLAGS = -O2 -g3 diff --git a/bin/makefile-sunos5.x86_64-x b/bin/makefile-sunos5.x86_64-x index 923544d..3f8ab9f 100644 --- a/bin/makefile-sunos5.x86_64-x +++ b/bin/makefile-sunos5.x86_64-x @@ -22,7 +22,7 @@ XFILES = $(OBJECTDIR)xmkicon.o \ $(OBJECTDIR)xrdopt.o \ $(OBJECTDIR)xwinman.o -XFLAGS = -DXWINDOW +XFLAGS = -DXWINDOW -DLOCK_X_UPDATES # OPTFLAGS is normally -O2. OPTFLAGS = -O2 -g diff --git a/src/xinit.c b/src/xinit.c index 938935e..d47c8d9 100644 --- a/src/xinit.c +++ b/src/xinit.c @@ -108,13 +108,15 @@ void lisp_Xexit(DspInterface dsp) { assert(Lisp_Xinitialized); -#if defined(OS5) && defined(I_SETSIG) +#if defined(I_SETSIG) ioctl(ConnectionNumber(dsp->display_id), I_SETSIG, 0); /* so no interrupts happen during */ #endif + XLOCK; XDestroySubwindows(dsp->display_id, dsp->LispWindow); XDestroyWindow(dsp->display_id, dsp->LispWindow); XCloseDisplay(dsp->display_id); + XUNLOCK(dsp); Lisp_Xinitialized = false; } /* end lisp_Xexit */