aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xorg-server/ChangeLog239
-rw-r--r--xorg-server/Makefile.am2
-rw-r--r--xorg-server/Makefile.in8
-rw-r--r--xorg-server/configure38
-rw-r--r--xorg-server/configure.ac18
-rw-r--r--xorg-server/dix/events.c4
-rw-r--r--xorg-server/hw/kdrive/fake/Makefile.am3
-rw-r--r--xorg-server/hw/kdrive/fake/Makefile.in3
-rw-r--r--xorg-server/hw/kdrive/fake/kbd.c137
-rw-r--r--xorg-server/hw/xfree86/os-support/linux/lnx_axp.c16
-rw-r--r--xorg-server/hw/xfree86/os-support/linux/lnx_ev56.c18
-rw-r--r--xorg-server/hw/xfree86/os-support/misc/SlowBcopy.c62
-rw-r--r--xorg-server/hw/xquartz/xpr/xprFrame.c47
-rw-r--r--xorg-server/hw/xwin/InitOutput.c2
-rw-r--r--xorg-server/hw/xwin/XWin.rc12
-rw-r--r--xorg-server/hw/xwin/winscrinit.c6
-rw-r--r--xorg-server/m4/dolt.m43
-rw-r--r--xorg-server/mi/miinitext.c28
-rw-r--r--xorg-server/miext/rootless/rootless.h9
-rw-r--r--xorg-server/miext/rootless/rootlessCommon.c3
-rw-r--r--xorg-server/miext/rootless/rootlessCommon.h4
-rw-r--r--xorg-server/miext/rootless/rootlessScreen.c4
-rw-r--r--xorg-server/miext/rootless/rootlessWindow.c76
-rw-r--r--xorg-server/miext/rootless/rootlessWindow.h2
24 files changed, 455 insertions, 289 deletions
diff --git a/xorg-server/ChangeLog b/xorg-server/ChangeLog
index 4fff5ccf8..d3b898140 100644
--- a/xorg-server/ChangeLog
+++ b/xorg-server/ChangeLog
@@ -1,3 +1,242 @@
+commit 37b5f41ccea3473b830cc0c4afb5d609e47004cb
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Mon Oct 19 11:48:05 2009 +1000
+
+ xserver 1.7.0.902
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 37f857eb4cd30c6499a2735f59ddec87d1b7de57
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Mon Oct 19 11:50:56 2009 +1000
+
+ Revert "Xming: Remove unused X-boxed icon resource"
+
+ Breaks make dist.
+ make[2]: *** No rule to make target `X-boxed.ico', needed by `distdir'. Stop.
+
+ This reverts commit 2969eaa88c4422fedf1b069e6fe055904b233db2.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 650ac84a0cf62c139fa6254fb7a44157d551e8e3
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Fri Oct 16 22:29:26 2009 -0700
+
+ Fix segfault when -extension XKEYBOARD is passed on the command line
+
+ Users should be told they can't disable XKB or XInput via error messages,
+ not core dumps.
+
+ Reported by T`2 on #xorg irc
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
+ Signed-off-by: Keith Packard <keithp@keithp.com>
+ (cherry picked from commit 2bd71a6db241924bd17ac9dd4aa38e7e563ee5c1)
+
+commit a8bfbd81b8aaac31b87d15257273d82174912b37
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Thu Oct 15 13:50:36 2009 +1000
+
+ kdrive: fix Xfake build by removing the old keysym stuff
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ Acked-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
+ Signed-off-by: Keith Packard <keithp@keithp.com>
+ (cherry picked from commit a32b2420d85f076282721afe005e85fff7d9837e)
+
+commit 64faf44f36b09780737c06781dadcf8fcbcaf836
+Author: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
+Date: Thu Oct 15 01:53:42 2009 -0500
+
+ Remove duplicates from Xfake_LDADD
+
+ KDRIVE_LIBS already contains the libs in XSERVER_LIBS, so linking against
+ both leads to multiple-definition errors when linking on Cygwin.
+
+ Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
+ Signed-off-by: Keith Packard <keithp@keithp.com>
+ (cherry picked from commit a2f27b97900f335cd5f6a3e5bf8fa1d0ec9eb9ac)
+
+commit 4b419c1651bbe7fbd3e87c3d71ba9fe642672ca2
+Author: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
+Date: Thu Oct 15 01:53:41 2009 -0500
+
+ Fix XWIN_LIBS definition
+
+ Move XWIN_LIBS from XWIN=auto conditional to XWIN=yes conditional,
+ otherwise the build breaks if an explicit --enable-xwin is passed to
+ configure.
+
+ Also remove obsolete library values from the definition.
+
+ Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
+ Signed-off-by: Keith Packard <keithp@keithp.com>
+ (cherry picked from commit ed4c6bc79a797830895ad6c3601318b2d1c4bdcb)
+
+commit 7d5282dd597eb9353ca7a7697604d81228254d4a
+Author: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
+Date: Thu Oct 15 01:53:40 2009 -0500
+
+ Install SDK pkg-config and aclocal files only if XORG
+
+ Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
+ Signed-off-by: Keith Packard <keithp@keithp.com>
+ (cherry picked from commit bcd0c02cfd0707b5f8b1ca91dfbe4412df2c643e)
+
+commit 1b88e4eb2e605fd1d3adffaf38dc40be6a28970d
+Author: Jon TURNEY <jon.turney@dronecode.org.uk>
+Date: Tue Jul 21 02:23:21 2009 +0100
+
+ Cygwin/X: Make -logverbose affect the verbosity of logging to the log file
+
+ Make -logverbose affect the verbosity of logging to the log file, not just the
+ verbosity of logging to the console
+
+ Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
+ Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
+ (cherry picked from commit 1b0dfd8dee639870725d3bd9b70c3bd589d09e5a)
+
+commit 2969eaa88c4422fedf1b069e6fe055904b233db2
+Author: Colin Harrison <colin.harrison@virgin.net>
+Date: Fri Sep 25 17:49:59 2009 +0100
+
+ Xming: Remove unused X-boxed icon resource
+
+ Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
+ (cherry picked from commit 78c87bdad1feab91c2a39e01513b4b0826665f06)
+
+commit 92253b0f2028c6c243be5f444b59568b0c15ae1f
+Author: Colin Harrison <colin.harrison@virgin.net>
+Date: Fri Sep 25 17:46:40 2009 +0100
+
+ Xming: update .rc file
+
+ Remove the obsolete DISCARDABLE flag in the .rc file
+ Replace the obsolete DIALOG resource with DIALOGEX in the .rc file
+
+ Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
+ (cherry picked from commit fdf7f7e95c852734c620f58df408a324902172cf)
+
+commit 237bc0c2558bdda5c7ec44cbc86a65af21344ba2
+Author: Jon TURNEY <jon.turney@dronecode.org.uk>
+Date: Sat Oct 3 13:07:23 2009 +0100
+
+ Cygwin/X: Don't build rootless extension code unless we need it
+
+ Only try to build rootless extension code if we really need it (i.e. mwextwm mode is enabled)
+
+ Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
+ (cherry picked from commit 5ddfd9d0898629627e8ab10e65ea2e082be3af37)
+
+commit c163126f06720a4bca1d073a2fb6d138ca6f0f00
+Author: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
+Date: Tue Oct 13 20:14:58 2009 -0500
+
+ dolt: add Cygwin to supported platforms
+
+ Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
+ Signed-off-by: Keith Packard <keithp@keithp.com>
+ (cherry picked from commit 25344ba7f7845654364d62bf15322b3b79465bd9)
+
+commit 07229cd6da6a9b7acedb994275fed5b512fe48b1
+Author: Matt Turner <mattst88@gmail.com>
+Date: Tue Oct 13 20:42:14 2009 -0400
+
+ [alpha] assume we have __NR_pciconfig_iobase
+
+ The code path if we didn't have support has been broken since before we
+ switched to git.
+
+ The pciconfig_iobase syscall has been supported since 2000.
+
+ Signed-off-by: Matt Turner <mattst88@gmail.com>
+ (cherry picked from commit 5e762f0e2f203b5121a3de3b9af3c8981b31a77f)
+
+commit 13c5e2fe9c7ce82dfdc026a392327b115d8c6a15
+Author: Matt Turner <mattst88@gmail.com>
+Date: Tue Oct 13 20:40:59 2009 -0400
+
+ [alpha] don't return from void functions
+
+ Signed-off-by: Matt Turner <mattst88@gmail.com>
+ (cherry picked from commit 46785c04bca16f495af3ed8d685aee939a1a8f39)
+
+commit fff0b2013ad40c6116e92a9c5e233da4a34e6943
+Author: Michael Cree <mcree@orcon.net.nz>
+Date: Wed Oct 7 18:33:29 2009 -0400
+
+ Fix undefined symbols on alpha
+
+ Signed-off-by: Matt Turner <mattst88@gmail.com>
+ (cherry picked from commit 34eddbbb73bb16395dba0818247909c1b4bee4c2)
+
+commit a08186fe59f003fc9e1edceb1d95d2e316766e2a
+Author: Matt Turner <mattst88@gmail.com>
+Date: Tue Oct 6 20:58:30 2009 -0400
+
+ Fix breakage on alpha caused by c7680befe5ae
+
+ Pinpointed by by Michael Cree.
+
+ Commit c7680befe5ae removed Jensen support, but at the same time broke
+ support for dense memory systems.
+
+ Signed-off-by: Matt Turner <mattst88@gmail.com>
+ (cherry picked from commit 9625f6d328d6f516520930227b218979309938bc)
+
+commit e116bebb1324c5cdb806a70683ca747321c536b0
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Tue Oct 13 13:15:05 2009 +1000
+
+ dix: extend IsPointerDevice check to valuator-only devices.
+
+ A device with valuators but no keys is definitely a pointer device and needs
+ to be attached to the VCP. Otherwise, the class copying happens on the VCK
+ and the VCP isn't updated with the events that are to be sent through it.
+ This addresses the trigger for #24441, not the actual issue.
+ Jury is still out on valuator+key devices.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ Signed-off-by: Keith Packard <keithp@keithp.com>
+ (cherry picked from commit 72f5874434c0c015b671c492c1318f35f1793668)
+
+commit f6cb78e476132b201334655f0015a2c727434fbf
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Tue Oct 13 12:54:56 2009 -0700
+
+ Rootless: src drawable window can now be NULL
+
+ Fix a possible crash when pSrc->pDrawable is NULL.
+
+ Signed-off-by: Colin Harrison <colin.harrison@virgin.net>
+ Signed-off-by: Jeremy Huddleston <jeremyhu@freedesktop.org>
+ (cherry picked from commit 7e178ffbed7c8557faf8d471ad275aa2b0365e1d)
+
+commit 496350bd6832e595e42620da76d2f1e2e4c9e91d
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Tue Oct 13 12:54:11 2009 -0700
+
+ Rootless: Abstract some of the Xplugin specific stuff which has crept into rootlessWindow.c
+
+ The rootless extension now directly calls some Xplugin functions, and relies
+ on types defined in Xplugin.h, which isn't very abstracted :-)
+
+ This patch is a start at abstracting some of the Xplugin specific stuff which
+ has crept into rootlessWindow.c. This has been done in a pretty mindless fashion,
+ without much thought as to if the additions to the generic rootless interface are
+ the correct ones
+
+ There is some confusion as to if RootlesscolormapCallback() returns a Bool or
+ xp_error_enum value (not so abstact), but I have no way of checking, of finding
+ out if Xplugin actually checks the result :-)
+
+ Based on patches from Colin Harrison, Jon Turney and Yaakov Selkowitz
+
+ Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
+ Signed-off-by: Jeremy Huddleston <jeremyhu@freedesktop.org>
+ (cherry picked from commit 6980f77892e0409b44bd8f33ba82e7273c6462a4)
+
commit 5411e78bd51df86f6cdf925f65fd3725f943b6bb
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Mon Oct 12 14:12:45 2009 +1000
diff --git a/xorg-server/Makefile.am b/xorg-server/Makefile.am
index cf1469ff7..cb98d2c31 100644
--- a/xorg-server/Makefile.am
+++ b/xorg-server/Makefile.am
@@ -41,11 +41,13 @@ SUBDIRS = \
hw \
test
+if XORG
aclocaldir = $(datadir)/aclocal
aclocal_DATA = xorg-server.m4
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = xorg-server.pc
+endif
EXTRA_DIST = xorg-server.pc.in xorg-server.m4 ChangeLog autogen.sh
diff --git a/xorg-server/Makefile.in b/xorg-server/Makefile.in
index da6da5c1d..41bb4296f 100644
--- a/xorg-server/Makefile.in
+++ b/xorg-server/Makefile.in
@@ -466,10 +466,10 @@ SUBDIRS = \
hw \
test
-aclocaldir = $(datadir)/aclocal
-aclocal_DATA = xorg-server.m4
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = xorg-server.pc
+@XORG_TRUE@aclocaldir = $(datadir)/aclocal
+@XORG_TRUE@aclocal_DATA = xorg-server.m4
+@XORG_TRUE@pkgconfigdir = $(libdir)/pkgconfig
+@XORG_TRUE@pkgconfig_DATA = xorg-server.pc
EXTRA_DIST = xorg-server.pc.in xorg-server.m4 ChangeLog autogen.sh
DISTCLEANFILES = doltcompile doltlibtool
MAINTAINERCLEANFILES = ChangeLog
diff --git a/xorg-server/configure b/xorg-server/configure
index 7577c15a6..3e56daba7 100644
--- a/xorg-server/configure
+++ b/xorg-server/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for xorg-server 1.7.0.901.
+# Generated by GNU Autoconf 2.63 for xorg-server 1.7.0.902.
#
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
#
@@ -745,8 +745,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='xorg-server'
PACKAGE_TARNAME='xorg-server'
-PACKAGE_VERSION='1.7.0.901'
-PACKAGE_STRING='xorg-server 1.7.0.901'
+PACKAGE_VERSION='1.7.0.902'
+PACKAGE_STRING='xorg-server 1.7.0.902'
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
ac_unique_file="Makefile.am"
@@ -907,10 +907,10 @@ XWIN_FALSE
XWIN_TRUE
XWIN_SYS_LIBS
XWIN_SERVER_NAME
+XWIN_LIBS
XWINMODULES_LIBS
XWINMODULES_CFLAGS
WINDRES
-XWIN_LIBS
XF86VIDMODE_FALSE
XF86VIDMODE_TRUE
DGA_FALSE
@@ -2002,7 +2002,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures xorg-server 1.7.0.901 to adapt to many kinds of systems.
+\`configure' configures xorg-server 1.7.0.902 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -2072,7 +2072,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of xorg-server 1.7.0.901:";;
+ short | recursive ) echo "Configuration of xorg-server 1.7.0.902:";;
esac
cat <<\_ACEOF
@@ -2404,7 +2404,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-xorg-server configure 1.7.0.901
+xorg-server configure 1.7.0.902
generated by GNU Autoconf 2.63
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -2418,7 +2418,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by xorg-server $as_me 1.7.0.901, which was
+It was created by xorg-server $as_me 1.7.0.902, which was
generated by GNU Autoconf 2.63. Invocation command line was
$ $0 $@
@@ -2786,7 +2786,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-RELEASE_DATE="2009-10-12"
+RELEASE_DATE="2009-10-19"
am__api_version='1.11'
@@ -3269,7 +3269,7 @@ fi
# Define the identity of the package.
PACKAGE='xorg-server'
- VERSION='1.7.0.901'
+ VERSION='1.7.0.902'
cat >>confdefs.h <<_ACEOF
@@ -12467,6 +12467,9 @@ i?86-*-linux*|x86_64-*-linux*|powerpc-*-linux* \
|amd64-*-freebsd*|i?86-*-freebsd*|ia64-*-freebsd*)
pic_options='-fPIC'
;;
+i?86-pc-cygwin*)
+ pic_options='-DDLL_EXPORT'
+ ;;
i?86-apple-darwin*)
pic_options='-fno-common'
;;
@@ -27437,8 +27440,6 @@ if test "x$XWIN" = xauto; then
mingw*) XWIN="yes" ;;
*) XWIN="no" ;;
esac
- XWIN_LIBS="$FB_LIB $MI_LIB $FIXES_LIB $XEXT_LIB $CONFIG_LIB $RANDR_LIB $RENDER_LIB $XTRAP_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $MIEXT_LAYER_LIB $LAYER_LIB $XPSTUBS_LIB $SHADOW_LIB $OS_LIB"
-
fi
{ $as_echo "$as_me:$LINENO: result: $XWIN" >&5
$as_echo "$XWIN" >&6; }
@@ -27669,11 +27670,16 @@ cat >>confdefs.h <<\_ACEOF
_ACEOF
+ if test "x$WINDOWSWM" = xyes ; then
+
cat >>confdefs.h <<\_ACEOF
#define ROOTLESS 1
_ACEOF
- CFLAGS="$CFLAGS -DFD_SETSIZE=256 -DROOTLESS_WORKAROUND"
+ CFLAGS="$CFLAGS -DROOTLESS_WORKAROUND"
+ fi
+
+ CFLAGS="$CFLAGS -DFD_SETSIZE=256"
;;
mingw*)
XWIN_SERVER_NAME=Xming
@@ -27799,10 +27805,12 @@ _ACEOF
XWIN_SYS_LIBS=-lwinsock2
;;
esac
+ XWIN_LIBS="$FB_LIB $MI_LIB $FIXES_LIB $XEXT_LIB $CONFIG_LIB $RANDR_LIB $RENDER_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $OS_LIB"
XWIN_SYS_LIBS="$XWIN_SYS_LIBS $XWINMODULES_LIBS"
+
if test "x$DEBUGGING" = xyes; then
cat >>confdefs.h <<\_ACEOF
@@ -31866,7 +31874,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by xorg-server $as_me 1.7.0.901, which was
+This file was extended by xorg-server $as_me 1.7.0.902, which was
generated by GNU Autoconf 2.63. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -31929,7 +31937,7 @@ Report bugs to <bug-autoconf@gnu.org>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_version="\\
-xorg-server config.status 1.7.0.901
+xorg-server config.status 1.7.0.902
configured by $0, generated by GNU Autoconf 2.63,
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
diff --git a/xorg-server/configure.ac b/xorg-server/configure.ac
index be0ccf42c..27701158f 100644
--- a/xorg-server/configure.ac
+++ b/xorg-server/configure.ac
@@ -26,8 +26,8 @@ dnl
dnl Process this file with autoconf to create configure.
AC_PREREQ(2.57)
-AC_INIT([xorg-server], 1.7.0.901, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
-RELEASE_DATE="2009-10-12"
+AC_INIT([xorg-server], 1.7.0.902, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
+RELEASE_DATE="2009-10-19"
AC_CONFIG_SRCDIR([Makefile.am])
AM_INIT_AUTOMAKE([dist-bzip2 foreign])
AM_MAINTAINER_MODE
@@ -1702,8 +1702,6 @@ if test "x$XWIN" = xauto; then
mingw*) XWIN="yes" ;;
*) XWIN="no" ;;
esac
- XWIN_LIBS="$FB_LIB $MI_LIB $FIXES_LIB $XEXT_LIB $CONFIG_LIB $RANDR_LIB $RENDER_LIB $XTRAP_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $MIEXT_LAYER_LIB $LAYER_LIB $XPSTUBS_LIB $SHADOW_LIB $OS_LIB"
- AC_SUBST([XWIN_LIBS])
fi
AC_MSG_RESULT([$XWIN])
@@ -1716,8 +1714,14 @@ if test "x$XWIN" = xyes; then
XWIN_SERVER_NAME=XWin
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 -DROOTLESS_WORKAROUND"
+
+ dnl if we have windowswmproto, build rootless extension for multwindowextwm mode
+ if test "x$WINDOWSWM" = xyes ; then
+ AC_DEFINE(ROOTLESS,1,[Build Rootless code])
+ CFLAGS="$CFLAGS -DROOTLESS_WORKAROUND"
+ fi
+
+ CFLAGS="$CFLAGS -DFD_SETSIZE=256"
;;
mingw*)
XWIN_SERVER_NAME=Xming
@@ -1727,7 +1731,9 @@ if test "x$XWIN" = xyes; then
XWIN_SYS_LIBS=-lwinsock2
;;
esac
+ XWIN_LIBS="$FB_LIB $MI_LIB $FIXES_LIB $XEXT_LIB $CONFIG_LIB $RANDR_LIB $RENDER_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $OS_LIB"
XWIN_SYS_LIBS="$XWIN_SYS_LIBS $XWINMODULES_LIBS"
+ AC_SUBST(XWIN_LIBS)
AC_SUBST(XWIN_SERVER_NAME)
AC_SUBST(XWIN_SYS_LIBS)
diff --git a/xorg-server/dix/events.c b/xorg-server/dix/events.c
index d60b8a534..8f63d3381 100644
--- a/xorg-server/dix/events.c
+++ b/xorg-server/dix/events.c
@@ -345,7 +345,9 @@ DevHasCursor(DeviceIntPtr pDev)
Bool
IsPointerDevice(DeviceIntPtr dev)
{
- return (dev->type == MASTER_POINTER) || (dev->valuator && dev->button);
+ return (dev->type == MASTER_POINTER) ||
+ (dev->valuator && dev->button) ||
+ (dev->valuator && !dev->key);
}
/*
diff --git a/xorg-server/hw/kdrive/fake/Makefile.am b/xorg-server/hw/kdrive/fake/Makefile.am
index 8b93e9e2f..71b24b7e6 100644
--- a/xorg-server/hw/kdrive/fake/Makefile.am
+++ b/xorg-server/hw/kdrive/fake/Makefile.am
@@ -18,8 +18,7 @@ Xfake_SOURCES = \
Xfake_LDADD = \
libfake.la \
- @KDRIVE_LIBS@ \
- @XSERVER_LIBS@
+ @KDRIVE_LIBS@
Xfake_LDFLAGS = $(LD_EXPORT_SYMBOLS_FLAG) -Wl,-undefined=InitExtensions
diff --git a/xorg-server/hw/kdrive/fake/Makefile.in b/xorg-server/hw/kdrive/fake/Makefile.in
index 164d6f0d7..f879f6159 100644
--- a/xorg-server/hw/kdrive/fake/Makefile.in
+++ b/xorg-server/hw/kdrive/fake/Makefile.in
@@ -408,8 +408,7 @@ Xfake_SOURCES = \
Xfake_LDADD = \
libfake.la \
- @KDRIVE_LIBS@ \
- @XSERVER_LIBS@
+ @KDRIVE_LIBS@
Xfake_LDFLAGS = $(LD_EXPORT_SYMBOLS_FLAG) -Wl,-undefined=InitExtensions
Xfake_DEPENDENCIES = \
diff --git a/xorg-server/hw/kdrive/fake/kbd.c b/xorg-server/hw/kdrive/fake/kbd.c
index 83c1b3b20..51fba044d 100644
--- a/xorg-server/hw/kdrive/fake/kbd.c
+++ b/xorg-server/hw/kdrive/fake/kbd.c
@@ -28,142 +28,11 @@
#define FAKE_WIDTH 2
-KeySym FakeKeymap[] = {
-/* 1 8 */ XK_Escape, NoSymbol,
-/* 2 9 */ XK_1, XK_exclam,
-/* 3 10 */ XK_2, XK_at,
-/* 4 11 */ XK_3, XK_numbersign,
-/* 5 12 */ XK_4, XK_dollar,
-/* 6 13 */ XK_5, XK_percent,
-/* 7 14 */ XK_6, XK_asciicircum,
-/* 8 15 */ XK_7, XK_ampersand,
-/* 9 16 */ XK_8, XK_asterisk,
-/* 10 17 */ XK_9, XK_parenleft,
-/* 11 18 */ XK_0, XK_parenright,
-/* 12 19 */ XK_minus, XK_underscore,
-/* 13 20 */ XK_equal, XK_plus,
-/* 14 21 */ XK_BackSpace, NoSymbol,
-/* 15 22 */ XK_Tab, NoSymbol,
-/* 16 23 */ XK_Q, NoSymbol,
-/* 17 24 */ XK_W, NoSymbol,
-/* 18 25 */ XK_E, NoSymbol,
-/* 19 26 */ XK_R, NoSymbol,
-/* 20 27 */ XK_T, NoSymbol,
-/* 21 28 */ XK_Y, NoSymbol,
-/* 22 29 */ XK_U, NoSymbol,
-/* 23 30 */ XK_I, NoSymbol,
-/* 24 31 */ XK_O, NoSymbol,
-/* 25 32 */ XK_P, NoSymbol,
-/* 26 33 */ XK_bracketleft, XK_braceleft,
-/* 27 34 */ XK_bracketright, XK_braceright,
-/* 28 35 */ XK_Return, NoSymbol,
-/* 29 36 */ XK_Control_L, NoSymbol,
-/* 30 37 */ XK_A, NoSymbol,
-/* 31 38 */ XK_S, NoSymbol,
-/* 32 39 */ XK_D, NoSymbol,
-/* 33 40 */ XK_F, NoSymbol,
-/* 34 41 */ XK_G, NoSymbol,
-/* 35 42 */ XK_H, NoSymbol,
-/* 36 43 */ XK_J, NoSymbol,
-/* 37 44 */ XK_K, NoSymbol,
-/* 38 45 */ XK_L, NoSymbol,
-/* 39 46 */ XK_semicolon, XK_colon,
-/* 40 47 */ XK_apostrophe, XK_quotedbl,
-/* 41 48 */ XK_grave, XK_asciitilde,
-/* 42 49 */ XK_Shift_L, NoSymbol,
-/* 43 50 */ XK_backslash, XK_bar,
-/* 44 51 */ XK_Z, NoSymbol,
-/* 45 52 */ XK_X, NoSymbol,
-/* 46 53 */ XK_C, NoSymbol,
-/* 47 54 */ XK_V, NoSymbol,
-/* 48 55 */ XK_B, NoSymbol,
-/* 49 56 */ XK_N, NoSymbol,
-/* 50 57 */ XK_M, NoSymbol,
-/* 51 58 */ XK_comma, XK_less,
-/* 52 59 */ XK_period, XK_greater,
-/* 53 60 */ XK_slash, XK_question,
-/* 54 61 */ XK_Shift_R, NoSymbol,
-/* 55 62 */ XK_KP_Multiply, NoSymbol,
-/* 56 63 */ XK_Alt_L, XK_Meta_L,
-/* 57 64 */ XK_space, NoSymbol,
-/* 58 65 */ XK_Caps_Lock, NoSymbol,
-/* 59 66 */ XK_F1, NoSymbol,
-/* 60 67 */ XK_F2, NoSymbol,
-/* 61 68 */ XK_F3, NoSymbol,
-/* 62 69 */ XK_F4, NoSymbol,
-/* 63 70 */ XK_F5, NoSymbol,
-/* 64 71 */ XK_F6, NoSymbol,
-/* 65 72 */ XK_F7, NoSymbol,
-/* 66 73 */ XK_F8, NoSymbol,
-/* 67 74 */ XK_F9, NoSymbol,
-/* 68 75 */ XK_F10, NoSymbol,
-/* 69 76 */ XK_Break, XK_Pause,
-/* 70 77 */ XK_Scroll_Lock, NoSymbol,
-/* 71 78 */ XK_KP_Home, XK_KP_7,
-/* 72 79 */ XK_KP_Up, XK_KP_8,
-/* 73 80 */ XK_KP_Page_Up, XK_KP_9,
-/* 74 81 */ XK_KP_Subtract, NoSymbol,
-/* 75 82 */ XK_KP_Left, XK_KP_4,
-/* 76 83 */ XK_KP_5, NoSymbol,
-/* 77 84 */ XK_KP_Right, XK_KP_6,
-/* 78 85 */ XK_KP_Add, NoSymbol,
-/* 79 86 */ XK_KP_End, XK_KP_1,
-/* 80 87 */ XK_KP_Down, XK_KP_2,
-/* 81 88 */ XK_KP_Page_Down, XK_KP_3,
-/* 82 89 */ XK_KP_Insert, XK_KP_0,
-/* 83 90 */ XK_KP_Delete, XK_KP_Decimal,
-/* 84 91 */ NoSymbol, NoSymbol,
-/* 85 92 */ NoSymbol, NoSymbol,
-/* 86 93 */ NoSymbol, NoSymbol,
-/* 87 94 */ XK_F11, NoSymbol,
-/* 88 95 */ XK_F12, NoSymbol,
-
-/* These are remapped from the extended set (using ExtendMap) */
-
-/* 89 96 */ XK_Control_R, NoSymbol,
-/* 90 97 */ XK_KP_Enter, NoSymbol,
-/* 91 98 */ XK_KP_Divide, NoSymbol,
-/* 92 99 */ XK_Sys_Req, XK_Print,
-/* 93 100 */ XK_Alt_R, XK_Meta_R,
-/* 94 101 */ XK_Num_Lock, NoSymbol,
-/* 95 102 */ XK_Home, NoSymbol,
-/* 96 103 */ XK_Up, NoSymbol,
-/* 97 104 */ XK_Page_Up, NoSymbol,
-/* 98 105 */ XK_Left, NoSymbol,
-/* 99 106 */ XK_Right, NoSymbol,
-/* 100 107 */ XK_End, NoSymbol,
-/* 101 108 */ XK_Down, NoSymbol,
-/* 102 109 */ XK_Page_Down, NoSymbol,
-/* 103 110 */ XK_Insert, NoSymbol,
-/* 104 111 */ XK_Delete, NoSymbol,
-/* 105 112 */ XK_Super_L, NoSymbol,
-/* 106 113 */ XK_Super_R, NoSymbol,
-/* 107 114 */ XK_Menu, NoSymbol,
-
-/* 108 115 */ XK_Next, NoSymbol, /* right button on side */
-/* 109 116 */ XK_Prior, NoSymbol, /* left button on side */
-/* 110 117 */ XK_Up, NoSymbol, /* joypad */
-/* 111 118 */ XK_Down, NoSymbol,
-/* 112 119 */ XK_Left, NoSymbol,
-/* 113 120 */ XK_Right, NoSymbol,
-/* 114 121 */ NoSymbol, NoSymbol, /* left near speaker */
-/* 115 122 */ NoSymbol, NoSymbol, /* right near speaker */
-/* 116 123 */ NoSymbol, NoSymbol, /* tiny button */
-};
-
static Status
FakeKeyboardInit (KdKeyboardInfo *ki)
{
- ki->keySyms.minKeyCode = 1;
- ki->keySyms.maxKeyCode = (sizeof (FakeKeymap) / sizeof (FakeKeymap[0])) / FAKE_WIDTH;
- ki->keySyms.mapWidth = FAKE_WIDTH;
- if (ki->keySyms.map)
- xfree(ki->keySyms.map);
- ki->keySyms.map = (KeySym *)xalloc(sizeof(FakeKeymap));
- if (!ki->keySyms.map)
- return BadAlloc;
- memcpy (ki->keySyms.map, FakeKeymap, sizeof (FakeKeymap));
-
+ ki->minScanCode = 8;
+ ki->maxScanCode = 255;
return Success;
}
@@ -182,8 +51,6 @@ FakeKeyboardDisable (KdKeyboardInfo *ki)
static void
FakeKeyboardFini (KdKeyboardInfo *ki)
{
- xfree(ki->keySyms.map);
- ki->keySyms.map = NULL;
}
static void
diff --git a/xorg-server/hw/xfree86/os-support/linux/lnx_axp.c b/xorg-server/hw/xfree86/os-support/linux/lnx_axp.c
index 8571c048b..10b97b0d6 100644
--- a/xorg-server/hw/xfree86/os-support/linux/lnx_axp.c
+++ b/xorg-server/hw/xfree86/os-support/linux/lnx_axp.c
@@ -125,12 +125,12 @@ extern unsigned int _dense_inb(unsigned long);
extern unsigned int _dense_inw(unsigned long);
extern unsigned int _dense_inl(unsigned long);
-void (*_alpha_outb)(char, unsigned long) = _outb;
-void (*_alpha_outw)(short, unsigned long) = _outw;
-void (*_alpha_outl)(int, unsigned long) = _outl;
-unsigned int (*_alpha_inb)(unsigned long) = _inb;
-unsigned int (*_alpha_inw)(unsigned long) = _inw;
-unsigned int (*_alpha_inl)(unsigned long) = _inl;
+_X_EXPORT void (*_alpha_outb)(char, unsigned long) = _outb;
+_X_EXPORT void (*_alpha_outw)(short, unsigned long) = _outw;
+_X_EXPORT void (*_alpha_outl)(int, unsigned long) = _outl;
+_X_EXPORT unsigned int (*_alpha_inb)(unsigned long) = _inb;
+_X_EXPORT unsigned int (*_alpha_inw)(unsigned long) = _inw;
+_X_EXPORT unsigned int (*_alpha_inl)(unsigned long) = _inl;
static long _alpha_iobase_query(unsigned, int, int, int);
long (*_iobase)(unsigned, int, int, int) = _alpha_iobase_query;
@@ -138,16 +138,12 @@ long (*_iobase)(unsigned, int, int, int) = _alpha_iobase_query;
static long
_alpha_iobase(unsigned flags, int hose, int bus, int devfn)
{
-#ifdef __NR_pciconfig_iobase
if (bus < 0) {
bus = hose;
flags |= IOBASE_FROM_HOSE;
}
return syscall(__NR_pciconfig_iobase, flags, bus, devfn);
-#else
- return -ENOSYS
-#endif
}
static long
diff --git a/xorg-server/hw/xfree86/os-support/linux/lnx_ev56.c b/xorg-server/hw/xfree86/os-support/linux/lnx_ev56.c
index e751da2d0..c65e1cca4 100644
--- a/xorg-server/hw/xfree86/os-support/linux/lnx_ev56.c
+++ b/xorg-server/hw/xfree86/os-support/linux/lnx_ev56.c
@@ -94,28 +94,34 @@ writeDense32(int Value, pointer Base, register unsigned long Offset)
void
_dense_outb(char val, unsigned long port)
{
- if ((port & ~0xffff) == 0) return _outb(val, port);
-
+ if ((port & ~0xffff) == 0) {
+ _outb(val, port);
+ } else {
write_mem_barrier();
*(volatile CARD8 *)port = val;
+ }
}
void
_dense_outw(short val, unsigned long port)
{
- if ((port & ~0xffff) == 0) return _outw(val, port);
-
+ if ((port & ~0xffff) == 0) {
+ _outw(val, port);
+ } else {
write_mem_barrier();
*(volatile CARD16 *)port = val;
+ }
}
void
_dense_outl(int val, unsigned long port)
{
- if ((port & ~0xffff) == 0) return _outl(val, port);
-
+ if ((port & ~0xffff) == 0) {
+ _outl(val, port);
+ } else {
write_mem_barrier();
*(volatile CARD32 *)port = val;
+ }
}
unsigned int
diff --git a/xorg-server/hw/xfree86/os-support/misc/SlowBcopy.c b/xorg-server/hw/xfree86/os-support/misc/SlowBcopy.c
index 182a3e6ec..0021b5544 100644
--- a/xorg-server/hw/xfree86/os-support/misc/SlowBcopy.c
+++ b/xorg-server/hw/xfree86/os-support/misc/SlowBcopy.c
@@ -59,10 +59,16 @@ xf86SlowBcopy(unsigned char *src, unsigned char *dst, int len)
#ifdef linux
+unsigned long _bus_base(void);
+
+#define useSparse() (!_bus_base())
+
#define SPARSE (7)
#else
+#define useSparse() 0
+
#define SPARSE 0
#endif
@@ -70,32 +76,42 @@ xf86SlowBcopy(unsigned char *src, unsigned char *dst, int len)
void
xf86SlowBCopyFromBus(unsigned char *src, unsigned char *dst, int count)
{
- unsigned long addr;
- long result;
-
- addr = (unsigned long) src;
- while( count ){
- result = *(volatile int *) addr;
- result >>= ((addr>>SPARSE) & 3) * 8;
- *dst++ = (unsigned char) (0xffUL & result);
- addr += 1<<SPARSE;
- count--;
- outb(0x80, 0x00);
- }
+ if (useSparse())
+ {
+ unsigned long addr;
+ long result;
+
+ addr = (unsigned long) src;
+ while (count) {
+ result = *(volatile int *) addr;
+ result >>= ((addr>>SPARSE) & 3) * 8;
+ *dst++ = (unsigned char) (0xffUL & result);
+ addr += 1<<SPARSE;
+ count--;
+ outb(0x80, 0x00);
+ }
+ }
+ else
+ xf86SlowBcopy(src, dst, count);
}
-
+
void
xf86SlowBCopyToBus(unsigned char *src, unsigned char *dst, int count)
{
- unsigned long addr;
-
- addr = (unsigned long) dst;
- while(count) {
- *(volatile unsigned int *) addr = (unsigned short)(*src) * 0x01010101;
- src++;
- addr += 1<<SPARSE;
- count--;
- outb(0x80, 0x00);
- }
+ if (useSparse())
+ {
+ unsigned long addr;
+
+ addr = (unsigned long) dst;
+ while (count) {
+ *(volatile unsigned int *) addr = (unsigned short)(*src) * 0x01010101;
+ src++;
+ addr += 1<<SPARSE;
+ count--;
+ outb(0x80, 0x00);
+ }
+ }
+ else
+ xf86SlowBcopy(src, dst, count);
}
#endif
diff --git a/xorg-server/hw/xquartz/xpr/xprFrame.c b/xorg-server/hw/xquartz/xpr/xprFrame.c
index a3e207616..53dde7acc 100644
--- a/xorg-server/hw/xquartz/xpr/xprFrame.c
+++ b/xorg-server/hw/xquartz/xpr/xprFrame.c
@@ -83,6 +83,8 @@ static void xprDamageRects(RootlessFrameID wid, int nrects, const BoxRec *rects,
int shift_x, int shift_y);
static void xprSwitchWindow(RootlessWindowPtr pFrame, WindowPtr oldWin);
static Bool xprDoReorderWindow(RootlessWindowPtr pFrame);
+static void xprHideWindow(RootlessFrameID wid);
+static void xprUpdateColormap(RootlessFrameID wid, ScreenPtr pScreen);
static void xprCopyWindow(RootlessFrameID wid, int dstNrects, const BoxRec *dstRects,
int dx, int dy);
@@ -117,6 +119,11 @@ xprSetNativeProperty(RootlessWindowPtr pFrame)
}
}
+static xp_error
+xprColormapCallback(void *data, int first_color, int n_colors, uint32_t *colors)
+{
+ return (RootlessResolveColormap (data, first_color, n_colors, colors) ? XP_Success : XP_BadMatch);
+}
/*
* Create and display a new frame.
@@ -142,7 +149,7 @@ xprCreateFrame(RootlessWindowPtr pFrame, ScreenPtr pScreen,
if (pWin->drawable.depth == 8)
{
wc.depth = XP_DEPTH_INDEX8;
- wc.colormap = RootlessColormapCallback;
+ wc.colormap = xprColormapCallback;
wc.colormap_data = pScreen;
mask |= XP_COLORMAP;
}
@@ -447,6 +454,8 @@ static RootlessFrameProcsRec xprRootlessProcs = {
xprDamageRects,
xprSwitchWindow,
xprDoReorderWindow,
+ xprHideWindow,
+ xprUpdateColormap,
xp_copy_bytes,
xp_fill_bytes,
xp_composite_pixels,
@@ -593,3 +602,39 @@ xprHideWindows(Bool hide)
}
}
}
+
+// XXX: identical to x_cvt_vptr_to_uint ?
+#define MAKE_WINDOW_ID(x) ((xp_window_id)((size_t)(x)))
+
+Bool no_configure_window;
+
+static inline int
+configure_window (xp_window_id id, unsigned int mask,
+ const xp_window_changes *values)
+{
+ if (!no_configure_window)
+ return xp_configure_window (id, mask, values);
+ else
+ return XP_Success;
+}
+
+
+static
+void xprUpdateColormap(RootlessFrameID wid, ScreenPtr pScreen)
+{
+ /* This is how we tell xp that the colormap may have changed. */
+ xp_window_changes wc;
+ wc.colormap = xprColormapCallback;
+ wc.colormap_data = pScreen;
+
+ configure_window(MAKE_WINDOW_ID(wid), XP_COLORMAP, &wc);
+}
+
+static
+void xprHideWindow(RootlessFrameID wid)
+{
+ xp_window_changes wc;
+ wc.stack_mode = XP_UNMAPPED;
+ wc.sibling = 0;
+ configure_window(MAKE_WINDOW_ID(wid), XP_STACKING, &wc);
+}
diff --git a/xorg-server/hw/xwin/InitOutput.c b/xorg-server/hw/xwin/InitOutput.c
index 2f4b0d222..9aff336e1 100644
--- a/xorg-server/hw/xwin/InitOutput.c
+++ b/xorg-server/hw/xwin/InitOutput.c
@@ -706,7 +706,7 @@ OsVendorInit (void)
}
LogSetParameter (XLOG_FLUSH, 1);
LogSetParameter (XLOG_VERBOSITY, g_iLogVerbose);
- LogSetParameter (XLOG_FILE_VERBOSITY, 1);
+ LogSetParameter (XLOG_FILE_VERBOSITY, g_iLogVerbose);
/* Log the version information */
if (serverGeneration == 1)
diff --git a/xorg-server/hw/xwin/XWin.rc b/xorg-server/hw/xwin/XWin.rc
index 5a254e1ab..29c6f1ccf 100644
--- a/xorg-server/hw/xwin/XWin.rc
+++ b/xorg-server/hw/xwin/XWin.rc
@@ -36,7 +36,7 @@
*/
/* About */
-ABOUT_BOX DIALOG DISCARDABLE 32, 32, 240, 105
+ABOUT_BOX DIALOGEX 32, 32, 240, 105
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE | WS_TABSTOP | DS_CENTERMOUSE
CAPTION "About " PROJECT_NAME
FONT 8, "MS Sans Serif"
@@ -58,7 +58,7 @@ END
/* Depth change */
-DEPTH_CHANGE_BOX DIALOG DISCARDABLE 32, 32, 180, 100
+DEPTH_CHANGE_BOX DIALOGEX 32, 32, 180, 100
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE | DS_CENTERMOUSE
FONT 8, "MS Sans Serif"
CAPTION PROJECT_NAME
@@ -72,7 +72,7 @@ END
/* Exit */
-EXIT_DIALOG DIALOG DISCARDABLE 32, 32, 180, 78
+EXIT_DIALOG DIALOGEX 32, 32, 180, 78
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE | WS_TABSTOP | DS_CENTERMOUSE
FONT 8, "MS Sans Serif"
CAPTION "Exit " PROJECT_NAME "?"
@@ -89,7 +89,7 @@ END
* Menus
*/
-IDM_TRAYICON_MENU MENU DISCARDABLE
+IDM_TRAYICON_MENU MENU
BEGIN
POPUP "TRAYICON_MENU"
BEGIN
@@ -105,5 +105,5 @@ END
* Icons
*/
-IDI_XWIN ICON DISCARDABLE "X.ico"
-IDI_XWIN_BOXED ICON DISCARDABLE "X-boxed.ico"
+IDI_XWIN ICON "X.ico"
+IDI_XWIN_BOXED ICON "X-boxed.ico"
diff --git a/xorg-server/hw/xwin/winscrinit.c b/xorg-server/hw/xwin/winscrinit.c
index eab0c6ccf..99d5a464e 100644
--- a/xorg-server/hw/xwin/winscrinit.c
+++ b/xorg-server/hw/xwin/winscrinit.c
@@ -58,8 +58,10 @@ winMWExtWMProcs = {
winMWExtWMDamageRects,
#endif
winMWExtWMRootlessSwitchWindow,
- NULL,//winWMExtWMDoReorderWindow,
-
+ NULL,//winMWExtWMDoReorderWindow,
+ NULL,//winMWExtWMHideWindow,
+ NULL,//winMWExtWMUpdateColorMap,
+
NULL,//winMWExtWMCopyBytes,
NULL,//winMWExtWMFillBytes,
NULL,//winMWExtWMCompositePixels,
diff --git a/xorg-server/m4/dolt.m4 b/xorg-server/m4/dolt.m4
index 1109bdb0c..7c62b6c46 100644
--- a/xorg-server/m4/dolt.m4
+++ b/xorg-server/m4/dolt.m4
@@ -26,6 +26,9 @@ i?86-*-linux*|x86_64-*-linux*|powerpc-*-linux* \
|amd64-*-freebsd*|i?86-*-freebsd*|ia64-*-freebsd*)
pic_options='-fPIC'
;;
+i?86-pc-cygwin*)
+ pic_options='-DDLL_EXPORT'
+ ;;
i?86-apple-darwin*)
pic_options='-fno-common'
;;
diff --git a/xorg-server/mi/miinitext.c b/xorg-server/mi/miinitext.c
index 0dca390bb..2a67fd371 100644
--- a/xorg-server/mi/miinitext.c
+++ b/xorg-server/mi/miinitext.c
@@ -359,8 +359,14 @@ Bool EnableDisableExtension(char *name, Bool enable)
for (ext = &ExtensionToggleList[0]; ext->name != NULL; ext++) {
if (strcmp(name, ext->name) == 0) {
- *ext->disablePtr = !enable;
- return TRUE;
+ if (ext->disablePtr != NULL) {
+ *ext->disablePtr = !enable;
+ return TRUE;
+ } else {
+ /* Extension is always on, impossible to disable */
+ return enable; /* okay if they wanted to enable,
+ fail if they tried to disable */
+ }
}
}
@@ -370,12 +376,24 @@ Bool EnableDisableExtension(char *name, Bool enable)
void EnableDisableExtensionError(char *name, Bool enable)
{
ExtensionToggle *ext = &ExtensionToggleList[0];
+ Bool found = FALSE;
- ErrorF("[mi] Extension \"%s\" is not recognized\n", name);
+ for (ext = &ExtensionToggleList[0]; ext->name != NULL; ext++) {
+ if ((strcmp(name, ext->name) == 0) && (ext->disablePtr == NULL)) {
+ ErrorF("[mi] Extension \"%s\" can not be disabled\n", name);
+ found = TRUE;
+ break;
+ }
+ }
+ if (found == FALSE)
+ ErrorF("[mi] Extension \"%s\" is not recognized\n", name);
ErrorF("[mi] Only the following extensions can be run-time %s:\n",
enable ? "enabled" : "disabled");
- for (ext = &ExtensionToggleList[0]; ext->name != NULL; ext++)
- ErrorF("[mi] %s\n", ext->name);
+ for (ext = &ExtensionToggleList[0]; ext->name != NULL; ext++) {
+ if (ext->disablePtr != NULL) {
+ ErrorF("[mi] %s\n", ext->name);
+ }
+ }
}
#ifndef XFree86LOADER
diff --git a/xorg-server/miext/rootless/rootless.h b/xorg-server/miext/rootless/rootless.h
index bde4cff52..00eac4e8a 100644
--- a/xorg-server/miext/rootless/rootless.h
+++ b/xorg-server/miext/rootless/rootless.h
@@ -351,6 +351,13 @@ typedef void (*RootlessCopyWindowProc)
(RootlessFrameID wid, int dstNrects, const BoxRec *dstRects,
int dx, int dy);
+
+typedef void (*RootlessHideWindowProc)
+ (RootlessFrameID wid);
+
+typedef void (*RootlessUpdateColormapProc)
+ (RootlessFrameID wid, ScreenPtr pScreen);
+
/*
* Rootless implementation function list
*/
@@ -374,6 +381,8 @@ typedef struct _RootlessFrameProcs {
/* Optional frame functions */
RootlessSwitchWindowProc SwitchWindow;
RootlessDoReorderWindowProc DoReorderWindow;
+ RootlessHideWindowProc HideWindow;
+ RootlessUpdateColormapProc UpdateColormap;
/* Optional acceleration functions */
RootlessCopyBytesProc CopyBytes;
diff --git a/xorg-server/miext/rootless/rootlessCommon.c b/xorg-server/miext/rootless/rootlessCommon.c
index e3dd9d97c..39a3eed0f 100644
--- a/xorg-server/miext/rootless/rootlessCommon.c
+++ b/xorg-server/miext/rootless/rootlessCommon.c
@@ -146,6 +146,7 @@ void RootlessStartDrawing(WindowPtr pWindow)
ScreenPtr pScreen = pWindow->drawable.pScreen;
WindowPtr top = TopLevelParent(pWindow);
RootlessWindowRec *winRec;
+ PixmapPtr curPixmap;
if (top == NULL)
return;
@@ -172,7 +173,7 @@ void RootlessStartDrawing(WindowPtr pWindow)
winRec->is_drawing = TRUE;
}
- PixmapPtr curPixmap = pScreen->GetWindowPixmap(pWindow);
+ curPixmap = pScreen->GetWindowPixmap(pWindow);
if (curPixmap == winRec->pixmap)
{
RL_DEBUG_MSG("Window %p already has winRec->pixmap %p; not pushing\n", pWindow, winRec->pixmap);
diff --git a/xorg-server/miext/rootless/rootlessCommon.h b/xorg-server/miext/rootless/rootlessCommon.h
index ba121c0f4..d4a94f8ca 100644
--- a/xorg-server/miext/rootless/rootlessCommon.h
+++ b/xorg-server/miext/rootless/rootlessCommon.h
@@ -268,9 +268,6 @@ Bool RootlessResolveColormap (ScreenPtr pScreen, int first_color,
void RootlessFlushWindowColormap (WindowPtr pWin);
void RootlessFlushScreenColormaps (ScreenPtr pScreen);
-// xp_error
-int RootlessColormapCallback(void *data, int first_color, int n_colors, uint32_t *colors);
-
// Move a window to its proper location on the screen.
void RootlessRepositionWindow(WindowPtr pWin);
@@ -285,5 +282,6 @@ void RootlessUpdateRooted (Bool state);
void RootlessEnableRoot (ScreenPtr pScreen);
void RootlessDisableRoot (ScreenPtr pScreen);
+void RootlessSetPixmapOfAncestors(WindowPtr pWin);
#endif /* _ROOTLESSCOMMON_H */
diff --git a/xorg-server/miext/rootless/rootlessScreen.c b/xorg-server/miext/rootless/rootlessScreen.c
index b10ca70eb..c73d5170b 100644
--- a/xorg-server/miext/rootless/rootlessScreen.c
+++ b/xorg-server/miext/rootless/rootlessScreen.c
@@ -257,7 +257,7 @@ RootlessComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst,
maskWin = (pMask->pDrawable->type == DRAWABLE_WINDOW) ?
(WindowPtr)pMask->pDrawable : NULL;
}
- srcWin = (pSrc->pDrawable->type == DRAWABLE_WINDOW) ?
+ srcWin = (pSrc->pDrawable && pSrc->pDrawable->type == DRAWABLE_WINDOW) ?
(WindowPtr)pSrc->pDrawable : NULL;
dstWin = (pDst->pDrawable->type == DRAWABLE_WINDOW) ?
(WindowPtr)pDst->pDrawable : NULL;
@@ -297,7 +297,7 @@ RootlessGlyphs(CARD8 op, PicturePtr pSrc, PicturePtr pDst,
GlyphPtr glyph;
WindowPtr srcWin, dstWin;
- srcWin = (pSrc->pDrawable->type == DRAWABLE_WINDOW) ?
+ srcWin = (pSrc->pDrawable && pSrc->pDrawable->type == DRAWABLE_WINDOW) ?
(WindowPtr)pSrc->pDrawable : NULL;
dstWin = (pDst->pDrawable->type == DRAWABLE_WINDOW) ?
(WindowPtr)pDst->pDrawable : NULL;
diff --git a/xorg-server/miext/rootless/rootlessWindow.c b/xorg-server/miext/rootless/rootlessWindow.c
index d43301fc1..53209565d 100644
--- a/xorg-server/miext/rootless/rootlessWindow.c
+++ b/xorg-server/miext/rootless/rootlessWindow.c
@@ -36,15 +36,15 @@
#include <stddef.h> /* For NULL */
#include <limits.h> /* For CHAR_BIT */
#include <assert.h>
-#ifdef __APPLE__
-//#include <X11/Xlib.h>
#include <X11/Xatom.h>
+#ifdef __APPLE__
+#include <Xplugin.h>
#include "mi.h"
#include "pixmapstr.h"
#include "windowstr.h"
-#include <Xplugin.h>
//#include <X11/extensions/applewm.h>
extern int darwinMainScreenX, darwinMainScreenY;
+extern Bool no_configure_window;
#endif
#include "fb.h"
@@ -61,8 +61,6 @@ extern int darwinMainScreenX, darwinMainScreenY;
#define SCREEN_TO_GLOBAL_Y 0
#endif
-#define MAKE_WINDOW_ID(x) ((xp_window_id)((size_t)(x)))
-
#define DEFINE_ATOM_HELPER(func,atom_name) \
static Atom func (void) { \
static unsigned int generation = 0; \
@@ -74,34 +72,15 @@ extern int darwinMainScreenX, darwinMainScreenY;
return atom; \
}
-DEFINE_ATOM_HELPER (xa_native_screen_origin, "_NATIVE_SCREEN_ORIGIN")
DEFINE_ATOM_HELPER (xa_native_window_id, "_NATIVE_WINDOW_ID")
-DEFINE_ATOM_HELPER (xa_apple_no_order_in, "_APPLE_NO_ORDER_IN")
-static Bool no_configure_window;
static Bool windows_hidden;
// TODO - abstract xp functions
-static inline int
-configure_window (xp_window_id id, unsigned int mask,
- const xp_window_changes *values)
-{
- if (!no_configure_window)
- return xp_configure_window (id, mask, values);
- else
- return XP_Success;
-}
-
-/*static inline unsigned long
-current_time_in_seconds (void)
-{
- unsigned long t = 0;
-
- t += currentTime.milliseconds / 1000;
- t += currentTime.months * 4294967;
+#ifdef __APPLE__
- return t;
- } */
+// XXX: identical to x_cvt_vptr_to_uint ?
+#define MAKE_WINDOW_ID(x) ((xp_window_id)((size_t)(x)))
void
RootlessNativeWindowStateChanged (WindowPtr pWin, unsigned int state)
@@ -153,25 +132,7 @@ void RootlessNativeWindowMoved (WindowPtr pWin) {
no_configure_window = FALSE;
}
-/* Updates the _NATIVE_SCREEN_ORIGIN property on the given root window. */
-static void
-set_screen_origin (WindowPtr pWin)
-{
- long data[2];
-
- if (!IsRoot (pWin))
- return;
-
- /* FIXME: move this to an extension? */
-
- data[0] = (dixScreenOrigins[pWin->drawable.pScreen->myNum].x
- + darwinMainScreenX);
- data[1] = (dixScreenOrigins[pWin->drawable.pScreen->myNum].y
- + darwinMainScreenY);
-
- dixChangeWindowProperty(serverClient, pWin, xa_native_screen_origin(),
- XA_INTEGER, 32, PropModeReplace, 2, data, TRUE);
-}
+#endif /* __APPLE__ */
/*
* RootlessCreateWindow
@@ -437,13 +398,6 @@ RootlessInitializeFrame(WindowPtr pWin, RootlessWindowRec *winRec)
#endif
}
-
-Bool
-RootlessColormapCallback (void *data, int first_color, int n_colors, uint32_t *colors)
-{
- return (RootlessResolveColormap (data, first_color, n_colors, colors) ? XP_Success : XP_BadMatch);
-}
-
/*
* RootlessEnsureFrame
* Make sure the given window is framed. If the window doesn't have a
@@ -1482,19 +1436,15 @@ void
RootlessFlushWindowColormap (WindowPtr pWin)
{
RootlessWindowRec *winRec = WINREC (pWin);
- xp_window_changes wc;
+ ScreenPtr pScreen = pWin->drawable.pScreen;
if (winRec == NULL)
return;
RootlessStopDrawing (pWin, FALSE);
- /* This is how we tell xp that the colormap may have changed. */
-
- wc.colormap = RootlessColormapCallback;
- wc.colormap_data = pWin->drawable.pScreen;
-
- configure_window (MAKE_WINDOW_ID(winRec->wid), XP_COLORMAP, &wc);
+ if (SCREENREC(pScreen)->imp->UpdateColormap)
+ SCREENREC(pScreen)->imp->UpdateColormap(winRec->wid, pScreen);
}
/*
@@ -1617,7 +1567,6 @@ RootlessHideAllWindows (void)
ScreenPtr pScreen;
WindowPtr pWin;
RootlessWindowRec *winRec;
- xp_window_changes wc;
if (windows_hidden)
return;
@@ -1641,9 +1590,8 @@ RootlessHideAllWindows (void)
winRec = WINREC (pWin);
if (winRec != NULL)
{
- wc.stack_mode = XP_UNMAPPED;
- wc.sibling = 0;
- configure_window (MAKE_WINDOW_ID(winRec->wid), XP_STACKING, &wc);
+ if (SCREENREC(pScreen)->imp->HideWindow)
+ SCREENREC(pScreen)->imp->HideWindow(winRec->wid);
}
}
}
diff --git a/xorg-server/miext/rootless/rootlessWindow.h b/xorg-server/miext/rootless/rootlessWindow.h
index 2d2555ea5..ca104a4d7 100644
--- a/xorg-server/miext/rootless/rootlessWindow.h
+++ b/xorg-server/miext/rootless/rootlessWindow.h
@@ -52,7 +52,9 @@ void RootlessResizeWindow(WindowPtr pWin, int x, int y,
unsigned int w, unsigned int h, WindowPtr pSib);
void RootlessReparentWindow(WindowPtr pWin, WindowPtr pPriorParent);
void RootlessChangeBorderWidth(WindowPtr pWin, unsigned int width);
+#ifdef __APPLE__
void RootlessNativeWindowMoved (WindowPtr pWin);
void RootlessNativeWindowStateChanged (WindowPtr pWin, unsigned int state);
+#endif
#endif