summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon TURNEY <jon.turney@dronecode.org.uk>2009-05-20 21:32:54 +0100
committerJon TURNEY <jon.turney@dronecode.org.uk>2009-06-29 18:00:03 +0100
commit65d74d93145d22b68bad5728a7ebe38dc662cb21 (patch)
tree0f456370142367b6639e202535f0066a43084de2
parent638ca9a7a2363757dc5b5d456e10d34f6f158885 (diff)
Cygwin/X: Fix multiwindow extwm mode to build again
Build and link with rootless extension Update Xwin code for removal of RootlessAccelInit() Fix Xwin code which now has a collision with the type name EventType Based on patches from Colin Harrison, Jon Turney and Yaakov Selkowitz Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
-rw-r--r--configure.ac5
-rw-r--r--hw/xwin/Makefile.am3
-rw-r--r--hw/xwin/winmultiwindowwm.c2
-rw-r--r--hw/xwin/winscrinit.c16
-rwxr-xr-xhw/xwin/winwindowswm.c14
-rw-r--r--miext/Makefile.am3
6 files changed, 16 insertions, 27 deletions
diff --git a/configure.ac b/configure.ac
index 0fca4408a..150ecd2c5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1617,6 +1617,7 @@ fi
AC_MSG_RESULT([$XWIN])
if test "x$XWIN" = xyes; then
+ PKG_CHECK_EXISTS([windowswmproto], [WINDOWSWM=yes], [WINDOWSWM=no])
AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current Xorg version])
AC_CHECK_TOOL(WINDRES, windres)
case $host_os in
@@ -1625,7 +1626,7 @@ if test "x$XWIN" = xyes; then
PKG_CHECK_MODULES([XWINMODULES],[x11 xdmcp xau xfont])
AC_DEFINE(HAS_DEVWINDOWS,1,[Cygwin has /dev/windows for signaling new win32 messages])
AC_DEFINE(ROOTLESS,1,[Build Rootless code])
- CFLAGS="$CFLAGS -DFD_SETSIZE=256"
+ CFLAGS="$CFLAGS -DFD_SETSIZE=256 -DROOTLESS_WORKAROUND"
;;
mingw*)
XWIN_SERVER_NAME=Xming
@@ -1658,7 +1659,7 @@ if test "x$XWIN" = xyes; then
fi
AM_CONDITIONAL(XWIN, [test "x$XWIN" = xyes])
AM_CONDITIONAL(XWIN_MULTIWINDOW, [test "x$XWIN" = xyes])
-AM_CONDITIONAL(XWIN_MULTIWINDOWEXTWM, [test "x$XWIN" = xyes && false])
+AM_CONDITIONAL(XWIN_MULTIWINDOWEXTWM, [test "x$XWIN" = xyes && test "x$WINDOWSWM" = xyes])
AM_CONDITIONAL(XWIN_CLIPBOARD, [test "x$XWIN" = xyes])
AM_CONDITIONAL(XWIN_GLX_WINDOWS, [test "x$XWIN" = xyes && false])
AM_CONDITIONAL(XWIN_NATIVEGDI, [test "x$XWIN" = xyes && false])
diff --git a/hw/xwin/Makefile.am b/hw/xwin/Makefile.am
index aab4b08da..2c7972a7f 100644
--- a/hw/xwin/Makefile.am
+++ b/hw/xwin/Makefile.am
@@ -34,6 +34,7 @@ SRCS_MULTIWINDOWEXTWM = \
winwin32rootlesswndproc.c \
winwindowswm.c
DEFS_MULTIWINDOWEXTWM = -DXWIN_MULTIWINDOWEXTWM
+MULTIWINDOWEXTWM_LIBS = $(top_builddir)/miext/rootless/librootless.la
endif
if XWIN_NATIVEGDI
@@ -147,7 +148,7 @@ XWin_SOURCES = $(SRCS)
INCLUDES = -I$(top_srcdir)/miext/rootless
XWin_DEPENDENCIES = $(XWIN_LIBS)
-XWin_LDADD = $(XWIN_LIBS) $(MAIN_LIB) $(XSERVER_LIBS) $(XSERVER_SYS_LIBS) $(XWIN_SYS_LIBS)
+XWin_LDADD = $(MULTIWINDOWEXTWM_LIBS) $(XWIN_LIBS) $(MAIN_LIB) $(XSERVER_LIBS) $(XSERVER_SYS_LIBS) $(XWIN_SYS_LIBS)
.rc.o:
$(WINDRES) --use-temp-file -i $< --input-format=rc -o $@ -O coff -DPROJECT_NAME=\"$(VENDOR_NAME_SHORT)\"
diff --git a/hw/xwin/winmultiwindowwm.c b/hw/xwin/winmultiwindowwm.c
index 194dbf64c..74213791d 100644
--- a/hw/xwin/winmultiwindowwm.c
+++ b/hw/xwin/winmultiwindowwm.c
@@ -57,7 +57,7 @@
#include "ddraw.h"
#include "winwindow.h"
#ifdef XWIN_MULTIWINDOWEXTWM
-#include "windowswmstr.h"
+#include <X11/extensions/windowswmstr.h>
#else
/* We need the native HWND atom for intWM, so for consistency use the
same name as extWM would if we were building with enabled... */
diff --git a/hw/xwin/winscrinit.c b/hw/xwin/winscrinit.c
index 96778ab35..eab0c6ccf 100644
--- a/hw/xwin/winscrinit.c
+++ b/hw/xwin/winscrinit.c
@@ -378,22 +378,6 @@ winFinishScreenInitFB (int index,
pScreen->blockData = pScreen;
pScreen->wakeupData = pScreen;
-#ifdef XWIN_MULTIWINDOWEXTWM
- /*
- * Setup acceleration for multi-window external window manager mode.
- * To be compatible with the Damage extension, this must be done
- * before calling miDCInitialize, which calls DamageSetup.
- */
- if (pScreenInfo->fMWExtWM)
- {
- if (!RootlessAccelInit (pScreen))
- {
- ErrorF ("winFinishScreenInitFB - RootlessAccelInit () failed\n");
- return FALSE;
- }
- }
-#endif
-
#ifdef RENDER
/* Render extension initialization, calls miPictureInit */
if (!fbPictureInit (pScreen, NULL, 0))
diff --git a/hw/xwin/winwindowswm.c b/hw/xwin/winwindowswm.c
index 2eecd6bd6..61972c932 100755
--- a/hw/xwin/winwindowswm.c
+++ b/hw/xwin/winwindowswm.c
@@ -50,7 +50,7 @@ static DISPATCH_PROC(SProcWindowsWMDispatch);
static unsigned char WMReqCode = 0;
static int WMEventBase = 0;
-static RESTYPE ClientType, EventType; /* resource types for event masks */
+static RESTYPE ClientType, eventResourceType; /* resource types for event masks */
static XID eventResource;
/* Currently selected events */
@@ -85,10 +85,10 @@ winWindowsWMExtensionInit ()
ExtensionEntry* extEntry;
ClientType = CreateNewResourceType(WMFreeClient);
- EventType = CreateNewResourceType(WMFreeEvents);
+ eventResourceType = CreateNewResourceType(WMFreeEvents);
eventResource = FakeClientID(0);
- if (ClientType && EventType &&
+ if (ClientType && eventResourceType &&
(extEntry = AddExtension(WINDOWSWMNAME,
WindowsWMNumberEvents,
WindowsWMNumberErrors,
@@ -147,7 +147,7 @@ WMFreeClient (pointer data, XID id)
WMEventPtr *pHead, pCur, pPrev;
pEvent = (WMEventPtr) data;
- pHead = (WMEventPtr *) LookupIDByType(eventResource, EventType);
+ pHead = (WMEventPtr *) LookupIDByType(eventResource, eventResourceType);
if (pHead)
{
pPrev = 0;
@@ -193,7 +193,7 @@ ProcWindowsWMSelectInput (register ClientPtr client)
REQUEST_SIZE_MATCH (xWindowsWMSelectInputReq);
pHead = (WMEventPtr *)SecurityLookupIDByType(client, eventResource,
- EventType, DixWriteAccess);
+ eventResourceType, DixWriteAccess);
if (stuff->mask != 0)
{
if (pHead)
@@ -235,7 +235,7 @@ ProcWindowsWMSelectInput (register ClientPtr client)
{
pHead = (WMEventPtr *) xalloc (sizeof (WMEventPtr));
if (!pHead ||
- !AddResource (eventResource, EventType, (pointer)pHead))
+ !AddResource (eventResource, eventResourceType, (pointer)pHead))
{
FreeResource (clientResource, RT_NONE);
return BadAlloc;
@@ -293,7 +293,7 @@ winWindowsWMSendEvent (int type, unsigned int mask, int which, int arg,
ErrorF ("winWindowsWMSendEvent %d %d %d %d, %d %d - %d %d\n",
type, mask, which, arg, x, y, w, h);
#endif
- pHead = (WMEventPtr *) LookupIDByType(eventResource, EventType);
+ pHead = (WMEventPtr *) LookupIDByType(eventResource, eventResourceType);
if (!pHead)
return;
for (pEvent = *pHead; pEvent; pEvent = pEvent->next)
diff --git a/miext/Makefile.am b/miext/Makefile.am
index f138963b4..73a6577ae 100644
--- a/miext/Makefile.am
+++ b/miext/Makefile.am
@@ -5,4 +5,7 @@ endif
if XQUARTZ
SUBDIRS += rootless
endif
+if XWIN
+SUBDIRS += rootless
+endif
DIST_SUBDIRS = damage shadow cw rootless