[oe-commits] org.oe.dev xserver-kdrive-1.3.0.0 : add missing patches, stolen from poky

xora commit openembedded-commits at lists.openembedded.org
Tue Jun 5 12:10:59 UTC 2007


xserver-kdrive-1.3.0.0 : add missing patches, stolen from poky

Author: xora at openembedded.org
Branch: org.openembedded.dev
Revision: 9bd0abfd2dcaab85090d39a2c1e1ce49c42bdf70
ViewMTN: http://monotone.openembedded.org/revision.psp?id=9bd0abfd2dcaab85090d39a2c1e1ce49c42bdf70
Files:
1
packages/xorg-xserver/xserver-kdrive-1.3.0.0/fix_default_mode.patch
packages/xorg-xserver/xserver-kdrive-1.3.0.0/hide-cursor-and-ppm-root.patch
Diffs:

#
# mt diff -r7abc4507300514e1d6031cad813624b69a0c97a4 -r9bd0abfd2dcaab85090d39a2c1e1ce49c42bdf70
#
# 
# 
# add_file "packages/xorg-xserver/xserver-kdrive-1.3.0.0/fix_default_mode.patch"
#  content [0078824b570a934713aa9b95e9fc9a95d1fe1429]
# 
# add_file "packages/xorg-xserver/xserver-kdrive-1.3.0.0/hide-cursor-and-ppm-root.patch"
#  content [4f26c38b131dd985703e5df02c42d6f3b6c4b555]
# 
============================================================
--- packages/xorg-xserver/xserver-kdrive-1.3.0.0/fix_default_mode.patch	0078824b570a934713aa9b95e9fc9a95d1fe1429
+++ packages/xorg-xserver/xserver-kdrive-1.3.0.0/fix_default_mode.patch	0078824b570a934713aa9b95e9fc9a95d1fe1429
@@ -0,0 +1,26 @@
+---
+ hw/kdrive/src/kmode.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+Index: xorg-server-1.3.0.0/hw/kdrive/src/kmode.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/hw/kdrive/src/kmode.c	2007-05-16 10:30:29.000000000 +0100
++++ xorg-server-1.3.0.0/hw/kdrive/src/kmode.c	2007-05-16 10:31:08.000000000 +0100
+@@ -106,6 +106,8 @@ const KdMonitorTiming  kdMonitorTimings[
+ 		    16,	    120,    176,    KdSyncNegative, /* 37.861 */
+ 		    1,	    20,	    24,	    KdSyncNegative, /* 72.809 */
+     },
++    /* DEFAULT */
++#define MONITOR_TIMING_DEFAULT	13
+     {	640,	480,	60,	25175,			    /* VESA */
+ 		   16,	    48,	    160,    KdSyncNegative, /* 31.469 */
+ 		   10,	    33,	    45,	    KdSyncNegative, /* 59.940 */
+@@ -127,8 +129,6 @@ const KdMonitorTiming  kdMonitorTimings[
+ 		    16,	    160,    256,    KdSyncPositive, /* 46.875 */
+ 		    1,	    21,	    25,	    KdSyncPositive, /* 75.000 */
+     },
+-    /* DEFAULT */
+-#define MONITOR_TIMING_DEFAULT	9
+     {	800,	600,	72,	50000,			    /* VESA */
+ 		    56,	    64,	    240,    KdSyncPositive, /* 48.077 */
+ 		    37,	    23,	    66,	    KdSyncPositive, /* 72.188 */
============================================================
--- packages/xorg-xserver/xserver-kdrive-1.3.0.0/hide-cursor-and-ppm-root.patch	4f26c38b131dd985703e5df02c42d6f3b6c4b555
+++ packages/xorg-xserver/xserver-kdrive-1.3.0.0/hide-cursor-and-ppm-root.patch	4f26c38b131dd985703e5df02c42d6f3b6c4b555
@@ -0,0 +1,307 @@
+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)
+     {






More information about the Openembedded-commits mailing list