diff options
-rw-r--r-- | conf/distro/angstrom-2007.1.conf | 3 | ||||
-rwxr-xr-x | contrib/mtn2cl/mtn2cl.sh | 11 | ||||
-rw-r--r-- | packages/c3110x/cx3110x_1.1.bb | 48 | ||||
-rw-r--r-- | packages/c3110x/files/.mtn2git_empty | 0 | ||||
-rw-r--r-- | packages/c3110x/files/umac_binary.patch | 69 | ||||
-rw-r--r-- | packages/gaim/pidgin.inc | 2 | ||||
-rw-r--r-- | packages/gaim/pidgin_2.0.1.bb | 2 | ||||
-rw-r--r-- | packages/kazehakase/kazehakase_0.4.7.bb | 11 | ||||
-rw-r--r-- | packages/xorg-xserver/xserver-kdrive-1.3.0.0/fix_default_mode.patch | 26 | ||||
-rw-r--r-- | packages/xorg-xserver/xserver-kdrive-1.3.0.0/hide-cursor-and-ppm-root.patch | 307 |
10 files changed, 457 insertions, 22 deletions
diff --git a/conf/distro/angstrom-2007.1.conf b/conf/distro/angstrom-2007.1.conf index b60daa00b3..f1f3fcdf7e 100644 --- a/conf/distro/angstrom-2007.1.conf +++ b/conf/distro/angstrom-2007.1.conf @@ -8,7 +8,7 @@ #DISTRO_VERSION = "2007.4" DISTRO_VERSION = "test-${DATE}" -DISTRO_REVISION = "43" +DISTRO_REVISION = "44" require conf/distro/include/angstrom.inc require conf/distro/include/sane-srcdates.inc @@ -81,6 +81,7 @@ FEED_URIS += " \ perl##${ANGSTROM_URI}/unstable/feed/${FEED_ARCH}/perl \ python##${ANGSTROM_URI}/unstable/feed/${FEED_ARCH}/python \ debug##${ANGSTROM_URI}/unstable/feed/${FEED_ARCH}/debug \ + gstreamer##${ANGSTROM_URI}/unstable/feed/${FEED_ARCH}/gsteamer \ ${MACHINE}##${ANGSTROM_URI}/unstable/feed/${FEED_ARCH}/machine/${MACHINE}" # base##${ANGSTROM_URI}/releases/${DISTRO_VERSION}/feed/${FEED_ARCH}/base \ # ${MACHINE}##${ANGSTROM_URI}/releases/${DISTRO_VERSION}/feed/${FEED_ARCH}/machine/${MACHINE} \ diff --git a/contrib/mtn2cl/mtn2cl.sh b/contrib/mtn2cl/mtn2cl.sh index 578a06145a..631303b55b 100755 --- a/contrib/mtn2cl/mtn2cl.sh +++ b/contrib/mtn2cl/mtn2cl.sh @@ -2,7 +2,9 @@ # This script takes the last 1000 revs and writes a ChangeLog -for i in `mtn log --brief --no-graph --no-merges --last 1000 | awk '{print $2 ":" $1}'` ; do \ +export REV_NOW=`mtn automate heads |head -n1` + +for i in `mtn log --brief --no-graph --no-merges --from l:"1 week ago" --to ${REV_NOW}| awk '{print $2 ":" $1}'` ; do \ export REV=`echo $i | awk -F: '{print $2}'` export AUTHOR=`echo $i | awk -F: '{print $1}'` export CL=`mtn ls certs ${REV} | grep -A 1 changelog | grep -v changelog | gawk -F'Value : ' '{ print $2 }'` @@ -17,5 +19,12 @@ for i in *@* ; do \ echo >> ChangeLog done +echo "Bug fixed:" >> ChangeLog + +wget 'http://bugs.openembedded.org/buglist.cgi?bug_file_loc=&bug_file_loc_type=allwordssubstr&bug_id=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&bugidtype=include&chfieldfrom=7d&chfieldto=Now&chfieldvalue=&email1=&email2=&emailassigned_to1=1&emailassigned_to2=1&emailcc2=1&emailqa_contact2=1&emailreporter2=1&emailtype1=substring&emailtype2=substring&field-1-0-0=bug_status&field0-0-0=noop&known_name=1WFixed&long_desc=&long_desc_type=substring&query_format=advanced&remaction=&short_desc=&short_desc_type=allwordssubstr&type-1-0-0=anyexact&type0-0-0=noop&value-1-0-0=RESOLVED%2CVERIFIED%2CCLOSED&value0-0-0=&ctype=csv' -O bugs.csv >& /dev/null + +cat bugs.csv | awk -F, '{print $1 " " $7 "\t " $8}' | sed s:\"::g >> ChangeLog + + rm `ls | grep -v ChangeLog | grep -v mtn2cl` diff --git a/packages/c3110x/cx3110x_1.1.bb b/packages/c3110x/cx3110x_1.1.bb index b3a9ce87e3..15cf51427d 100644 --- a/packages/c3110x/cx3110x_1.1.bb +++ b/packages/c3110x/cx3110x_1.1.bb @@ -1,18 +1,30 @@ -DESCRIPTION = "cx3110x wifi support as found in the Nokia 770/800" -SECTION = "kernel/modules" -LICENSE = "GPL" -PR = "r0" - -export KERNEL_SRC_DIR = ${STAGING_KERNEL_DIR} -export LDFLAGS = "" - -SRC_URI = "https://garage.maemo.org/frs/download.php/939/cx3110x-1.1.tar.gz" - -S = "${WORKDIR}/cx3110x-${PV}" - -inherit module - -do_compile() { - oe_runmake modules -} - +DESCRIPTION = "cx3110x wifi support as found in the Nokia 770/800"
+SECTION = "kernel/modules"
+LICENSE = "GPL"
+PR = "r4"
+
+COMPATIBLE_MACHINE = "(nokia770|nokia800)"
+
+export KERNEL_SRC_DIR = ${STAGING_KERNEL_DIR}
+export LDFLAGS = ""
+
+SRC_URI = "https://garage.maemo.org/frs/download.php/939/cx3110x-1.1.tar.gz \
+ file://umac_binary.patch;patch=1 \
+ http://use.the.umac.ko.from.your.own.nokia800/umac.ko"
+
+S = "${WORKDIR}/cx3110x-${PV}"
+
+inherit module
+
+do_compile() {
+ cp ${WORKDIR}/umac.ko ${S}/src/binary_umac.o
+ ${OBJCOPY} ${S}/src/binary_umac.o -R __ksymtab
+ ${OBJCOPY} ${S}/src/binary_umac.o -R __ksymtab_strings
+ ${OBJCOPY} ${S}/src/binary_umac.o -R .gnu.linkonce.this_module
+ ${OBJCOPY} ${S}/src/binary_umac.o -R .modinfo
+ ${OBJCOPY} ${S}/src/binary_umac.o -R .init.text
+ ${OBJCOPY} ${S}/src/binary_umac.o -R .exit.text
+
+ oe_runmake modules
+}
+
diff --git a/packages/c3110x/files/.mtn2git_empty b/packages/c3110x/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/c3110x/files/.mtn2git_empty diff --git a/packages/c3110x/files/umac_binary.patch b/packages/c3110x/files/umac_binary.patch new file mode 100644 index 0000000000..bffe69bca5 --- /dev/null +++ b/packages/c3110x/files/umac_binary.patch @@ -0,0 +1,69 @@ + src/Makefile.k26 | 4 ++--
+ src/dummy_umac.c | 38 ++------------------------------------
+ 2 files changed, 4 insertions(+), 38 deletions(-)
+
+Index: cx3110x-1.1/src/Makefile.k26
+===================================================================
+--- cx3110x-1.1.orig/src/Makefile.k26 2007-05-25 17:51:15.000000000 +0100
++++ cx3110x-1.1/src/Makefile.k26 2007-05-25 22:44:36.000000000 +0100
+@@ -8,8 +8,8 @@ cx3110x-objs = $(SM_OBJECTS) $(SM_UMAC_O
+ #MTUM module
+ cx3110x_mt-objs = $(SM_OBJECTS) $(SM_MTUM_OBJECTS)
+
+-umac-objs = dummy_umac.o
+-mtum-objs = dummy_umac.o
++umac-objs = dummy_umac.o binary_umac.o
++mtum-objs = dummy_umac.o binary_umac.o
+
+ obj-$(CONFIG_CX3110X_STA) += cx3110x.o umac.o
+ obj-$(CONFIG_CX3110X_PROD) += cx3110x_mt.o mtum.o
+Index: cx3110x-1.1/src/dummy_umac.c
+===================================================================
+--- cx3110x-1.1.orig/src/dummy_umac.c 2007-05-25 17:51:15.000000000 +0100
++++ cx3110x-1.1/src/dummy_umac.c 2007-05-25 22:50:59.000000000 +0100
+@@ -15,43 +15,9 @@
+ */
+ #include <linux/module.h>
+ #include "softmac2.h"
++#include "sm_drv.h"
+
+-SM_API int32_t SM_FDECL prism_softmac_parse_bra(const uint8_t* bra,
+- struct s_sm_initdata *data) { return 0; }
+-
+-SM_API int32_t SM_FDECL prism_softmac_describe(struct s_sm_descr *descr,
+- struct s_sm_initdata *data) { return 0; }
+-
+-SM_API int32_t SM_FDECL prism_softmac_create(uint32_t *context,
+- struct s_sm_setup *setup,
+- struct s_pda *pda,
+- struct s_sm_initdata *data) { return 0; }
+-
+-SM_API int32_t SM_FDECL prism_softmac_destroy(uint32_t *context) { return 0; }
+-
+-SM_API int32_t SM_FDECL prism_softmac_conf( uint32_t *context, struct s_sm_conf *conf ){ return 0; }
+-SM_API int32_t SM_FDECL prism_softmac_trap( uint32_t *context, struct s_sm_conf *conf ){ return 0; }
+-
+-SM_API int32_t SM_FDECL prism_softmac_frame_tx(uint32_t *context, struct s_sm_frame *frame){ return 0; }
+-SM_API int32_t SM_FDECL prism_softmac_frame_tx_done(uint32_t *context, struct s_sm_frame **frame){ return 0; }
+-SM_API int32_t SM_FDECL prism_softmac_frame_rx(uint32_t *context, struct s_sm_frame **frame){ return 0; }
+-SM_API int32_t SM_FDECL prism_softmac_service(uint32_t *context) { return 0; }
+-
+-SM_API int32_t SM_FDECL prism_interconnect_message_query(uint32_t *context,
+- uint32_t mask,
+- struct s_ic_msg **msg){ return 0; }
+-SM_API int32_t SM_FDECL prism_interconnect_message_handle(uint32_t *context, struct s_ic_msg *msg){ return 0; }
+-SM_API int32_t SM_FDECL prism_interconnect_trigger(uint32_t *context){ return 0;}
+-
+-void prism_driver_free(uint32_t *context, void *buffer){}
+-void prism_driver_frame_free(uint32_t *context, struct s_sm_frame *frame){}
+-
+-int sm_net_device;
+-void sm_drv_get_device(void) {}
+-void frame_skb_alloc(void) {}
+-void frame_skb_free(void) {}
+-void frame_to_skb(void) {}
+-void skb_to_frame(void) {}
++extern int sm_net_device;
+
+ EXPORT_SYMBOL(prism_driver_free);
+ EXPORT_SYMBOL(prism_driver_frame_free);
diff --git a/packages/gaim/pidgin.inc b/packages/gaim/pidgin.inc index f0113b0d58..072100fdf0 100644 --- a/packages/gaim/pidgin.inc +++ b/packages/gaim/pidgin.inc @@ -3,7 +3,7 @@ DESCRIPTION = "multi-protocol instant messaging client" LICENSE = "GPL" DEPENDS = "gtk+ ncurses gnutls virtual/libintl gstreamer dbus" -RRECOMMENDS_${PN} = "libpurple-protocol-irc libpurple-protocol-jabber" +RRECOMMENDS_${PN} = "libpurple-protocol-irc libpurple-protocol-xmpp" EXTRA_OECONF = " \ --disable-audio \ diff --git a/packages/gaim/pidgin_2.0.1.bb b/packages/gaim/pidgin_2.0.1.bb index 7f62f6ac79..df982a9bf4 100644 --- a/packages/gaim/pidgin_2.0.1.bb +++ b/packages/gaim/pidgin_2.0.1.bb @@ -5,4 +5,4 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/pidgin/pidgin-${PV}.tar.bz2 \ file://gconf-no-errors.patch;patch=1 \ " -PR = "r0" +PR = "r1" diff --git a/packages/kazehakase/kazehakase_0.4.7.bb b/packages/kazehakase/kazehakase_0.4.7.bb new file mode 100644 index 0000000000..70e99a40fb --- /dev/null +++ b/packages/kazehakase/kazehakase_0.4.7.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "A gtk-webcore based browser" +HOMEPAGE = "http://kazehakase.sourceforge.jp/" +SECTION = "x11/network" +LICENSE = "GPLv2" +DEPENDS = "osb-nrcit glib-2.0" +SRC_URI = "http://iij.dl.sourceforge.jp/kazehakase/25610/kazehakase-${PV}.tar.gz" + +inherit autotools pkgconfig + +DEFAULT_PREFERENCE = "-1" + diff --git a/packages/xorg-xserver/xserver-kdrive-1.3.0.0/fix_default_mode.patch b/packages/xorg-xserver/xserver-kdrive-1.3.0.0/fix_default_mode.patch new file mode 100644 index 0000000000..edc5146302 --- /dev/null +++ b/packages/xorg-xserver/xserver-kdrive-1.3.0.0/fix_default_mode.patch @@ -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 */ diff --git a/packages/xorg-xserver/xserver-kdrive-1.3.0.0/hide-cursor-and-ppm-root.patch b/packages/xorg-xserver/xserver-kdrive-1.3.0.0/hide-cursor-and-ppm-root.patch new file mode 100644 index 0000000000..c160cd41dc --- /dev/null +++ b/packages/xorg-xserver/xserver-kdrive-1.3.0.0/hide-cursor-and-ppm-root.patch @@ -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) + { |