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.doug...@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.doug...@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.doug...@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.doug...@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.doug...@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 -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1pjmtd-0000o6...@alioth.debian.org