mirror of
https://git.yoctoproject.org/poky
synced 2026-05-07 16:59:22 +00:00
xserver-kdrive: add patch upstream status info
- add patch upstream status - also remove the obsolete xserver-kdrive-1.3.0.0 patches (From OE-Core rev: 1ec48876d36a415fcd5816c1e4de17f8794b367b) Signed-off-by: Yu Ke <ke.yu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -1,12 +0,0 @@
|
||||
--- xorg-server-X11R7.1-1.1.0/dix/dixfonts.c.orig 2006-06-08 14:49:12.158684250 +0200
|
||||
+++ xorg-server-X11R7.1-1.1.0/dix/dixfonts.c 2006-06-08 14:49:52.493205000 +0200
|
||||
@@ -52,8 +52,8 @@
|
||||
/* $Xorg: dixfonts.c,v 1.4 2000/08/17 19:48:18 cpqbld Exp $ */
|
||||
|
||||
#define NEED_REPLIES
|
||||
#ifdef HAVE_DIX_CONFIG_H
|
||||
-#include <dix-config.h>
|
||||
+#include <kdrive-config.h>
|
||||
#endif
|
||||
|
||||
#include <X11/X.h>
|
||||
@@ -1,11 +0,0 @@
|
||||
Index: xorg-server-1.2.0/hw/kdrive/Makefile.am
|
||||
===================================================================
|
||||
--- xorg-server-1.2.0.orig/hw/kdrive/Makefile.am 2007-03-28 17:11:38.000000000 +0200
|
||||
+++ xorg-server-1.2.0/hw/kdrive/Makefile.am 2007-03-28 17:12:28.000000000 +0200
|
||||
@@ -1,5 +1,5 @@
|
||||
if KDRIVEFBDEV
|
||||
-FBDEV_SUBDIRS = fbdev
|
||||
+FBDEV_SUBDIRS = fbdev epson
|
||||
endif
|
||||
|
||||
if KDRIVEIMAGEON
|
||||
@@ -1,12 +0,0 @@
|
||||
Index: xorg-server-1.2.0/configure.ac
|
||||
===================================================================
|
||||
--- xorg-server-1.2.0.orig/configure.ac 2007-03-29 13:28:10.000000000 +0200
|
||||
+++ xorg-server-1.2.0/configure.ac 2007-03-29 13:28:35.000000000 +0200
|
||||
@@ -1517,6 +1517,7 @@
|
||||
AC_MSG_ERROR([tslib must be installed to build the tslib driver. See http://tslib.berlios.de/])
|
||||
fi
|
||||
AC_DEFINE(TSLIB, 1, [Have tslib support])
|
||||
+ AC_DEFINE(TOUCHSCREEN, 1, [Have touchscreen support])
|
||||
fi
|
||||
|
||||
# damage shadow extension glx (NOTYET) fb mi
|
||||
@@ -1,110 +0,0 @@
|
||||
---
|
||||
Xext/Makefile.am | 6 ++++++
|
||||
configure.ac | 11 +++++++++--
|
||||
include/kdrive-config.h.in | 3 +++
|
||||
mi/miinitext.c | 6 ++++++
|
||||
4 files changed, 24 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: xorg-server-1.3.0.0/mi/miinitext.c
|
||||
===================================================================
|
||||
--- xorg-server-1.3.0.0.orig/mi/miinitext.c 2006-11-16 18:01:26.000000000 +0000
|
||||
+++ xorg-server-1.3.0.0/mi/miinitext.c 2008-01-11 13:45:57.000000000 +0000
|
||||
@@ -372,6 +372,9 @@ extern void ResExtensionInit(INITARGS);
|
||||
#ifdef DMXEXT
|
||||
extern void DMXExtensionInit(INITARGS);
|
||||
#endif
|
||||
+#ifdef XCALIBRATE
|
||||
+extern void XCalibrateExtensionInit(INITARGS);
|
||||
+#endif
|
||||
#ifdef XEVIE
|
||||
extern void XevieExtensionInit(INITARGS);
|
||||
#endif
|
||||
@@ -663,6 +666,9 @@ InitExtensions(argc, argv)
|
||||
#ifdef DAMAGE
|
||||
if (!noDamageExtension) DamageExtensionInit();
|
||||
#endif
|
||||
+#ifdef XCALIBRATE
|
||||
+ XCalibrateExtensionInit ();
|
||||
+#endif
|
||||
}
|
||||
|
||||
void
|
||||
Index: xorg-server-1.3.0.0/configure.ac
|
||||
===================================================================
|
||||
--- xorg-server-1.3.0.0.orig/configure.ac 2008-01-11 13:45:57.000000000 +0000
|
||||
+++ xorg-server-1.3.0.0/configure.ac 2008-01-11 13:45:58.000000000 +0000
|
||||
@@ -421,6 +421,7 @@ AC_ARG_ENABLE(xf86vidmode, AS_HELP_ST
|
||||
AC_ARG_ENABLE(xf86misc, AS_HELP_STRING([--disable-xf86misc], [Build XF86Misc extension (default: enabled)]), [XF86MISC=$enableval], [XF86MISC=yes])
|
||||
AC_ARG_ENABLE(xace, AS_HELP_STRING([--disable-xace], [Build X-ACE extension (default: enabled)]), [XACE=$enableval], [XACE=yes])
|
||||
AC_ARG_ENABLE(xcsecurity, AS_HELP_STRING([--disable-xcsecurity], [Build Security extension (default: enabled)]), [XCSECURITY=$enableval], [XCSECURITY=$XACE])
|
||||
+AC_ARG_ENABLE(xcalibrate, AS_HELP_STRING([--enable-xcalibrate], [Build XCalibrate extension (default: disabled)]), [XCALIBRATE=$enableval], [XCALIBRATE=no])
|
||||
AC_ARG_ENABLE(appgroup, AS_HELP_STRING([--disable-appgroup], [Build XC-APPGROUP extension (default: enabled)]), [APPGROUP=$enableval], [APPGROUP=$XCSECURITY])
|
||||
AC_ARG_ENABLE(xcalibrate, AS_HELP_STRING([--enable-xcalibrate], [Build XCalibrate extension (default: disabled)]), [XCALIBRATE=$enableval], [XCALIBRATE=no])
|
||||
AC_ARG_ENABLE(tslib, AS_HELP_STRING([--enable-tslib], [Build kdrive tslib touchscreen support (default: disabled)]), [TSLIB=$enableval], [TSLIB=no])
|
||||
@@ -653,6 +654,12 @@ if test "x$XCSECURITY" = xyes; then
|
||||
AC_DEFINE(XCSECURITY, 1, [Build Security extension])
|
||||
fi
|
||||
|
||||
+AM_CONDITIONAL(XCALIBRATE, [test "x$XCALIBRATE" = xyes])
|
||||
+if test "x$XCALIBRATE" = xyes; then
|
||||
+ AC_DEFINE(XCALIBRATE, 1, [Build XCalibrate extension])
|
||||
+ REQUIRED_MODULES="$REQUIRED_MODULES xcalibrateproto"
|
||||
+fi
|
||||
+
|
||||
AM_CONDITIONAL(XEVIE, [test "x$XEVIE" = xyes])
|
||||
if test "x$XEVIE" = xyes; then
|
||||
AC_DEFINE(XEVIE, 1, [Build XEvIE extension])
|
||||
@@ -1519,7 +1526,7 @@ if test "$KDRIVE" = yes; then
|
||||
|
||||
# tslib...
|
||||
if test "x$TSLIB" = xyes; then
|
||||
- PKG_CHECK_MODULES([TSLIB], [tslib-0.0], [HAVE_TSLIB="yes"], [HAVE_TSLIB="no"])
|
||||
+ PKG_CHECK_MODULES([TSLIB], [tslib-1.0], [HAVE_TSLIB="yes"], [HAVE_TSLIB="no"])
|
||||
if test "x$HAVE_TSLIB" = xno; then
|
||||
AC_MSG_ERROR([tslib must be installed to build the tslib driver. See http://tslib.berlios.de/])
|
||||
fi
|
||||
@@ -1547,7 +1554,7 @@ if test "$KDRIVE" = yes; then
|
||||
;;
|
||||
esac
|
||||
KDRIVE_STUB_LIB='$(top_builddir)/hw/kdrive/src/libkdrivestubs.a'
|
||||
- KDRIVE_LIBS="$DIX_LIB $KDRIVE_LIB $KDRIVE_OS_LIB $KDRIVE_PURE_LIBS $KDRIVE_STUB_LIB $TSLIB_LIBS"
|
||||
+ KDRIVE_LIBS="$DIX_LIB $KDRIVE_LIB $KDRIVE_PURE_LIBS $KDRIVE_OS_LIB $KDRIVE_STUB_LIB $TSLIB_LIBS"
|
||||
|
||||
# check if we can build Xephyr
|
||||
PKG_CHECK_MODULES(XEPHYR, x11 xext xfont xau xdmcp, [xephyr="yes"], [xephyr="no"])
|
||||
Index: xorg-server-1.3.0.0/include/kdrive-config.h.in
|
||||
===================================================================
|
||||
--- xorg-server-1.3.0.0.orig/include/kdrive-config.h.in 2006-11-16 18:01:26.000000000 +0000
|
||||
+++ xorg-server-1.3.0.0/include/kdrive-config.h.in 2008-01-11 13:45:57.000000000 +0000
|
||||
@@ -25,4 +25,7 @@
|
||||
/* Verbose debugging output hilarity */
|
||||
#undef DEBUG
|
||||
|
||||
+/* Enable XCalibrate extension */
|
||||
+#undef XCALIBRATE
|
||||
+
|
||||
#endif /* _KDRIVE_CONFIG_H_ */
|
||||
Index: xorg-server-1.3.0.0/Xext/Makefile.am
|
||||
===================================================================
|
||||
--- xorg-server-1.3.0.0.orig/Xext/Makefile.am 2006-10-25 01:25:19.000000000 +0100
|
||||
+++ xorg-server-1.3.0.0/Xext/Makefile.am 2008-01-11 13:45:57.000000000 +0000
|
||||
@@ -91,6 +91,11 @@ BUILTIN_SRCS += $(XCALIBRATE_SRCS)
|
||||
# XCalibrare needs tslib
|
||||
endif
|
||||
|
||||
+XCALIBRATE_SRCS = xcalibrate.c
|
||||
+if XCALIBRATE
|
||||
+BUILTIN_SRCS += $(XCALIBRATE_SRCS)
|
||||
+endif
|
||||
+
|
||||
# X EVent Interception Extension: allows accessibility helpers & composite
|
||||
# managers to intercept events from input devices and transform as needed
|
||||
# before the clients see them.
|
||||
@@ -169,6 +174,7 @@ EXTRA_DIST = \
|
||||
$(XCSECURITY_SRCS) \
|
||||
$(XCALIBRATE_SRCS) \
|
||||
$(XINERAMA_SRCS) \
|
||||
+ $(XCALIBRATE_SRCS) \
|
||||
$(XEVIE_SRCS) \
|
||||
$(XPRINT_SRCS) \
|
||||
$(APPGROUP_SRCS) \
|
||||
@@ -1,41 +0,0 @@
|
||||
---
|
||||
hw/kdrive/fbdev/fbdev.c | 24 ++++++++++++++++--------
|
||||
1 file changed, 16 insertions(+), 8 deletions(-)
|
||||
|
||||
Index: xorg-server-1.3.0.0/hw/kdrive/fbdev/fbdev.c
|
||||
===================================================================
|
||||
--- xorg-server-1.3.0.0.orig/hw/kdrive/fbdev/fbdev.c 2008-01-11 14:40:16.000000000 +0000
|
||||
+++ xorg-server-1.3.0.0/hw/kdrive/fbdev/fbdev.c 2008-01-11 14:40:59.000000000 +0000
|
||||
@@ -182,16 +182,24 @@ fbdevScreenInitialize (KdScreenInfo *scr
|
||||
screen->rate = 103; /* FIXME: should get proper value from fb driver */
|
||||
}
|
||||
if (!screen->fb[0].depth)
|
||||
- screen->fb[0].depth = 16;
|
||||
+ {
|
||||
+ if (k >= 0)
|
||||
+ screen->fb[0].depth = var.bits_per_pixel;
|
||||
+ else
|
||||
+ screen->fb[0].depth = 16;
|
||||
+ }
|
||||
|
||||
- t = KdFindMode (screen, fbdevModeSupported);
|
||||
- screen->rate = t->rate;
|
||||
- screen->width = t->horizontal;
|
||||
- screen->height = t->vertical;
|
||||
+ if ((screen->width != var.xres) || (screen->height != var.yres))
|
||||
+ {
|
||||
+ t = KdFindMode (screen, fbdevModeSupported);
|
||||
+ screen->rate = t->rate;
|
||||
+ screen->width = t->horizontal;
|
||||
+ screen->height = t->vertical;
|
||||
|
||||
- /* Now try setting the mode */
|
||||
- if (k < 0 || (t->horizontal != var.xres || t->vertical != var.yres))
|
||||
- fbdevConvertMonitorTiming (t, &var);
|
||||
+ /* Now try setting the mode */
|
||||
+ if (k < 0 || (t->horizontal != var.xres || t->vertical != var.yres))
|
||||
+ fbdevConvertMonitorTiming (t, &var);
|
||||
+ }
|
||||
|
||||
var.activate = FB_ACTIVATE_NOW;
|
||||
var.bits_per_pixel = screen->fb[0].depth;
|
||||
-18
@@ -1,18 +0,0 @@
|
||||
---
|
||||
render/glyphstr.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- xorg-server-1.3.0.0.orig/render/glyphstr.h
|
||||
+++ xorg-server-1.3.0.0/render/glyphstr.h
|
||||
@@ -23,10 +23,11 @@
|
||||
*/
|
||||
|
||||
#ifndef _GLYPHSTR_H_
|
||||
#define _GLYPHSTR_H_
|
||||
|
||||
+#include <X11/X.h>
|
||||
#include <X11/extensions/renderproto.h>
|
||||
#include "picture.h"
|
||||
#include "screenint.h"
|
||||
#include "regionstr.h"
|
||||
#include "miscstruct.h"
|
||||
-307
@@ -1,307 +0,0 @@
|
||||
diff -u -r xorg-server-X11R7.1-1.1.0.orig/dix/window.c xorg-server-X11R7.1-1.1.0/dix/window.c
|
||||
--- xorg-server-X11R7.1-1.1.0.orig/dix/window.c 2007-01-08 14:30:38.000000000 +0000
|
||||
+++ xorg-server-X11R7.1-1.1.0/dix/window.c 2007-01-16 17:16:19.000000000 +0000
|
||||
@@ -185,6 +185,8 @@
|
||||
_X_EXPORT int numSaveUndersViewable = 0;
|
||||
_X_EXPORT int deltaSaveUndersViewable = 0;
|
||||
|
||||
+char* RootPPM = NULL;
|
||||
+
|
||||
#ifdef DEBUG
|
||||
/******
|
||||
* PrintWindowTree
|
||||
@@ -311,6 +313,115 @@
|
||||
#endif
|
||||
}
|
||||
|
||||
+static int
|
||||
+get_int(FILE *fp)
|
||||
+{
|
||||
+ int c = 0;
|
||||
+
|
||||
+ while ((c = getc(fp)) != EOF)
|
||||
+ {
|
||||
+ if (isspace(c))
|
||||
+ continue;
|
||||
+
|
||||
+ if (c == '#')
|
||||
+ while (c = getc(fp))
|
||||
+ if (c == EOF)
|
||||
+ return 0;
|
||||
+ else if (c == '\n')
|
||||
+ break;
|
||||
+
|
||||
+ if (isdigit(c))
|
||||
+ {
|
||||
+ int val = c - '0';
|
||||
+ while ((c = getc(fp)) && isdigit(c))
|
||||
+ val = (val * 10) + (c - '0');
|
||||
+ return val;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static unsigned char*
|
||||
+ppm_load (const char* path, int depth, int *width, int *height)
|
||||
+{
|
||||
+ FILE *fp;
|
||||
+ int max, n = 0, w, h, i, j, bytes_per_line;
|
||||
+ unsigned char *data, *res, h1, h2;
|
||||
+
|
||||
+ if (depth < 16 || depth > 32)
|
||||
+ return NULL;
|
||||
+
|
||||
+ if (depth > 16)
|
||||
+ depth = 32;
|
||||
+
|
||||
+ fp = fopen (path, "r");
|
||||
+ if (fp == NULL)
|
||||
+ return FALSE;
|
||||
+
|
||||
+ h1 = getc(fp);
|
||||
+ h2 = getc(fp);
|
||||
+
|
||||
+ /* magic is 'P6' for raw ppm */
|
||||
+ if (h1 != 'P' && h2 != '6')
|
||||
+ goto fail;
|
||||
+
|
||||
+ w = get_int(fp);
|
||||
+ h = get_int(fp);
|
||||
+
|
||||
+ if (w == 0 || h == 0)
|
||||
+ goto fail;
|
||||
+
|
||||
+ max = get_int(fp);
|
||||
+
|
||||
+ if (max != 255)
|
||||
+ goto fail;
|
||||
+
|
||||
+ bytes_per_line = ((w * depth + 31) >> 5) << 2;
|
||||
+
|
||||
+ res = data = malloc(bytes_per_line * h);
|
||||
+
|
||||
+ for (i=0; i<h; i++)
|
||||
+ {
|
||||
+ for (j=0; j<w; j++)
|
||||
+ {
|
||||
+ unsigned char buf[3];
|
||||
+ fread(buf, 1, 3, fp);
|
||||
+
|
||||
+ switch (depth)
|
||||
+ {
|
||||
+ case 24:
|
||||
+ case 32:
|
||||
+ *data = buf[2];
|
||||
+ *(data+1) = buf[1];
|
||||
+ *(data+2) = buf[0];
|
||||
+ data += 4;
|
||||
+ break;
|
||||
+ case 16:
|
||||
+ default:
|
||||
+ *(unsigned short*)data
|
||||
+ = ((buf[0] >> 3) << 11) | ((buf[1] >> 2) << 5) | (buf[2] >> 3);
|
||||
+ data += 2;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ data += (bytes_per_line - (w*(depth>>3)));
|
||||
+ }
|
||||
+
|
||||
+ data = res;
|
||||
+
|
||||
+ *width = w;
|
||||
+ *height = h;
|
||||
+
|
||||
+ fclose(fp);
|
||||
+
|
||||
+ return res;
|
||||
+
|
||||
+ fail:
|
||||
+ fclose(fp);
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
static void
|
||||
MakeRootTile(WindowPtr pWin)
|
||||
{
|
||||
@@ -321,6 +432,36 @@
|
||||
register unsigned char *from, *to;
|
||||
register int i, j;
|
||||
|
||||
+ if (RootPPM != NULL)
|
||||
+ {
|
||||
+ int w, h;
|
||||
+ unsigned char *data;
|
||||
+
|
||||
+ if ((data = ppm_load (RootPPM, pScreen->rootDepth, &w, &h)) != NULL)
|
||||
+ {
|
||||
+ pWin->background.pixmap
|
||||
+ = (*pScreen->CreatePixmap)(pScreen, w, h, pScreen->rootDepth);
|
||||
+
|
||||
+ pWin->backgroundState = BackgroundPixmap;
|
||||
+ pGC = GetScratchGC(pScreen->rootDepth, pScreen);
|
||||
+ if (!pWin->background.pixmap || !pGC)
|
||||
+ FatalError("could not create root tile");
|
||||
+
|
||||
+ ValidateGC((DrawablePtr)pWin->background.pixmap, pGC);
|
||||
+
|
||||
+ (*pGC->ops->PutImage)((DrawablePtr)pWin->background.pixmap,
|
||||
+ pGC,
|
||||
+ pScreen->rootDepth,
|
||||
+ 0, 0, w, h, 0, ZPixmap, (char *)data);
|
||||
+ FreeScratchGC(pGC);
|
||||
+
|
||||
+ free(data);
|
||||
+ return;
|
||||
+ }
|
||||
+ else
|
||||
+ ErrorF("Unable to load root window image.");
|
||||
+ }
|
||||
+
|
||||
pWin->background.pixmap = (*pScreen->CreatePixmap)(pScreen, 4, 4,
|
||||
pScreen->rootDepth);
|
||||
|
||||
@@ -357,6 +498,7 @@
|
||||
|
||||
}
|
||||
|
||||
+
|
||||
WindowPtr
|
||||
AllocateWindow(ScreenPtr pScreen)
|
||||
{
|
||||
diff -u -r xorg-server-X11R7.1-1.1.0.orig/hw/kdrive/src/kdrive.c xorg-server-X11R7.1-1.1.0/hw/kdrive/src/kdrive.c
|
||||
--- xorg-server-X11R7.1-1.1.0.orig/hw/kdrive/src/kdrive.c 2007-01-08 14:30:38.000000000 +0000
|
||||
+++ xorg-server-X11R7.1-1.1.0/hw/kdrive/src/kdrive.c 2007-01-15 17:53:06.000000000 +0000
|
||||
@@ -58,6 +58,9 @@
|
||||
{ 32, 32 }
|
||||
};
|
||||
|
||||
+int
|
||||
+ProcXFixesHideCursor (ClientPtr client) ;
|
||||
+
|
||||
#define NUM_KD_DEPTHS (sizeof (kdDepths) / sizeof (kdDepths[0]))
|
||||
|
||||
int kdScreenPrivateIndex;
|
||||
@@ -84,6 +87,9 @@
|
||||
KdOsFuncs *kdOsFuncs;
|
||||
extern WindowPtr *WindowTable;
|
||||
|
||||
+extern Bool CursorInitiallyHidden; /* See Xfixes cursor.c */
|
||||
+extern char* RootPPM; /* dix/window.c */
|
||||
+
|
||||
void
|
||||
KdSetRootClip (ScreenPtr pScreen, BOOL enable)
|
||||
{
|
||||
@@ -312,6 +318,7 @@
|
||||
KdSetRootClip (pScreen, TRUE);
|
||||
if (pScreenPriv->card->cfuncs->dpms)
|
||||
(*pScreenPriv->card->cfuncs->dpms) (pScreen, pScreenPriv->dpmsState);
|
||||
+
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -686,10 +693,14 @@
|
||||
ErrorF("-mouse path[,n] Filename of mouse device, n is number of buttons\n");
|
||||
ErrorF("-switchCmd Command to execute on vt switch\n");
|
||||
ErrorF("-nozap Don't terminate server on Ctrl+Alt+Backspace\n");
|
||||
+ ErrorF("-hide-cursor Start with cursor hidden\n");
|
||||
+ ErrorF("-root-ppm [path] Specify ppm file to use as root window background.\n");
|
||||
ErrorF("vtxx Use virtual terminal xx instead of the next available\n");
|
||||
#ifdef PSEUDO8
|
||||
p8UseMsg ();
|
||||
#endif
|
||||
+
|
||||
+
|
||||
}
|
||||
|
||||
int
|
||||
@@ -761,6 +772,19 @@
|
||||
kdSoftCursor = TRUE;
|
||||
return 1;
|
||||
}
|
||||
+ if (!strcmp (argv[i], "-hide-cursor"))
|
||||
+ {
|
||||
+ CursorInitiallyHidden = TRUE;
|
||||
+ return 1;
|
||||
+ }
|
||||
+ if (!strcmp (argv[i], "-root-ppm"))
|
||||
+ {
|
||||
+ if ((i+1) < argc)
|
||||
+ RootPPM = argv[i+1];
|
||||
+ else
|
||||
+ UseMsg ();
|
||||
+ return 2;
|
||||
+ }
|
||||
if (!strcmp (argv[i], "-videoTest"))
|
||||
{
|
||||
kdVideoTest = TRUE;
|
||||
diff -u -r xorg-server-X11R7.1-1.1.0.orig/xfixes/cursor.c xorg-server-X11R7.1-1.1.0/xfixes/cursor.c
|
||||
--- xorg-server-X11R7.1-1.1.0.orig/xfixes/cursor.c 2007-01-08 14:30:38.000000000 +0000
|
||||
+++ xorg-server-X11R7.1-1.1.0/xfixes/cursor.c 2007-01-11 16:33:00.000000000 +0000
|
||||
@@ -59,9 +59,12 @@
|
||||
static RESTYPE CursorWindowType;
|
||||
static int CursorScreenPrivateIndex = -1;
|
||||
static int CursorGeneration;
|
||||
+static Bool CursorGloballyHidden;
|
||||
static CursorPtr CursorCurrent;
|
||||
static CursorPtr pInvisibleCursor = NULL;
|
||||
|
||||
+Bool CursorInitiallyHidden = FALSE;
|
||||
+
|
||||
static void deleteCursorHideCountsForScreen (ScreenPtr pScreen);
|
||||
|
||||
#define VERIFY_CURSOR(pCursor, cursor, client, access) { \
|
||||
@@ -130,7 +133,7 @@
|
||||
|
||||
Unwrap (cs, pScreen, DisplayCursor);
|
||||
|
||||
- if (cs->pCursorHideCounts != NULL) {
|
||||
+ if (cs->pCursorHideCounts != NULL || CursorGloballyHidden) {
|
||||
ret = (*pScreen->DisplayCursor) (pScreen, pInvisibleCursor);
|
||||
} else {
|
||||
ret = (*pScreen->DisplayCursor) (pScreen, pCursor);
|
||||
@@ -848,6 +851,12 @@
|
||||
return BadWindow;
|
||||
}
|
||||
|
||||
+ /* Is cursor set to be initially hidden ?, if so reset this
|
||||
+ * flag as now visibility assumed under control of client.
|
||||
+ */
|
||||
+ if (CursorGloballyHidden)
|
||||
+ CursorGloballyHidden = FALSE;
|
||||
+
|
||||
/*
|
||||
* Has client hidden the cursor before on this screen?
|
||||
* If so, just increment the count.
|
||||
@@ -899,9 +908,19 @@
|
||||
return BadWindow;
|
||||
}
|
||||
|
||||
+ /* X was started with cursor hidden, therefore just reset our flag
|
||||
+ * (returning to normal client control) and cause cursor to now be
|
||||
+ * shown.
|
||||
+ */
|
||||
+ if (CursorGloballyHidden == TRUE)
|
||||
+ {
|
||||
+ CursorGloballyHidden = FALSE;
|
||||
+ return (client->noClientException);
|
||||
+ }
|
||||
+
|
||||
/*
|
||||
* Has client hidden the cursor on this screen?
|
||||
- * If not, generate an error.
|
||||
+ * If so, generate an error.
|
||||
*/
|
||||
pChc = findCursorHideCount(client, pWin->drawable.pScreen);
|
||||
if (pChc == NULL) {
|
||||
@@ -1009,6 +1028,8 @@
|
||||
XFixesCursorInit (void)
|
||||
{
|
||||
int i;
|
||||
+
|
||||
+ CursorGloballyHidden = CursorInitiallyHidden;
|
||||
|
||||
if (CursorGeneration != serverGeneration)
|
||||
{
|
||||
@@ -1,515 +0,0 @@
|
||||
# Kdrive evdev support patch, posted by Ander Conselvan de Oliveira at
|
||||
# http://lists.freedesktop.org/archives/xorg/2005-December/011635.html
|
||||
diff -u -r --exclude=CVS --exclude=Makefile --exclude='*.o' --exclude=ephyr --exclude='*.Po' xserver.original/hw/kdrive/linux/evdev.c xserver/hw/kdrive/linux/evdev.c
|
||||
--- xserver.original/hw/kdrive/linux/evdev.c 2005-12-16 10:36:05.000000000 -0200
|
||||
+++ xserver/hw/kdrive/linux/evdev.c 2005-12-16 10:40:51.077410192 -0200
|
||||
@@ -31,9 +31,11 @@
|
||||
#include <X11/X.h>
|
||||
#include <X11/Xproto.h>
|
||||
#include <X11/Xpoll.h>
|
||||
+#include <X11/keysym.h>
|
||||
#include "inputstr.h"
|
||||
#include "scrnintstr.h"
|
||||
#include "kdrive.h"
|
||||
+#include "kkeymap.h"
|
||||
|
||||
#define NUM_EVENTS 128
|
||||
#define ABS_UNSET -65535
|
||||
@@ -105,9 +107,10 @@
|
||||
{
|
||||
KdMouseInfo *mi = closure;
|
||||
Kevdev *ke = mi->driver;
|
||||
- int i;
|
||||
+ int i, j;
|
||||
struct input_event events[NUM_EVENTS];
|
||||
int n;
|
||||
+ int flags;
|
||||
|
||||
n = read (evdevPort, &events, NUM_EVENTS * sizeof (struct input_event));
|
||||
if (n <= 0)
|
||||
@@ -115,22 +118,64 @@
|
||||
n /= sizeof (struct input_event);
|
||||
for (i = 0; i < n; i++)
|
||||
{
|
||||
+ flags = KD_MOUSE_DELTA | kdMouseInfo->buttonState;
|
||||
switch (events[i].type) {
|
||||
case EV_SYN:
|
||||
break;
|
||||
case EV_KEY:
|
||||
- EvdevMotion (mi);
|
||||
- ASSIGNBIT(ke->key,events[i].code, events[i].value);
|
||||
- if (events[i].code < 0x100)
|
||||
- ErrorF ("key %d %d\n", events[i].code, events[i].value);
|
||||
- else
|
||||
- ErrorF ("key 0x%x %d\n", events[i].code, events[i].value);
|
||||
+ if (events[i].code >= BTN_MOUSE && events[i].code < BTN_JOYSTICK) {
|
||||
+ switch (events[i].code) {
|
||||
+ case BTN_LEFT:
|
||||
+ if (events[i].value == 1)
|
||||
+ flags |= KD_BUTTON_1;
|
||||
+ else
|
||||
+ flags &= ~KD_BUTTON_1;
|
||||
+ break;
|
||||
+ case BTN_MIDDLE:
|
||||
+ if (events[i].value == 1)
|
||||
+ flags |= KD_BUTTON_2;
|
||||
+ else
|
||||
+ flags &= ~KD_BUTTON_2;
|
||||
+ break;
|
||||
+ case BTN_RIGHT:
|
||||
+ if (events[i].value == 1)
|
||||
+ flags |= KD_BUTTON_3;
|
||||
+ else
|
||||
+ flags &= ~KD_BUTTON_3;
|
||||
+ break;
|
||||
+ default:
|
||||
+ /* Unknow button */
|
||||
+ break;
|
||||
+ }
|
||||
+ KdEnqueueMouseEvent (kdMouseInfo, flags, 0, 0);
|
||||
+ }
|
||||
break;
|
||||
case EV_REL:
|
||||
- ke->rel[events[i].code] += events[i].value;
|
||||
+ if (events[i].code == REL_X) {
|
||||
+ KdEnqueueMouseEvent (kdMouseInfo, flags, events[i].value, 0);
|
||||
+ }
|
||||
+ else if (events[i].code == REL_Y) {
|
||||
+ KdEnqueueMouseEvent (kdMouseInfo, flags, 0, events[i].value);
|
||||
+ }
|
||||
+ else if (events[i].code == REL_WHEEL) {
|
||||
+ for (j = 0; j < abs (events[i].value); j++) {
|
||||
+ if (events[i].value > 0)
|
||||
+ flags |= KD_BUTTON_4;
|
||||
+ else
|
||||
+ flags |= KD_BUTTON_5;
|
||||
+
|
||||
+ KdEnqueueMouseEvent (kdMouseInfo, flags, 0, 0);
|
||||
+
|
||||
+ if (events[i].value > 0)
|
||||
+ flags &= ~KD_BUTTON_4;
|
||||
+ else
|
||||
+ flags &= ~KD_BUTTON_5;
|
||||
+
|
||||
+ KdEnqueueMouseEvent (kdMouseInfo, flags, 0, 0);
|
||||
+ } /* events[i].code == REL_WHEEL */
|
||||
+ }
|
||||
break;
|
||||
case EV_ABS:
|
||||
- ke->abs[events[i].code] = events[i].value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -173,6 +218,12 @@
|
||||
fd = open (kdefaultEvdev[i], 2);
|
||||
if (fd >= 0)
|
||||
{
|
||||
+ if (ioctl (fd, EVIOCGRAB, 1) < 0)
|
||||
+ {
|
||||
+ close (fd);
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
mi->name = KdSaveString (kdefaultEvdev[i]);
|
||||
break;
|
||||
}
|
||||
@@ -287,7 +338,319 @@
|
||||
EvdevFini,
|
||||
};
|
||||
|
||||
-#if 0
|
||||
+/* Keyboard */
|
||||
+
|
||||
+int kbd_fd = -1;
|
||||
+int EvdevInputType = 0;
|
||||
+
|
||||
+KeySym evdevKeymap[(194 - 1 + 1) * 2] = {
|
||||
+/* These are directly mapped from DOS scanset 0 */
|
||||
+/* 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 */ NoSymbol, NoSymbol,
|
||||
+/* 109 116 */ NoSymbol, NoSymbol,
|
||||
+/* 110 117 */ NoSymbol, NoSymbol,
|
||||
+/* 111 118 */ NoSymbol, NoSymbol,
|
||||
+/* 112 119 */ NoSymbol, NoSymbol,
|
||||
+
|
||||
+/* 113 120 */ NoSymbol, NoSymbol,
|
||||
+/* 114 121 */ NoSymbol, NoSymbol,
|
||||
+/* 115 122 */ NoSymbol, NoSymbol,
|
||||
+/* 116 123 */ NoSymbol, NoSymbol,
|
||||
+/* 117 124 */ NoSymbol, NoSymbol,
|
||||
+/* 118 125 */ NoSymbol, NoSymbol,
|
||||
+/* 119 126 */ NoSymbol, NoSymbol,
|
||||
+/* 120 127 */ NoSymbol, NoSymbol,
|
||||
+/* 121 128 */ NoSymbol, NoSymbol,
|
||||
+/* 122 129 */ NoSymbol, NoSymbol,
|
||||
+/* 123 130 */ NoSymbol, NoSymbol,
|
||||
+/* 124 131 */ NoSymbol, NoSymbol,
|
||||
+/* 125 132 */ NoSymbol, NoSymbol,
|
||||
+/* 126 133 */ NoSymbol, NoSymbol,
|
||||
+/* 127 134 */ NoSymbol, NoSymbol,
|
||||
+/* 128 135 */ NoSymbol, NoSymbol,
|
||||
+/* 129 136 */ NoSymbol, NoSymbol,
|
||||
+/* 130 137 */ NoSymbol, NoSymbol,
|
||||
+/* 131 138 */ NoSymbol, NoSymbol,
|
||||
+/* 132 139 */ NoSymbol, NoSymbol,
|
||||
+/* 133 140 */ NoSymbol, NoSymbol,
|
||||
+/* 134 141 */ NoSymbol, NoSymbol,
|
||||
+/* 135 142 */ NoSymbol, NoSymbol,
|
||||
+/* 136 143 */ NoSymbol, NoSymbol,
|
||||
+/* 137 144 */ NoSymbol, NoSymbol,
|
||||
+/* 138 145 */ NoSymbol, NoSymbol,
|
||||
+/* 139 146 */ NoSymbol, NoSymbol,
|
||||
+/* 140 147 */ NoSymbol, NoSymbol,
|
||||
+/* 141 148 */ NoSymbol, NoSymbol,
|
||||
+/* 142 149 */ NoSymbol, NoSymbol,
|
||||
+/* 143 150 */ NoSymbol, NoSymbol,
|
||||
+/* 144 151 */ NoSymbol, NoSymbol,
|
||||
+/* 145 152 */ NoSymbol, NoSymbol,
|
||||
+/* 146 153 */ NoSymbol, NoSymbol,
|
||||
+/* 147 154 */ NoSymbol, NoSymbol,
|
||||
+/* 148 155 */ NoSymbol, NoSymbol,
|
||||
+/* 149 156 */ NoSymbol, NoSymbol,
|
||||
+/* 150 157 */ NoSymbol, NoSymbol,
|
||||
+/* 151 158 */ NoSymbol, NoSymbol,
|
||||
+/* 152 159 */ NoSymbol, NoSymbol,
|
||||
+/* 153 160 */ NoSymbol, NoSymbol,
|
||||
+/* 154 161 */ NoSymbol, NoSymbol,
|
||||
+/* 155 162 */ NoSymbol, NoSymbol,
|
||||
+/* 156 163 */ NoSymbol, NoSymbol,
|
||||
+/* 157 164 */ NoSymbol, NoSymbol,
|
||||
+/* 158 165 */ NoSymbol, NoSymbol,
|
||||
+/* 159 166 */ NoSymbol, NoSymbol,
|
||||
+/* 160 167 */ NoSymbol, NoSymbol,
|
||||
+/* 161 168 */ NoSymbol, NoSymbol,
|
||||
+/* 162 169 */ NoSymbol, NoSymbol,
|
||||
+/* 163 170 */ NoSymbol, NoSymbol,
|
||||
+/* 164 171 */ NoSymbol, NoSymbol,
|
||||
+/* 165 172 */ NoSymbol, NoSymbol,
|
||||
+/* 166 173 */ NoSymbol, NoSymbol,
|
||||
+/* 167 174 */ NoSymbol, NoSymbol,
|
||||
+/* 168 175 */ NoSymbol, NoSymbol,
|
||||
+/* 169 176 */ NoSymbol, NoSymbol,
|
||||
+/* 170 177 */ NoSymbol, NoSymbol,
|
||||
+/* 171 178 */ NoSymbol, NoSymbol,
|
||||
+/* 172 179 */ NoSymbol, NoSymbol,
|
||||
+/* 173 180 */ NoSymbol, NoSymbol,
|
||||
+/* 174 181 */ NoSymbol, NoSymbol,
|
||||
+/* 175 182 */ NoSymbol, NoSymbol,
|
||||
+/* 176 183 */ NoSymbol, NoSymbol,
|
||||
+/* 177 184 */ NoSymbol, NoSymbol,
|
||||
+/* 178 185 */ NoSymbol, NoSymbol,
|
||||
+/* 179 186 */ NoSymbol, NoSymbol,
|
||||
+/* 180 187 */ NoSymbol, NoSymbol,
|
||||
+/* 181 188 */ NoSymbol, NoSymbol,
|
||||
+/* 182 189 */ NoSymbol, NoSymbol,
|
||||
+/* 183 190 */ NoSymbol, NoSymbol,
|
||||
+/* 184 191 */ NoSymbol, NoSymbol,
|
||||
+/* 185 192 */ NoSymbol, NoSymbol,
|
||||
+/* 186 193 */ NoSymbol, NoSymbol,
|
||||
+/* 187 194 */ NoSymbol, NoSymbol,
|
||||
+/* 188 195 */ NoSymbol, NoSymbol,
|
||||
+/* 189 196 */ NoSymbol, NoSymbol,
|
||||
+/* 190 197 */ NoSymbol, NoSymbol,
|
||||
+/* 191 198 */ NoSymbol, NoSymbol,
|
||||
+/* 192 199 */ NoSymbol, NoSymbol,
|
||||
+/* 193 200 */ NoSymbol, NoSymbol,
|
||||
+/* 194 201 */ NoSymbol, NoSymbol,
|
||||
+};
|
||||
+
|
||||
+static void
|
||||
+EvdevKbdRead (int fd, void *closure)
|
||||
+{
|
||||
+ int i, n;
|
||||
+ struct input_event events[NUM_EVENTS];
|
||||
+
|
||||
+ n = read (fd, &events, NUM_EVENTS * sizeof (struct input_event));
|
||||
+ if (n <= 0)
|
||||
+ return;
|
||||
+
|
||||
+ n /= sizeof (struct input_event);
|
||||
+
|
||||
+ for (i = 0; i < n; i++)
|
||||
+ {
|
||||
+ if (events[i].type == EV_KEY)
|
||||
+ KdEnqueueKeyboardEvent (events[i].code, !events[i].value);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+EvdevKbdLoad (void)
|
||||
+{
|
||||
+ kdMinScanCode = 0;
|
||||
+ kdMaxScanCode = 193;
|
||||
+ kdKeymapWidth = 2;
|
||||
+ memcpy (kdKeymap, evdevKeymap, sizeof (evdevKeymap));
|
||||
+}
|
||||
+
|
||||
+static int
|
||||
+EvdevKbdInit (void)
|
||||
+{
|
||||
+ int fd, i;
|
||||
+
|
||||
+ if (!EvdevInputType)
|
||||
+ EvdevInputType = KdAllocInputType ();
|
||||
+
|
||||
+ if (!kdKeyboard)
|
||||
+ {
|
||||
+ for (i = 0; i < NUM_DEFAULT_EVDEV; i++)
|
||||
+ {
|
||||
+ fd = open (kdefaultEvdev[i], 2);
|
||||
+ if (fd >= 0)
|
||||
+ {
|
||||
+ kdKeyboard = KdSaveString (kdefaultEvdev[i]);
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ fd = open (kdKeyboard, O_RDWR);
|
||||
+ if (fd < 0)
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ if (ioctl (fd, EVIOCGRAB, 1) < 0)
|
||||
+ {
|
||||
+ close (fd);
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ if (!KdRegisterFd (EvdevInputType, fd, EvdevKbdRead, NULL))
|
||||
+ return FALSE;
|
||||
+
|
||||
+ kbd_fd = fd;
|
||||
+ return TRUE;
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+EvdevKbdFini (void)
|
||||
+{
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+EvdevKbdLeds (int leds)
|
||||
+{
|
||||
+ struct input_event event;
|
||||
+
|
||||
+ memset(&event, 0, sizeof(event));
|
||||
+
|
||||
+ event.type = EV_LED;
|
||||
+ event.code = LED_CAPSL;
|
||||
+ event.value = leds & (1 << 0) ? 1 : 0;
|
||||
+ write(kbd_fd, (char *) &event, sizeof(event));
|
||||
+
|
||||
+ event.type = EV_LED;
|
||||
+ event.code = LED_NUML;
|
||||
+ event.value = leds & (1 << 1) ? 1 : 0;
|
||||
+ write(kbd_fd, (char *) &event, sizeof(event));
|
||||
+
|
||||
+ event.type = EV_LED;
|
||||
+ event.code = LED_SCROLLL;
|
||||
+ event.value = leds & (1 << 2) ? 1 : 0;
|
||||
+ write(kbd_fd, (char *) &event, sizeof(event));
|
||||
+
|
||||
+ event.type = EV_LED;
|
||||
+ event.code = LED_COMPOSE;
|
||||
+ event.value = leds & (1 << 3) ? 1 : 0;
|
||||
+ write(kbd_fd, (char *) &event, sizeof(event));
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+EvdevKbdBell (int volume, int frequency, int duration)
|
||||
+{
|
||||
+}
|
||||
+
|
||||
KdKeyboardFuncs LinuxEvdevKeyboardFuncs = {
|
||||
EvdevKbdLoad,
|
||||
EvdevKbdInit,
|
||||
@@ -296,4 +659,4 @@
|
||||
EvdevKbdFini,
|
||||
0,
|
||||
};
|
||||
-#endif
|
||||
+
|
||||
diff -u -r --exclude=CVS --exclude=Makefile --exclude='*.o' --exclude=ephyr --exclude='*.Po' xserver.original/hw/kdrive/src/kdrive.c xserver/hw/kdrive/src/kdrive.c
|
||||
--- xserver.original/hw/kdrive/src/kdrive.c 2005-12-16 10:36:07.000000000 -0200
|
||||
+++ xserver/hw/kdrive/src/kdrive.c 2005-12-16 10:37:09.000000000 -0200
|
||||
@@ -73,6 +73,7 @@
|
||||
Bool kdEnabled;
|
||||
int kdSubpixelOrder;
|
||||
int kdVirtualTerminal = -1;
|
||||
+char *kdKeyboard = 0;
|
||||
Bool kdSwitchPending;
|
||||
char *kdSwitchCmd;
|
||||
DDXPointRec kdOrigin;
|
||||
@@ -795,6 +796,14 @@
|
||||
UseMsg ();
|
||||
return 2;
|
||||
}
|
||||
+ if (!strcmp (argv[i], "-keyboard"))
|
||||
+ {
|
||||
+ if ((i+1) < argc)
|
||||
+ kdKeyboard = argv[i+1];
|
||||
+ else
|
||||
+ UseMsg ();
|
||||
+ return 2;
|
||||
+ }
|
||||
if (!strcmp (argv[i], "-rgba"))
|
||||
{
|
||||
if ((i+1) < argc)
|
||||
diff -u -r --exclude=CVS --exclude=Makefile --exclude='*.o' --exclude=ephyr --exclude='*.Po' xserver.original/hw/kdrive/src/kdrive.h xserver/hw/kdrive/src/kdrive.h
|
||||
--- xserver.original/hw/kdrive/src/kdrive.h 2005-12-16 10:36:07.000000000 -0200
|
||||
+++ xserver/hw/kdrive/src/kdrive.h 2005-12-16 10:37:09.000000000 -0200
|
||||
@@ -416,6 +416,7 @@
|
||||
extern Bool kdDisableZaphod;
|
||||
extern Bool kdDontZap;
|
||||
extern int kdVirtualTerminal;
|
||||
+extern char *kdKeyboard;
|
||||
extern char *kdSwitchCmd;
|
||||
extern KdOsFuncs *kdOsFuncs;
|
||||
|
||||
@@ -769,7 +770,7 @@
|
||||
ProcessInputEvents (void);
|
||||
|
||||
extern KdMouseFuncs LinuxMouseFuncs;
|
||||
-extern KdMouseFuncs LinuxEvdevFuncs;
|
||||
+extern KdMouseFuncs LinuxEvdevMouseFuncs;
|
||||
extern KdMouseFuncs Ps2MouseFuncs;
|
||||
extern KdMouseFuncs BusMouseFuncs;
|
||||
extern KdMouseFuncs MsMouseFuncs;
|
||||
@@ -777,6 +778,7 @@
|
||||
extern KdMouseFuncs TsFuncs;
|
||||
#endif
|
||||
extern KdKeyboardFuncs LinuxKeyboardFuncs;
|
||||
+extern KdKeyboardFuncs LinuxEvdevKeyboardFuncs;
|
||||
extern KdOsFuncs LinuxFuncs;
|
||||
|
||||
extern KdMouseFuncs VxWorksMouseFuncs;
|
||||
diff -u -r --exclude=CVS --exclude=Makefile --exclude='*.o' --exclude=ephyr --exclude='*.Po' xserver.original/hw/kdrive/src/kinput.c xserver/hw/kdrive/src/kinput.c
|
||||
--- xserver.original/hw/kdrive/src/kinput.c 2005-12-16 10:36:07.000000000 -0200
|
||||
+++ xserver/hw/kdrive/src/kinput.c 2005-12-16 10:37:09.000000000 -0200
|
||||
@@ -1300,6 +1300,7 @@
|
||||
xE.u.u.type = KeyPress;
|
||||
xE.u.u.detail = key_code;
|
||||
|
||||
+#ifndef XKB
|
||||
switch (KEYCOL1(key_code))
|
||||
{
|
||||
case XK_Num_Lock:
|
||||
@@ -1313,6 +1314,7 @@
|
||||
else
|
||||
xE.u.u.type = KeyPress;
|
||||
}
|
||||
+#endif
|
||||
|
||||
/*
|
||||
* Check pressed keys which are already down
|
||||
@@ -1,54 +0,0 @@
|
||||
--- xserver/hw/kdrive/fbdev/fbinit.c~ 2006-01-31 17:09:33.000000000 +0100
|
||||
+++ xserver/hw/kdrive/fbdev/fbinit.c 2006-01-31 17:11:55.000000000 +0100
|
||||
@@ -28,6 +28,8 @@
|
||||
#endif
|
||||
#include <fbdev.h>
|
||||
|
||||
+extern int use_evdev;
|
||||
+
|
||||
void
|
||||
InitCard (char *name)
|
||||
{
|
||||
@@ -45,7 +47,10 @@
|
||||
void
|
||||
InitInput (int argc, char **argv)
|
||||
{
|
||||
- KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs);
|
||||
+ if (use_evdev)
|
||||
+ KdInitInput (&LinuxEvdevMouseFuncs, &LinuxEvdevKeyboardFuncs);
|
||||
+ else
|
||||
+ KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs);
|
||||
#ifdef TOUCHSCREEN
|
||||
KdAddMouseDriver (&TsFuncs);
|
||||
#endif
|
||||
--- xserver/hw/kdrive/src/kdrive.c.orig 2006-01-31 17:13:28.000000000 +0100
|
||||
+++ xserver/hw/kdrive/src/kdrive.c 2006-01-31 17:15:28.000000000 +0100
|
||||
@@ -44,6 +44,8 @@
|
||||
#include "dpmsproc.h"
|
||||
#endif
|
||||
|
||||
+int use_evdev = 0;
|
||||
+
|
||||
typedef struct _kdDepths {
|
||||
CARD8 depth;
|
||||
CARD8 bpp;
|
||||
@@ -687,6 +689,7 @@
|
||||
ErrorF("-videoTest Start the server, pause momentarily and exit\n");
|
||||
ErrorF("-origin X,Y Locates the next screen in the the virtual screen (Xinerama)\n");
|
||||
ErrorF("-mouse path[,n] Filename of mouse device, n is number of buttons\n");
|
||||
+ ErrorF("-use-evdev Use Linux evdev input\n");
|
||||
ErrorF("-switchCmd Command to execute on vt switch\n");
|
||||
ErrorF("-nozap Don't terminate server on Ctrl+Alt+Backspace\n");
|
||||
ErrorF("vtxx Use virtual terminal xx instead of the next available\n");
|
||||
@@ -796,6 +799,11 @@
|
||||
UseMsg ();
|
||||
return 2;
|
||||
}
|
||||
+ if (!strcmp (argv[i], "-use-evdev"))
|
||||
+ {
|
||||
+ use_evdev = 1;
|
||||
+ return 1;
|
||||
+ }
|
||||
if (!strcmp (argv[i], "-keyboard"))
|
||||
{
|
||||
if ((i+1) < argc)
|
||||
@@ -1,58 +0,0 @@
|
||||
Index: xorg-server-1.2.0/Makefile.am
|
||||
===================================================================
|
||||
--- xorg-server-1.2.0.orig/Makefile.am 2007-01-23 06:39:15.000000000 +0100
|
||||
+++ xorg-server-1.2.0/Makefile.am 2007-03-28 20:26:19.000000000 +0200
|
||||
@@ -30,6 +30,10 @@
|
||||
XINPUT_DIR=Xi
|
||||
endif
|
||||
|
||||
+if XKB
|
||||
+XKB_DIR=xkb
|
||||
+endif
|
||||
+
|
||||
if DBE
|
||||
DBE_DIR=dbe
|
||||
endif
|
||||
@@ -46,7 +50,7 @@
|
||||
randr \
|
||||
render \
|
||||
$(XINPUT_DIR) \
|
||||
- xkb \
|
||||
+ $(XKB_DIR) \
|
||||
$(DBE_DIR) \
|
||||
$(MFB_DIR) \
|
||||
$(AFB_DIR) \
|
||||
Index: xorg-server-1.2.0/configure.ac
|
||||
===================================================================
|
||||
--- xorg-server-1.2.0.orig/configure.ac 2007-01-23 06:39:15.000000000 +0100
|
||||
+++ xorg-server-1.2.0/configure.ac 2007-03-28 20:27:13.000000000 +0200
|
||||
@@ -428,6 +428,7 @@
|
||||
AC_ARG_ENABLE(dpms, AS_HELP_STRING([--disable-dpms], [Build DPMS extension (default: enabled)]), [DPMSExtension=$enableval], [DPMSExtension=yes])
|
||||
AC_ARG_ENABLE(xinput, AS_HELP_STRING([--disable-xinput], [Build XInput Extension (default: enabled)]), [XINPUT=$enableval], [XINPUT=yes])
|
||||
AC_ARG_ENABLE(xfree86-utils, AS_HELP_STRING([--enable-xfree86-utils], [Build xfree86 DDX utilities (default: enabled)]), [XF86UTILS=$enableval], [XF86UTILS=yes])
|
||||
+AC_ARG_ENABLE(xkb, AS_HELP_STRING([--disable-xkb], [Build XKB (default: enabled)]), [XKB=$enableval], [XKB=yes])
|
||||
|
||||
dnl DDXes.
|
||||
AC_ARG_ENABLE(xorg, AS_HELP_STRING([--enable-xorg], [Build Xorg server (default: auto)]), [XORG=$enableval], [XORG=auto])
|
||||
@@ -754,12 +755,15 @@
|
||||
|
||||
AC_DEFINE(SHAPE, 1, [Support SHAPE extension])
|
||||
|
||||
-AC_DEFINE(XKB, 1, [Build XKB])
|
||||
-AC_DEFINE(XKB_IN_SERVER, 1, [Build XKB server])
|
||||
-AC_DEFINE(XKB_DFLT_DISABLED, 0, [Disable XKB per default])
|
||||
-REQUIRED_MODULES="$REQUIRED_MODULES xkbfile"
|
||||
-XKB_LIB='$(top_builddir)/xkb/libxkb.la'
|
||||
-XKB_STUB_LIB='$(top_builddir)/xkb/libxkbstubs.la'
|
||||
+AM_CONDITIONAL(XKB, [test "x$XKB" = xyes])
|
||||
+if test "x$XKB" = xyes; then
|
||||
+ AC_DEFINE(XKB, 1, [Build XKB])
|
||||
+ AC_DEFINE(XKB_IN_SERVER, 1, [Build XKB server])
|
||||
+ AC_DEFINE(XKB_DFLT_DISABLED, 0, [Disable XKB per default])
|
||||
+ REQUIRED_MODULES="$REQUIRED_MODULES xkbfile"
|
||||
+ XKB_LIB='$(top_builddir)/xkb/libxkb.la'
|
||||
+ XKB_STUB_LIB='$(top_builddir)/xkb/libxkbstubs.la'
|
||||
+fi
|
||||
|
||||
AC_CHECK_FUNC(strcasecmp, [], AC_DEFINE([NEED_STRCASECMP], 1,
|
||||
[Do not have `strcasecmp'.]))
|
||||
-29
@@ -1,29 +0,0 @@
|
||||
Server reports XRandR version provided by libxrandr instead of XRandR
|
||||
version implemented. It confuses applications that execute XRandR
|
||||
version dependent code (e. g. gtk+ >= 2.18.0).
|
||||
|
||||
Index: xorg-server-1.3.0.0/randr/rrdispatch.c
|
||||
===================================================================
|
||||
--- xorg-server-1.3.0.0.orig/randr/rrdispatch.c
|
||||
+++ xorg-server-1.3.0.0/randr/rrdispatch.c
|
||||
@@ -22,6 +22,9 @@
|
||||
|
||||
#include "randrstr.h"
|
||||
|
||||
+#define SERVER_RANDR_MAJOR 1
|
||||
+#define SERVER_RANDR_MINOR 2
|
||||
+
|
||||
Bool
|
||||
RRClientKnowsRates (ClientPtr pClient)
|
||||
{
|
||||
@@ -49,8 +52,8 @@ ProcRRQueryVersion (ClientPtr client)
|
||||
* Report the current version; the current
|
||||
* spec says they're all compatible after 1.0
|
||||
*/
|
||||
- rep.majorVersion = RANDR_MAJOR;
|
||||
- rep.minorVersion = RANDR_MINOR;
|
||||
+ rep.majorVersion = SERVER_RANDR_MAJOR;
|
||||
+ rep.minorVersion = SERVER_RANDR_MINOR;
|
||||
if (client->swapped) {
|
||||
swaps(&rep.sequenceNumber, n);
|
||||
swapl(&rep.length, n);
|
||||
@@ -1,151 +0,0 @@
|
||||
>From 48e4d08e99de41047c6b6fde5ba9d12787881c23 Mon Sep 17 00:00:00 2001
|
||||
From: root <root@benny.jf.intel.com>
|
||||
Date: Sun, 28 Oct 2007 09:37:52 +0100
|
||||
Subject: [PATCH] The smart scheduler itimer currently always fires after each request
|
||||
(which in turn causes the CPU to wake out of idle, burning precious power).
|
||||
Rather than doing this, just stop the timer before going into the select()
|
||||
portion of the WaitFor loop. It's a cheap system call, and it will only get
|
||||
called if there's no more commands batched up from the active fd.
|
||||
|
||||
This change also allows some of the functions to be simplified; setitimer()
|
||||
will only fail if it's passed invalid data, and we don't do that... so make
|
||||
it void and remove all the conditional code that deals with failure.
|
||||
|
||||
The change also allows us to remove a few variables that were used for
|
||||
housekeeping between the signal handler and the main loop.
|
||||
---
|
||||
include/dixstruct.h | 6 ++----
|
||||
os/WaitFor.c | 11 +++--------
|
||||
os/utils.c | 28 +++-------------------------
|
||||
3 files changed, 8 insertions(+), 37 deletions(-)
|
||||
|
||||
diff --git a/include/dixstruct.h b/include/dixstruct.h
|
||||
index dd6347f..bed31dc 100644
|
||||
--- a/include/dixstruct.h
|
||||
+++ b/include/dixstruct.h
|
||||
@@ -150,11 +150,9 @@ extern long SmartScheduleTime;
|
||||
extern long SmartScheduleInterval;
|
||||
extern long SmartScheduleSlice;
|
||||
extern long SmartScheduleMaxSlice;
|
||||
-extern unsigned long SmartScheduleIdleCount;
|
||||
extern Bool SmartScheduleDisable;
|
||||
-extern Bool SmartScheduleIdle;
|
||||
-extern Bool SmartScheduleTimerStopped;
|
||||
-extern Bool SmartScheduleStartTimer(void);
|
||||
+extern void SmartScheduleStartTimer(void);
|
||||
+extern void SmartScheduleStopTimer(void);
|
||||
#define SMART_MAX_PRIORITY (20)
|
||||
#define SMART_MIN_PRIORITY (-20)
|
||||
|
||||
diff --git a/os/WaitFor.c b/os/WaitFor.c
|
||||
index ec1592c..7683477 100644
|
||||
--- a/os/WaitFor.c
|
||||
+++ b/os/WaitFor.c
|
||||
@@ -217,7 +217,8 @@ WaitForSomething(int *pClientsReady)
|
||||
XFD_COPYSET(&AllSockets, &LastSelectMask);
|
||||
#ifdef SMART_SCHEDULE
|
||||
}
|
||||
- SmartScheduleIdle = TRUE;
|
||||
+ SmartScheduleStopTimer ();
|
||||
+
|
||||
#endif
|
||||
BlockHandler((pointer)&wt, (pointer)&LastSelectMask);
|
||||
if (NewOutputPending)
|
||||
@@ -237,13 +238,7 @@ WaitForSomething(int *pClientsReady)
|
||||
selecterr = GetErrno();
|
||||
WakeupHandler(i, (pointer)&LastSelectMask);
|
||||
#ifdef SMART_SCHEDULE
|
||||
- if (i >= 0)
|
||||
- {
|
||||
- SmartScheduleIdle = FALSE;
|
||||
- SmartScheduleIdleCount = 0;
|
||||
- if (SmartScheduleTimerStopped)
|
||||
- (void) SmartScheduleStartTimer ();
|
||||
- }
|
||||
+ SmartScheduleStartTimer ();
|
||||
#endif
|
||||
if (i <= 0) /* An error or timeout occurred */
|
||||
{
|
||||
diff --git a/os/utils.c b/os/utils.c
|
||||
index 31cb0af..6fc1f7d 100644
|
||||
--- a/os/utils.c
|
||||
+++ b/os/utils.c
|
||||
@@ -1513,10 +1513,6 @@ XNFstrdup(const char *s)
|
||||
|
||||
#ifdef SMART_SCHEDULE
|
||||
|
||||
-unsigned long SmartScheduleIdleCount;
|
||||
-Bool SmartScheduleIdle;
|
||||
-Bool SmartScheduleTimerStopped;
|
||||
-
|
||||
#ifdef SIGVTALRM
|
||||
#define SMART_SCHEDULE_POSSIBLE
|
||||
#endif
|
||||
@@ -1526,7 +1522,7 @@ Bool SmartScheduleTimerStopped;
|
||||
#define SMART_SCHEDULE_TIMER ITIMER_REAL
|
||||
#endif
|
||||
|
||||
-static void
|
||||
+void
|
||||
SmartScheduleStopTimer (void)
|
||||
{
|
||||
#ifdef SMART_SCHEDULE_POSSIBLE
|
||||
@@ -1537,38 +1533,28 @@ SmartScheduleStopTimer (void)
|
||||
timer.it_value.tv_sec = 0;
|
||||
timer.it_value.tv_usec = 0;
|
||||
(void) setitimer (ITIMER_REAL, &timer, 0);
|
||||
- SmartScheduleTimerStopped = TRUE;
|
||||
#endif
|
||||
}
|
||||
|
||||
-Bool
|
||||
+void
|
||||
SmartScheduleStartTimer (void)
|
||||
{
|
||||
#ifdef SMART_SCHEDULE_POSSIBLE
|
||||
struct itimerval timer;
|
||||
|
||||
- SmartScheduleTimerStopped = FALSE;
|
||||
timer.it_interval.tv_sec = 0;
|
||||
timer.it_interval.tv_usec = SmartScheduleInterval * 1000;
|
||||
timer.it_value.tv_sec = 0;
|
||||
timer.it_value.tv_usec = SmartScheduleInterval * 1000;
|
||||
- return setitimer (ITIMER_REAL, &timer, 0) >= 0;
|
||||
+ setitimer (ITIMER_REAL, &timer, 0);
|
||||
#endif
|
||||
- return FALSE;
|
||||
}
|
||||
|
||||
#ifdef SMART_SCHEDULE_POSSIBLE
|
||||
static void
|
||||
SmartScheduleTimer (int sig)
|
||||
{
|
||||
- int olderrno = errno;
|
||||
-
|
||||
SmartScheduleTime += SmartScheduleInterval;
|
||||
- if (SmartScheduleIdle)
|
||||
- {
|
||||
- SmartScheduleStopTimer ();
|
||||
- }
|
||||
- errno = olderrno;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1592,14 +1578,6 @@ SmartScheduleInit (void)
|
||||
perror ("sigaction for smart scheduler");
|
||||
return FALSE;
|
||||
}
|
||||
- /* Set up the virtual timer */
|
||||
- if (!SmartScheduleStartTimer ())
|
||||
- {
|
||||
- perror ("scheduling timer");
|
||||
- return FALSE;
|
||||
- }
|
||||
- /* stop the timer and wait for WaitForSomething to start it */
|
||||
- SmartScheduleStopTimer ();
|
||||
return TRUE;
|
||||
#else
|
||||
return FALSE;
|
||||
--
|
||||
1.5.3.4
|
||||
|
||||
@@ -1,122 +0,0 @@
|
||||
---
|
||||
Xext/xcalibrate.c | 47 ++++++++++++++++++++++++++++++++++++++++++++++-
|
||||
hw/kdrive/src/kdrive.h | 3 +++
|
||||
hw/kdrive/src/kinput.c | 12 ++++++++++++
|
||||
3 files changed, 61 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: xorg-server-1.3.0.0/Xext/xcalibrate.c
|
||||
===================================================================
|
||||
--- xorg-server-1.3.0.0.orig/Xext/xcalibrate.c 2007-06-29 17:30:03.000000000 +0100
|
||||
+++ xorg-server-1.3.0.0/Xext/xcalibrate.c 2007-06-30 14:04:40.000000000 +0100
|
||||
@@ -166,7 +166,6 @@ ProcXCalibrateSetRawMode (ClientPtr clie
|
||||
return (client->noClientException);
|
||||
}
|
||||
|
||||
-
|
||||
static int
|
||||
SProcXCalibrateSetRawMode (ClientPtr client)
|
||||
{
|
||||
@@ -180,6 +179,47 @@ SProcXCalibrateSetRawMode (ClientPtr cli
|
||||
return ProcXCalibrateSetRawMode(client);
|
||||
}
|
||||
|
||||
+static int
|
||||
+ProcXCalibrateScreenToCoord (ClientPtr client)
|
||||
+{
|
||||
+ REQUEST(xXCalibrateScreenToCoordReq);
|
||||
+ xXCalibrateScreenToCoordReply rep;
|
||||
+
|
||||
+ REQUEST_SIZE_MATCH (xXCalibrateScreenToCoordReq);
|
||||
+
|
||||
+ memset (&rep, 0, sizeof (rep));
|
||||
+ rep.type = X_Reply;
|
||||
+ rep.sequenceNumber = client->sequence;
|
||||
+ rep.x = stuff->x;
|
||||
+ rep.y = stuff->y;
|
||||
+
|
||||
+ KdScreenToMouseCoords(&rep.x, &rep.y);
|
||||
+
|
||||
+ if (client->swapped)
|
||||
+ {
|
||||
+ int n;
|
||||
+
|
||||
+ swaps (&rep.x, n);
|
||||
+ swaps (&rep.y, n);
|
||||
+ }
|
||||
+ WriteToClient(client, sizeof (rep), (char *) &rep);
|
||||
+ return (client->noClientException);
|
||||
+}
|
||||
+
|
||||
+static int
|
||||
+SProcXCalibrateScreenToCoord (ClientPtr client)
|
||||
+{
|
||||
+ REQUEST(xXCalibrateScreenToCoordReq);
|
||||
+ int n;
|
||||
+
|
||||
+ REQUEST_SIZE_MATCH (xXCalibrateScreenToCoordReq);
|
||||
+
|
||||
+ swaps(&stuff->x, n);
|
||||
+ swaps(&stuff->y, n);
|
||||
+
|
||||
+ return ProcXCalibrateScreenToCoord(client);
|
||||
+}
|
||||
+
|
||||
static void
|
||||
XCalibrateResetProc (ExtensionEntry *extEntry)
|
||||
{
|
||||
@@ -194,6 +234,9 @@ ProcXCalibrateDispatch (ClientPtr client
|
||||
return ProcXCalibrateQueryVersion(client);
|
||||
case X_XCalibrateRawMode:
|
||||
return ProcXCalibrateSetRawMode(client);
|
||||
+ case X_XCalibrateScreenToCoord:
|
||||
+ return ProcXCalibrateScreenToCoord(client);
|
||||
+
|
||||
default: break;
|
||||
}
|
||||
|
||||
@@ -213,6 +256,8 @@ SProcXCalibrateDispatch (ClientPtr clien
|
||||
return SProcXCalibrateQueryVersion(client);
|
||||
case X_XCalibrateRawMode:
|
||||
return SProcXCalibrateSetRawMode(client);
|
||||
+ case X_XCalibrateScreenToCoord:
|
||||
+ return SProcXCalibrateScreenToCoord(client);
|
||||
|
||||
default: break;
|
||||
}
|
||||
Index: xorg-server-1.3.0.0/hw/kdrive/src/kdrive.h
|
||||
===================================================================
|
||||
--- xorg-server-1.3.0.0.orig/hw/kdrive/src/kdrive.h 2007-06-30 13:43:45.000000000 +0100
|
||||
+++ xorg-server-1.3.0.0/hw/kdrive/src/kdrive.h 2007-06-30 13:45:03.000000000 +0100
|
||||
@@ -746,6 +746,9 @@ void
|
||||
KdSetMouseMatrix (KdMouseMatrix *matrix);
|
||||
|
||||
void
|
||||
+KdScreenToMouseCoords (int *x, int *y);
|
||||
+
|
||||
+void
|
||||
KdComputeMouseMatrix (KdMouseMatrix *matrix, Rotation randr, int width, int height);
|
||||
|
||||
void
|
||||
Index: xorg-server-1.3.0.0/hw/kdrive/src/kinput.c
|
||||
===================================================================
|
||||
--- xorg-server-1.3.0.0.orig/hw/kdrive/src/kinput.c 2007-06-29 17:30:16.000000000 +0100
|
||||
+++ xorg-server-1.3.0.0/hw/kdrive/src/kinput.c 2007-06-30 15:52:16.000000000 +0100
|
||||
@@ -381,6 +381,18 @@ KdSetMouseMatrix (KdMouseMatrix *matrix)
|
||||
}
|
||||
|
||||
void
|
||||
+KdScreenToMouseCoords (int *x, int *y)
|
||||
+{
|
||||
+ int (*m)[3] = kdMouseMatrix.matrix;
|
||||
+ int div = m[0][1] * m[1][0] - m[1][1] * m[0][0];
|
||||
+ int sx = *x;
|
||||
+ int sy = *y;
|
||||
+
|
||||
+ *x = (m[0][1] * sy - m[0][1] * m[1][2] + m[1][1] * m[0][2] - m[1][1] * sx) / div;
|
||||
+ *y = (m[1][0] * sx + m[0][0] * m[1][2] - m[1][0] * m[0][2] - m[0][0] * sy) / div;
|
||||
+}
|
||||
+
|
||||
+void
|
||||
KdComputeMouseMatrix (KdMouseMatrix *m, Rotation randr, int width, int height)
|
||||
{
|
||||
int x_dir = 1, y_dir = 1;
|
||||
@@ -1,3 +1,7 @@
|
||||
Upstream-Status: Inappropriate [cross compiling]
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
Index: xorg-server-1.7.99.2/configure.ac
|
||||
===================================================================
|
||||
--- xorg-server-1.7.99.2.orig/configure.ac 2010-01-29 16:38:49.000000000 +0000
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
Upstream-Status: Inappropriate [disable feature]
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
--- xserver/hw/kdrive/linux/linux.c.orig 2005-04-23 15:56:13.988849232 +0000
|
||||
+++ xserver/hw/kdrive/linux/linux.c 2005-04-23 15:57:05.001094192 +0000
|
||||
@@ -342,7 +342,7 @@
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
--- xorg-server-X11R7.1-1.1.0/dix/dixfonts.c.orig 2006-06-08 14:49:12.158684250 +0200
|
||||
+++ xorg-server-X11R7.1-1.1.0/dix/dixfonts.c 2006-06-08 14:49:52.493205000 +0200
|
||||
@@ -52,8 +52,8 @@
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
---
|
||||
Xext/Makefile.am | 6 ++++++
|
||||
configure.ac | 11 +++++++++--
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
Add some extra video modes and change the default to VGA.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
---
|
||||
hw/kdrive/src/kmode.c | 41 +++++++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 39 insertions(+), 2 deletions(-)
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
Index: xorg-server-1.3.0.0/hw/kdrive/fbdev/fbdev.c
|
||||
===================================================================
|
||||
--- xorg-server-1.3.0.0.orig/hw/kdrive/fbdev/fbdev.c 2008-09-25 21:55:12.000000000 +0100
|
||||
|
||||
+4
@@ -1,3 +1,7 @@
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
---
|
||||
render/glyphstr.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
+4
@@ -1,3 +1,7 @@
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
Index: xorg-server-1.7.99.2/dix/window.c
|
||||
===================================================================
|
||||
--- xorg-server-1.7.99.2.orig/dix/window.c 2009-11-04 16:25:50.000000000 +0000
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
# Kdrive evdev support patch, posted by Ander Conselvan de Oliveira at
|
||||
# http://lists.freedesktop.org/archives/xorg/2005-December/011635.html
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
diff -u -r --exclude=CVS --exclude=Makefile --exclude='*.o' --exclude=ephyr --exclude='*.Po' xserver.original/hw/kdrive/linux/evdev.c xserver/hw/kdrive/linux/evdev.c
|
||||
--- xserver.original/hw/kdrive/linux/evdev.c 2005-12-16 10:36:05.000000000 -0200
|
||||
+++ xserver/hw/kdrive/linux/evdev.c 2005-12-16 10:40:51.077410192 -0200
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
--- xserver/hw/kdrive/fbdev/fbinit.c~ 2006-01-31 17:09:33.000000000 +0100
|
||||
+++ xserver/hw/kdrive/fbdev/fbinit.c 2006-01-31 17:11:55.000000000 +0100
|
||||
@@ -28,6 +28,8 @@
|
||||
|
||||
+4
@@ -1,3 +1,7 @@
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
Index: xorg-server-1.4/hw/kdrive/linux/keyboard.c
|
||||
===================================================================
|
||||
--- xorg-server-1.4.orig/hw/kdrive/linux/keyboard.c 2007-09-29 18:31:15.000000000 +0200
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
--- xserver/hw/kdrive/linux/mouse.c.orig 2004-05-13 14:25:51.000000000 -0700
|
||||
+++ xserver/hw/kdrive/linux/mouse.c 2005-09-22 12:20:47.000000000 -0700
|
||||
@@ -927,8 +927,10 @@ char *kdefaultMouse[] = {
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
Index: git/configure.ac
|
||||
===================================================================
|
||||
--- git.orig/configure.ac 2009-01-15 20:35:31.000000000 +0000
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
Index: xorg-server-1.2.0/Makefile.am
|
||||
===================================================================
|
||||
--- xorg-server-1.2.0.orig/Makefile.am 2007-01-23 06:39:15.000000000 +0100
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
Upstream-Status: Inappropriate [disable feature]
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
--- xserver/hw/kdrive/linux/linux.c.orig 2005-04-23 15:56:13.988849232 +0000
|
||||
+++ xserver/hw/kdrive/linux/linux.c 2005-04-23 15:57:05.001094192 +0000
|
||||
@@ -342,7 +342,7 @@
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
Upstream-Status: Inappropriate [disable feature]
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
Index: xorg-server-1.3.0.0/configure.ac
|
||||
===================================================================
|
||||
--- xorg-server-1.3.0.0.orig/configure.ac 2007-04-20 03:23:40.000000000 +0200
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
Add some extra video modes and change the default to VGA.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
---
|
||||
hw/kdrive/src/kmode.c | 41 +++++++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 39 insertions(+), 2 deletions(-)
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
--- xserver/hw/kdrive/linux/mouse.c.orig 2004-05-13 14:25:51.000000000 -0700
|
||||
+++ xserver/hw/kdrive/linux/mouse.c 2005-09-22 12:20:47.000000000 -0700
|
||||
@@ -927,8 +927,10 @@ char *kdefaultMouse[] = {
|
||||
|
||||
Reference in New Issue
Block a user