[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xorg-server: Changes to 'ubuntu'



 debian/patches/202_xf86CoordinatesToWindows.patch   |  101 +++++++
 debian/patches/202_xf86CoordinationsToWindows.patch |   44 +--
 debian/patches/203_gestures-extension.patch         |  283 +++++++++++++++-----
 debian/patches/series                               |    4 
 4 files changed, 341 insertions(+), 91 deletions(-)

New commits:
commit ae19df72d4482593475e08c6d32f1a62231adbcf
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Sun Jan 30 23:37:28 2011 -0500

    Refresh gesture extension patch for 1.10 and re-enable it

diff --git a/debian/patches/203_gestures-extension.patch b/debian/patches/203_gestures-extension.patch
index d786914..427e90f 100644
--- a/debian/patches/203_gestures-extension.patch
+++ b/debian/patches/203_gestures-extension.patch
@@ -1,24 +1,28 @@
-From 2b3600e55fdc8270181a1e818ad1c607c7406b16 Mon Sep 17 00:00:00 2001
+From 09db1a38853ddf8ad8a72e644c7b8e9b1863f4d6 Mon Sep 17 00:00:00 2001
 From: Chase Douglas <chase.douglas@canonical.com>
-Date: Sat, 24 Jul 2010 06:02:59 -0400
-Subject: [PATCH] Gesture Extension
+Date: Tue, 25 Jan 2011 20:28:35 -0500
+Subject: [PATCH] Gesture support
 
 ---
- Makefile.am                 |    5 +
- configure.ac                |   26 ++-
- dix/window.c                |    7 +
- gesture/Makefile.am         |   10 +
- gesture/gesture.c           |  421 +++++++++++++++++++++++++++++++++++++++++++
- gesture/gesture.h           |   77 ++++++++
- gesture/gestureint.h        |   49 +++++
- gesture/gestureproto.h      |  141 +++++++++++++++
- gesture/init.c              |  282 +++++++++++++++++++++++++++++
- include/dix-config.h.in     |    3 +
- include/protocol-versions.h |    4 +
- include/windowstr.h         |   10 +
- mi/miinitext.c              |   15 ++
- os/utils.c                  |    3 +
- 14 files changed, 1045 insertions(+), 8 deletions(-)
+ Makefile.am                    |    5 +
+ configure.ac                   |   26 ++-
+ dix/events.c                   |    3 +
+ dix/window.c                   |   10 +
+ gesture/Makefile.am            |   10 +
+ gesture/gesture.c              |  430 ++++++++++++++++++++++++++++++++++++++++
+ gesture/gesture.h              |   78 ++++++++
+ gesture/gestureint.h           |   49 +++++
+ gesture/gestureproto.h         |  132 ++++++++++++
+ gesture/init.c                 |  280 ++++++++++++++++++++++++++
+ hw/xfree86/common/xf86Xinput.c |   43 ++++
+ include/dix-config.h.in        |    3 +
+ include/eventstr.h             |   14 ++
+ include/protocol-versions.h    |    4 +
+ include/windowstr.h            |   14 ++
+ mi/mieq.c                      |   35 ++++
+ mi/miinitext.c                 |   15 ++
+ os/utils.c                     |    3 +
+ 18 files changed, 1146 insertions(+), 8 deletions(-)
  create mode 100644 gesture/Makefile.am
  create mode 100644 gesture/gesture.c
  create mode 100644 gesture/gesture.h
@@ -49,7 +53,7 @@ Subject: [PATCH] Gesture Extension
  	test
 --- a/configure.ac
 +++ b/configure.ac
-@@ -602,6 +602,8 @@ AC_ARG_ENABLE(visibility,     AC_HELP_ST
+@@ -596,6 +596,8 @@ AC_ARG_ENABLE(visibility,     AC_HELP_ST
  AC_ARG_ENABLE(pc98,     	AC_HELP_STRING([--enable-pc98], [Enable PC98 support in Xorg (default: auto)]),
  				[SUPPORT_PC98=$enableval],
  				[SUPPORT_PC98=auto])
@@ -57,9 +61,9 @@ Subject: [PATCH] Gesture Extension
 +				[GESTURES=$enableval])
  
  dnl GLX build options
- AC_ARG_WITH(dri-driver-path,  AS_HELP_STRING([--with-dri-driver-path=PATH], [Path to DRI drivers (default: ${libdir}/dri)]),
-@@ -1360,6 +1362,13 @@ MIEXT_SHADOW_INC='-I$(top_srcdir)/miext/
- MIEXT_SHADOW_LIB='$(top_builddir)/miext/shadow/libshadow.la'
+ AC_ARG_ENABLE(aiglx,          AS_HELP_STRING([--enable-aiglx], [Build accelerated indirect GLX (default: enabled)]),
+@@ -1353,6 +1355,13 @@ MIEXT_SYNC_INC='-I$(top_srcdir)/miext/sy
+ MIEXT_SYNC_LIB='$(top_builddir)/miext/sync/libsync.la'
  CORE_INCS='-I$(top_srcdir)/include -I$(top_builddir)/include'
  
 +AM_CONDITIONAL(GESTURES, [test "x$GESTURES" = "xyes"])
@@ -72,79 +76,79 @@ Subject: [PATCH] Gesture Extension
  # SHA1 hashing
  AC_ARG_WITH([sha1],
              [AS_HELP_STRING([--with-sha1=libc|libmd|libgcrypt|libcrypto|libsha1|CommonCrypto|nettle],
-@@ -1507,7 +1516,7 @@ AC_EGREP_CPP([I_AM_SVR4],[
+@@ -1500,7 +1509,7 @@ AC_EGREP_CPP([I_AM_SVR4],[
  AC_DEFINE([SVR4],1,[Define to 1 on systems derived from System V Release 4])
  AC_MSG_RESULT([yes])], AC_MSG_RESULT([no]))
  
--XSERVER_CFLAGS="$XSERVER_CFLAGS $CORE_INCS $XEXT_INC $COMPOSITE_INC $DAMAGE_INC $FIXES_INC $XI_INC $MI_INC $MIEXT_SHADOW_INC $MIEXT_LAYER_INC $MIEXT_DAMAGE_INC $RENDER_INC $RANDR_INC $FB_INC"
-+XSERVER_CFLAGS="$XSERVER_CFLAGS $CORE_INCS $XEXT_INC $COMPOSITE_INC $DAMAGE_INC $FIXES_INC $XI_INC $MI_INC $MIEXT_SHADOW_INC $MIEXT_LAYER_INC $MIEXT_DAMAGE_INC $RENDER_INC $RANDR_INC $FB_INC $GESTURE_INC"
+-XSERVER_CFLAGS="$XSERVER_CFLAGS $CORE_INCS $XEXT_INC $COMPOSITE_INC $DAMAGE_INC $FIXES_INC $XI_INC $MI_INC $MIEXT_SYNC_INC $MIEXT_SHADOW_INC $MIEXT_LAYER_INC $MIEXT_DAMAGE_INC $RENDER_INC $RANDR_INC $FB_INC"
++XSERVER_CFLAGS="$XSERVER_CFLAGS $CORE_INCS $XEXT_INC $COMPOSITE_INC $DAMAGE_INC $FIXES_INC $XI_INC $MI_INC $MIEXT_SYNC_INC $MIEXT_SHADOW_INC $MIEXT_LAYER_INC $MIEXT_DAMAGE_INC $RENDER_INC $RANDR_INC $FB_INC $GESTURE_INC"
  
  dnl ---------------------------------------------------------------------------
  dnl DDX section.
-@@ -1520,7 +1529,7 @@ AC_MSG_RESULT([$XVFB])
+@@ -1513,7 +1522,7 @@ AC_MSG_RESULT([$XVFB])
  AM_CONDITIONAL(XVFB, [test "x$XVFB" = xyes])
  
  if test "x$XVFB" = xyes; then
--	XVFB_LIBS="$FB_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB"
-+	XVFB_LIBS="$FB_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $GESTURE_LIB"
+-	XVFB_LIBS="$FB_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB"
++	XVFB_LIBS="$FB_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $GESTURE_LIB"
  	XVFB_SYS_LIBS="$XVFBMODULES_LIBS $GLX_SYS_LIBS"
  	AC_SUBST([XVFB_LIBS])
  	AC_SUBST([XVFB_SYS_LIBS])
-@@ -1541,7 +1550,7 @@ if test "x$XNEST" = xyes; then
+@@ -1534,7 +1543,7 @@ if test "x$XNEST" = xyes; then
  	if test "x$have_xnest" = xno; then
  		AC_MSG_ERROR([Xnest build explicitly requested, but required modules not found.])
  	fi
--	XNEST_LIBS="$FB_LIB $FIXES_LIB $MI_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $DIX_LIB $MAIN_LIB $OS_LIB"
-+	XNEST_LIBS="$FB_LIB $FIXES_LIB $MI_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $DIX_LIB $MAIN_LIB $OS_LIB $GESTURE_LIB"
+-	XNEST_LIBS="$FB_LIB $FIXES_LIB $MI_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $DIX_LIB $MAIN_LIB $OS_LIB"
++	XNEST_LIBS="$FB_LIB $FIXES_LIB $MI_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $DIX_LIB $MAIN_LIB $OS_LIB $GESTURE_LIB"
  	XNEST_SYS_LIBS="$XNESTMODULES_LIBS $GLX_SYS_LIBS"
  	AC_SUBST([XNEST_LIBS])
  	AC_SUBST([XNEST_SYS_LIBS])
-@@ -1569,7 +1578,7 @@ if test "x$XORG" = xyes; then
+@@ -1562,7 +1571,7 @@ if test "x$XORG" = xyes; then
  	XORG_OSINCS='-I$(top_srcdir)/hw/xfree86/os-support -I$(top_srcdir)/hw/xfree86/os-support/bus -I$(top_srcdir)/os'
  	XORG_INCS="$XORG_DDXINCS $XORG_OSINCS"
  	XORG_CFLAGS="$XORGSERVER_CFLAGS -DHAVE_XORG_CONFIG_H"
--	XORG_LIBS="$COMPOSITE_LIB $FIXES_LIB $XEXTXORG_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB"
-+	XORG_LIBS="$COMPOSITE_LIB $FIXES_LIB $XEXTXORG_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $GESTURE_LIB"
+-	XORG_LIBS="$COMPOSITE_LIB $FIXES_LIB $XEXTXORG_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB"
++	XORG_LIBS="$COMPOSITE_LIB $FIXES_LIB $XEXTXORG_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $GESTURE_LIB"
  
  	dnl ==================================================================
  	dnl symbol visibility
-@@ -1905,7 +1914,7 @@ if test "x$XWIN" = xyes; then
+@@ -1898,7 +1907,7 @@ if test "x$XWIN" = xyes; then
  			XWIN_SYS_LIBS=-lwinsock2
  			;;
  	esac
--	XWIN_LIBS="$FB_LIB $MI_LIB $FIXES_LIB $XEXT_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_LIBS="$FB_LIB $MI_LIB $FIXES_LIB $XEXT_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 $GESTURE_LIB"
+-	XWIN_LIBS="$FB_LIB $MI_LIB $FIXES_LIB $XEXT_LIB $RANDR_LIB $RENDER_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $DAMAGE_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $OS_LIB"
++	XWIN_LIBS="$FB_LIB $MI_LIB $FIXES_LIB $XEXT_LIB $RANDR_LIB $RENDER_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $DAMAGE_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $OS_LIB $GESTURE_LIB"
  	XWIN_SYS_LIBS="$XWIN_SYS_LIBS $XWINMODULES_LIBS"
  	AC_SUBST(XWIN_LIBS)
  	AC_SUBST(XWIN_SERVER_NAME)
-@@ -1935,7 +1944,7 @@ if test "x$XQUARTZ" = xyes; then
+@@ -1928,7 +1937,7 @@ if test "x$XQUARTZ" = xyes; then
  	AC_DEFINE(XQUARTZ,1,[Have Quartz])
  	AC_DEFINE(ROOTLESS,1,[Build Rootless code])
  
--	DARWIN_LIBS="$MI_LIB $OS_LIB $DIX_LIB $MAIN_LIB $FB_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $XPSTUBS_LIB"
-+	DARWIN_LIBS="$MI_LIB $OS_LIB $DIX_LIB $MAIN_LIB $FB_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $XPSTUBS_LIB $GESTURE_LIB"
+-	DARWIN_LIBS="$MI_LIB $OS_LIB $DIX_LIB $MAIN_LIB $FB_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $XPSTUBS_LIB"
++	DARWIN_LIBS="$MI_LIB $OS_LIB $DIX_LIB $MAIN_LIB $FB_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $XPSTUBS_LIB $GESTURE_LIB"
  	AC_SUBST([DARWIN_LIBS])
  
  	AC_CHECK_LIB([Xplugin],[xp_init],[:])
-@@ -1996,7 +2005,7 @@ if test "x$DMX" = xyes; then
+@@ -1989,7 +1998,7 @@ if test "x$DMX" = xyes; then
  	fi
  	DMX_INCLUDES="$XEXT_INC $RENDER_INC $RECORD_INC"
  	XDMX_CFLAGS="$DMXMODULES_CFLAGS"
--	XDMX_LIBS="$FB_LIB $MI_LIB $RENDER_LIB $RECORD_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $MIEXT_SHADOW_LIB $MIEXT_DAMAGE_LIB $XEXT_LIB $MAIN_LIB $DIX_LIB $OS_LIB $FIXES_LIB"
-+	XDMX_LIBS="$FB_LIB $MI_LIB $RENDER_LIB $RECORD_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $MIEXT_SHADOW_LIB $MIEXT_DAMAGE_LIB $XEXT_LIB $MAIN_LIB $DIX_LIB $OS_LIB $FIXES_LIB $GESTURE_LIB"
+-	XDMX_LIBS="$FB_LIB $MI_LIB $XEXT_LIB $RENDER_LIB $RECORD_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $MIEXT_SYNC_LIB $MIEXT_SHADOW_LIB $MIEXT_DAMAGE_LIB $COMPOSITE_LIB $DAMAGE_LIB $MAIN_LIB $DIX_LIB $CONFIG_LIB $OS_LIB $FIXES_LIB"
++	XDMX_LIBS="$FB_LIB $MI_LIB $XEXT_LIB $RENDER_LIB $RECORD_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $MIEXT_SYNC_LIB $MIEXT_SHADOW_LIB $MIEXT_DAMAGE_LIB $COMPOSITE_LIB $DAMAGE_LIB $MAIN_LIB $DIX_LIB $CONFIG_LIB $OS_LIB $FIXES_LIB $GESTURE_LIB"
  	XDMX_SYS_LIBS="$DMXMODULES_LIBS"
  	AC_SUBST([XDMX_CFLAGS])
  	AC_SUBST([XDMX_LIBS])
-@@ -2104,7 +2113,7 @@ if test "$KDRIVE" = yes; then
+@@ -2100,7 +2109,7 @@ if test "$KDRIVE" = yes; then
      
      KDRIVE_CFLAGS="$XSERVER_CFLAGS -DHAVE_KDRIVE_CONFIG_H $TSLIB_CFLAGS"
  
--    KDRIVE_PURE_LIBS="$FB_LIB $MI_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $OS_LIB"
-+    KDRIVE_PURE_LIBS="$FB_LIB $MI_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $OS_LIB $GESTURE_LIB"
+-    KDRIVE_PURE_LIBS="$FB_LIB $MI_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $OS_LIB"
++    KDRIVE_PURE_LIBS="$FB_LIB $MI_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $OS_LIB $GESTURE_LIB"
      KDRIVE_LIB='$(top_builddir)/hw/kdrive/src/libkdrive.la'
      case $host_os in
  	*linux*)
-@@ -2215,6 +2224,7 @@ Xext/Makefile
+@@ -2214,6 +2223,7 @@ Xext/Makefile
  Xi/Makefile
  xfixes/Makefile
  exa/Makefile
@@ -152,9 +156,21 @@ Subject: [PATCH] Gesture Extension
  hw/Makefile
  hw/xfree86/Makefile
  hw/xfree86/common/Makefile
+--- a/dix/events.c
++++ b/dix/events.c
+@@ -5442,6 +5442,9 @@ DeleteWindowFromAnyEvents(WindowPtr pWin
+ 	    FreeResource(oc->resource, RT_NONE);
+ 	while ( (passive = wPassiveGrabs(pWin)) )
+ 	    FreeResource(passive->resource, RT_NONE);
++#ifdef GESTURES
++        DeleteWindowFromGestureEvents(pWin);
++#endif
+      }
+ 
+     DeleteWindowFromAnyExtEvents(pWin, freeResources);
 --- a/dix/window.c
 +++ b/dix/window.c
-@@ -397,6 +397,9 @@ CreateRootWindow(ScreenPtr pScreen)
+@@ -403,6 +403,9 @@ CreateRootWindow(ScreenPtr pScreen)
      pWin->optional->deviceCursors = NULL;
      pWin->optional->colormap = pScreen->defColormap;
      pWin->optional->visual = pScreen->rootVisual;
@@ -164,7 +180,7 @@ Subject: [PATCH] Gesture Extension
  
      pWin->nextSib = NullWindow;
  
-@@ -3397,6 +3400,10 @@ CheckWindowOptionalNeed (WindowPtr w)
+@@ -3408,6 +3411,10 @@ CheckWindowOptionalNeed (WindowPtr w)
              pNode = pNode->next;
          }
      }
@@ -175,7 +191,7 @@ Subject: [PATCH] Gesture Extension
  
      parentOptional = FindWindowWithOptional(w)->optional;
      if (optional->visual != parentOptional->visual)
-@@ -3440,6 +3447,9 @@ MakeWindowOptional (WindowPtr pWin)
+@@ -3451,6 +3458,9 @@ MakeWindowOptional (WindowPtr pWin)
      optional->inputShape = NULL;
      optional->inputMasks = NULL;
      optional->deviceCursors = NULL;
@@ -1182,6 +1198,65 @@ Subject: [PATCH] Gesture Extension
 +    }
 +}
 +
+--- a/hw/xfree86/common/xf86Xinput.c
++++ b/hw/xfree86/common/xf86Xinput.c
+@@ -99,6 +99,15 @@
+ 		return;								\
+ 	}
+ 
++#include "gestureproto.h"
++
++_X_EXPORT void
++xf86PostGestureEvent(DeviceIntPtr dev, unsigned short x, unsigned short y,
++                     unsigned short client_id, unsigned short gesture_id,
++                     unsigned short gesture_type, Window root, Window event,
++                     Window child, unsigned short status,
++                     unsigned short num_props, float *props);
++
+ EventListPtr xf86Events = NULL;
+ 
+ static int
+@@ -966,6 +975,40 @@ DeleteInputDeviceRequest(DeviceIntPtr pD
+  */
+ 
+ void
++xf86PostGestureEvent(DeviceIntPtr dev, unsigned short x, unsigned short y,
++                     unsigned short client_id, unsigned short gesture_id,
++                     unsigned short gesture_type, Window root, Window event,
++                     Window child, unsigned short status,
++                     unsigned short num_props, float *props)
++{
++    DeviceEvent *ev = (DeviceEvent *)xf86Events->event;
++
++    if (num_props > MAX_GESTURE_PROPS)
++        num_props = MAX_GESTURE_PROPS;
++
++    memset(ev, 0, sizeof(DeviceEvent));
++    ev->header = ET_Internal;
++    ev->length = sizeof(DeviceEvent);
++    ev->time = GetTimeInMillis();
++    ev->deviceid = dev->id;
++    ev->sourceid = dev->id;
++    ev->type = ET_Gesture;
++    ev->root_x = x;
++    ev->root_y = y;
++    ev->gesture.client_id = client_id;
++    ev->gesture.id = gesture_id;
++    ev->gesture.type = gesture_type;
++    ev->root = root;
++    ev->gesture.event = event;
++    ev->gesture.child = child;
++    ev->gesture.status = status;
++    ev->gesture.num_props = num_props;
++    memcpy(ev->gesture.props, props, num_props * sizeof(float));
++
++    mieqEnqueue(dev, (InternalEvent*)ev);
++}
++
++void
+ xf86PostMotionEvent(DeviceIntPtr	device,
+                     int			is_absolute,
+                     int			first_valuator,
 --- a/include/dix-config.h.in
 +++ b/include/dix-config.h.in
 @@ -30,6 +30,9 @@
@@ -1194,9 +1269,46 @@ Subject: [PATCH] Gesture Extension
  /* Build for darwin with Quartz support */
  #undef DARWIN_WITH_QUARTZ
  
+--- a/include/eventstr.h
++++ b/include/eventstr.h
+@@ -65,6 +65,7 @@ enum EventType {
+     ET_RawButtonRelease,
+     ET_RawMotion,
+     ET_XQuartz,
++    ET_Gesture,
+     ET_Internal = 0xFF /* First byte */
+ };
+ 
+@@ -72,6 +73,9 @@ enum EventType {
+                           FatalError("Wrong event type %d.\n", \
+                                      ((InternalEvent*)(ev))->any.header);
+ 
++/* Should match DIM_GRAIL_PROP in grail.h */
++#define MAX_GESTURE_PROPS 32
++
+ /**
+  * Used for ALL input device events internal in the server until
+  * copied into the matching protocol event.
+@@ -114,6 +118,16 @@ struct _DeviceEvent
+         uint8_t locked;  /**< XKB locked group */
+         uint8_t effective;/**< XKB effective group */
+     } group;
++    struct {
++        uint16_t client_id;
++        uint16_t id;
++        uint16_t type;
++        Window event;
++        Window child;
++        uint16_t status;
++        uint16_t num_props;
++        float props[MAX_GESTURE_PROPS];
++    } gesture;
+     Window      root; /**< Root window of the event */
+     int corestate;    /**< Core key/button state BEFORE the event */
+     int key_repeat;   /**< Internally-generated key repeat event */
 --- a/include/protocol-versions.h
 +++ b/include/protocol-versions.h
-@@ -141,4 +141,8 @@
+@@ -145,4 +145,8 @@
  #define SERVER_XVMC_MAJOR_VERSION		1
  #define SERVER_XVMC_MINOR_VERSION		1
  
@@ -1239,7 +1351,7 @@ Subject: [PATCH] Gesture Extension
  } WindowOptRec, *WindowOptPtr;
  
  #define BackgroundPixel	    2L
-@@ -199,6 +210,9 @@ extern _X_EXPORT Mask	DontPropagateMasks
+@@ -202,6 +213,9 @@ extern _X_EXPORT Mask	DontPropagateMasks
  #define wInputShape(w)          wUseDefault(w, inputShape, NULL)
  #define wClient(w)		(clients[CLIENT_ID((w)->drawable.id)])
  #define wBorderWidth(w)		((int) (w)->borderWidth)
@@ -1249,6 +1361,57 @@ Subject: [PATCH] Gesture Extension
  
  /* true when w needs a border drawn. */
  
+--- a/mi/mieq.c
++++ b/mi/mieq.c
+@@ -58,6 +58,8 @@ in this Software without prior written a
+ # include <X11/extensions/dpmsconst.h>
+ #endif
+ 
++#include "gestureproto.h"
++
+ #define QUEUE_SIZE  512
+ 
+ #define EnqueueScreen(dev) dev->spriteInfo->sprite->pEnqueueScreen
+@@ -376,6 +378,39 @@ mieqProcessDeviceEvent(DeviceIntPtr dev,
+ 
+     CHECKEVENT(event);
+ 
++    if (event->any.header == ET_Internal && event->any.type == ET_Gesture){
++        GestureEvent gev;
++        DeviceEvent *ev = (DeviceEvent *)event;
++        ClientPtr client = clients[ev->gesture.client_id];
++
++        /* Check if client still exists */
++        if (!client)
++            return;
++
++        gev.type = GenericEvent;
++        gev.extension =  GestureReqCode;
++        gev.sequenceNumber = client->sequence;
++        gev.evtype = 0;
++        gev.time = ev->time;
++        gev.length = (sizeof(GestureEvent) +
++                      ev->gesture.num_props * sizeof(float) -
++                       sizeof(xEvent)) / 4;
++        gev.gesture_id = ev->gesture.id;
++        gev.gesture_type = ev->gesture.type;
++        gev.device_id = ev->deviceid;
++        gev.root = ev->root;
++        gev.event = ev->gesture.event;
++        gev.child = ev->gesture.child;
++        gev.focus_x = ev->root_x;
++        gev.focus_y = ev->root_y;
++        gev.status = ev->gesture.status;
++        gev.num_props = ev->gesture.num_props;
++
++        WriteToClient(client, sizeof(GestureEvent), &gev);
++        WriteToClient(client, sizeof(float) * gev.num_props, ev->gesture.props);
++        return;
++    }
++
+     /* Custom event handler */
+     handler = miEventQueue.handlers[event->any.type];
+ 
 --- a/mi/miinitext.c
 +++ b/mi/miinitext.c
 @@ -152,6 +152,9 @@ extern Bool noSELinuxExtension;
@@ -1281,7 +1444,7 @@ Subject: [PATCH] Gesture Extension
      { NULL, NULL }
  };
  
-@@ -472,6 +481,9 @@ InitExtensions(int argc, char *argv[])
+@@ -470,6 +479,9 @@ InitExtensions(int argc, char *argv[])
  	GlxPushProvider(&__glXDRISWRastProvider);
      if (!noGlxExtension) GlxExtensionInit();
  #endif
@@ -1291,7 +1454,7 @@ Subject: [PATCH] Gesture Extension
  }
  
  #else /* XFree86LOADER */
-@@ -513,6 +525,9 @@ static ExtensionModule staticExtensions[
+@@ -511,6 +523,9 @@ static ExtensionModule staticExtensions[
  #ifdef DAMAGE
      { DamageExtensionInit, "DAMAGE", &noDamageExtension, NULL },
  #endif
@@ -1313,15 +1476,3 @@ Subject: [PATCH] Gesture Extension
  
  Bool noGEExtension = FALSE;
  
---- a/dix/events.c
-+++ b/dix/events.c
-@@ -5471,6 +5471,9 @@ DeleteWindowFromAnyEvents(WindowPtr pWin
- 	    FreeResource(oc->resource, RT_NONE);
- 	while ( (passive = wPassiveGrabs(pWin)) )
- 	    FreeResource(passive->resource, RT_NONE);
-+#ifdef GESTURES
-+        DeleteWindowFromGestureEvents(pWin);
-+#endif
-      }
- 
-     DeleteWindowFromAnyExtEvents(pWin, freeResources);
diff --git a/debian/patches/series b/debian/patches/series
index 4f34452..ebe2b65 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -26,6 +26,6 @@
 200_randr-null.patch
 #201_report-real-dpi.patch
 202_xf86CoordinationsToWindows.patch
-#203_gestures-extension.patch
+203_gestures-extension.patch
 206_intel_8xx_default_to_fbdev.patch
 209_add_legacy_bgnone_option.patch

commit 4315774b553b4f9426f77ffa9ed9aa097e157e56
Author: Chase Douglas <chase.douglas@canonical.com>
Date:   Mon Jan 31 00:30:13 2011 -0500

    Refresh xf86CoordinatesToWindows patch

diff --git a/debian/patches/202_xf86CoordinatesToWindows.patch b/debian/patches/202_xf86CoordinatesToWindows.patch
new file mode 100644
index 0000000..4d8156a
--- /dev/null
+++ b/debian/patches/202_xf86CoordinatesToWindows.patch
@@ -0,0 +1,101 @@
+From 88538741de597a2595d89d7518f123c3b16c6d4f Mon Sep 17 00:00:00 2001
+From: Chase Douglas <chase.douglas@canonical.com>
+Date: Tue, 25 Jan 2011 22:44:41 -0500
+Subject: [PATCH] Add xf86CoordinatesToWIndow
+
+---
+ dix/events.c                   |   44 ++++++++++++++++++++++++++++++++++++++++
+ hw/xfree86/common/xf86Xinput.c |    6 +++++
+ hw/xfree86/common/xf86Xinput.h |    2 +
+ include/events.h               |    3 ++
+ 4 files changed, 55 insertions(+), 0 deletions(-)
+
+--- a/dix/events.c
++++ b/dix/events.c
+@@ -5811,3 +5811,47 @@ IsInterferingGrab(ClientPtr client, Devi
+     return FALSE;
+ }
+ 
++WindowPtr
++CoordinatesToWindow(int x, int y, int screen)
++{
++    WindowPtr pWin;
++    WindowPtr ret = NullWindow;
++    BoxRec box;
++
++    pWin = screenInfo.screens[screen]->root;
++    while (pWin)
++    {
++	if ((pWin->mapped) &&
++	    (x >= pWin->drawable.x - wBorderWidth (pWin)) &&
++	    (x < pWin->drawable.x + (int)pWin->drawable.width +
++	     wBorderWidth(pWin)) &&
++	    (y >= pWin->drawable.y - wBorderWidth (pWin)) &&
++	    (y < pWin->drawable.y + (int)pWin->drawable.height +
++	     wBorderWidth (pWin))
++	    /* When a window is shaped, a further check
++	     * is made to see if the point is inside
++	     * borderSize
++	     */
++	    && (!wBoundingShape(pWin) || PointInBorderSize(pWin, x, y))
++	    && (!wInputShape(pWin) ||
++		RegionContainsPoint(wInputShape(pWin),
++				    x - pWin->drawable.x,
++				    y - pWin->drawable.y, &box))
++#ifdef ROOTLESS
++    /* In rootless mode windows may be offscreen, even when
++     * they're in X's stack. (E.g. if the native window system
++     * implements some form of virtual desktop system).
++     */
++		&& !pWin->rootlessUnhittable
++#endif
++	    )
++	{
++            ret = pWin;
++            pWin = pWin->firstChild;
++        }
++        else
++            pWin = pWin->nextSib;
++    }
++    return ret;
++}
++
+--- a/hw/xfree86/common/xf86Xinput.c
++++ b/hw/xfree86/common/xf86Xinput.c
+@@ -1396,4 +1396,10 @@ xf86EnableDevice(DeviceIntPtr dev)
+     EnableDevice(dev, TRUE);
+ }
+ 
++WindowPtr
++xf86CoordinatesToWindow(int x, int y, int screen)
++{
++    return CoordinatesToWindow(x, y, screen);
++}
++
+ /* end of xf86Xinput.c */
+--- a/hw/xfree86/common/xf86Xinput.h
++++ b/hw/xfree86/common/xf86Xinput.h
+@@ -179,4 +179,6 @@ extern _X_EXPORT void xf86VIDrvMsgVerb(I
+ /* xf86Option.c */
+ extern _X_EXPORT void xf86CollectInputOptions(InputInfoPtr pInfo, const char **defaultOpts);
+ 
++extern _X_EXPORT WindowPtr xf86CoordinatesToWindow(int x, int y, int screen);
++
+ #endif /* _xf86Xinput_h */
+--- a/include/events.h
++++ b/include/events.h
+@@ -24,6 +24,7 @@
+ 
+ #ifndef EVENTS_H
+ #define EVENTS_H
++
+ typedef struct _DeviceEvent DeviceEvent;
+ typedef struct _DeviceChangedEvent DeviceChangedEvent;
+ #if XFreeXDGA
+@@ -35,4 +36,6 @@ typedef struct _XQuartzEvent XQuartzEven
+ #endif
+ typedef union _InternalEvent InternalEvent;
+ 
++extern WindowPtr CoordinatesToWindow(int x, int y, int screen);
++
+ #endif
diff --git a/debian/patches/202_xf86CoordinationsToWindows.patch b/debian/patches/202_xf86CoordinationsToWindows.patch
index 6c2d1f1..4d8156a 100644
--- a/debian/patches/202_xf86CoordinationsToWindows.patch
+++ b/debian/patches/202_xf86CoordinationsToWindows.patch
@@ -1,18 +1,18 @@
-From 0e750eff9ba7987ef31acaabd3ef771bfd2e2ce5 Mon Sep 17 00:00:00 2001
+From 88538741de597a2595d89d7518f123c3b16c6d4f Mon Sep 17 00:00:00 2001
 From: Chase Douglas <chase.douglas@canonical.com>
-Date: Wed, 21 Jul 2010 12:00:04 +0200
-Subject: [PATCH 1/5] Add XFixesCoordinatesToWindow request
+Date: Tue, 25 Jan 2011 22:44:41 -0500
+Subject: [PATCH] Add xf86CoordinatesToWIndow
 
 ---
- dix/events.c                   |   48 ++++++++++++++++++++++++++++++++++++++++
- hw/xfree86/common/xf86Xinput.c |    7 +++++
+ dix/events.c                   |   44 ++++++++++++++++++++++++++++++++++++++++
+ hw/xfree86/common/xf86Xinput.c |    6 +++++
  hw/xfree86/common/xf86Xinput.h |    2 +
  include/events.h               |    3 ++
- 4 files changed, 60 insertions(+), 0 deletions(-)
+ 4 files changed, 55 insertions(+), 0 deletions(-)
 
---- xorg-server-debian.orig/dix/events.c
-+++ xorg-server-debian/dix/events.c
-@@ -5840,3 +5840,47 @@
+--- a/dix/events.c
++++ b/dix/events.c
+@@ -5811,3 +5811,47 @@ IsInterferingGrab(ClientPtr client, Devi
      return FALSE;
  }
  
@@ -60,9 +60,9 @@ Subject: [PATCH 1/5] Add XFixesCoordinatesToWindow request
 +    return ret;
 +}
 +
---- xorg-server-debian.orig/hw/xfree86/common/xf86Xinput.c
-+++ xorg-server-debian/hw/xfree86/common/xf86Xinput.c
-@@ -1362,4 +1362,10 @@
+--- a/hw/xfree86/common/xf86Xinput.c
++++ b/hw/xfree86/common/xf86Xinput.c
+@@ -1396,4 +1396,10 @@ xf86EnableDevice(DeviceIntPtr dev)
      EnableDevice(dev, TRUE);
  }
  
@@ -73,19 +73,17 @@ Subject: [PATCH 1/5] Add XFixesCoordinatesToWindow request
 +}
 +
  /* end of xf86Xinput.c */
---- xorg-server-debian.orig/hw/xfree86/common/xf86Xinput.h
-+++ xorg-server-debian/hw/xfree86/common/xf86Xinput.h
-@@ -212,6 +212,8 @@
- extern _X_EXPORT void xf86CollectInputOptions(InputInfoPtr pInfo, const char **defaultOpts,
- 			     pointer extraOpts);
+--- a/hw/xfree86/common/xf86Xinput.h
++++ b/hw/xfree86/common/xf86Xinput.h
+@@ -179,4 +179,6 @@ extern _X_EXPORT void xf86VIDrvMsgVerb(I
+ /* xf86Option.c */
+ extern _X_EXPORT void xf86CollectInputOptions(InputInfoPtr pInfo, const char **defaultOpts);
  
 +extern _X_EXPORT WindowPtr xf86CoordinatesToWindow(int x, int y, int screen);
 +
- 
- /* Legacy hatred */
- #define SendCoreEvents 59
---- xorg-server-debian.orig/include/events.h
-+++ xorg-server-debian/include/events.h
+ #endif /* _xf86Xinput_h */
+--- a/include/events.h
++++ b/include/events.h
 @@ -24,6 +24,7 @@
  
  #ifndef EVENTS_H
@@ -94,7 +92,7 @@ Subject: [PATCH 1/5] Add XFixesCoordinatesToWindow request
  typedef struct _DeviceEvent DeviceEvent;
  typedef struct _DeviceChangedEvent DeviceChangedEvent;
  #if XFreeXDGA
-@@ -35,4 +36,6 @@
+@@ -35,4 +36,6 @@ typedef struct _XQuartzEvent XQuartzEven
  #endif
  typedef union _InternalEvent InternalEvent;
  
diff --git a/debian/patches/series b/debian/patches/series
index 5ed8b4b..4f34452 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -25,7 +25,7 @@
 198_nohwaccess.patch
 200_randr-null.patch
 #201_report-real-dpi.patch
-#202_xf86CoordinationsToWindows.patch
+202_xf86CoordinationsToWindows.patch
 #203_gestures-extension.patch
 206_intel_8xx_default_to_fbdev.patch
 209_add_legacy_bgnone_option.patch


Reply to: