diff options
author | Matthieu Herrb <matthieu.herrb@laas.fr> | 2013-04-27 15:48:31 +0200 |
---|---|---|
committer | Matthieu Herrb <matthieu.herrb@laas.fr> | 2013-04-27 15:48:31 +0200 |
commit | cb8d170fafa5392f748da396dfb28b30990fe5d7 (patch) | |
tree | 92b4b2295108ad346a5131cf50966a7233269b5b | |
parent | 2cf9484828b76b9516f3cfa80e9da24724959912 (diff) | |
parent | 10c42f5752d790f745572a3f9fbd2ad7686e1372 (diff) |
Merge remote-tracking branch 'origin/server-1.13-branch' into obsd-server-1.13-branchobsd-server-1.13-branch
-rw-r--r-- | configure.ac | 6 | ||||
-rw-r--r-- | dix/window.c | 4 | ||||
-rw-r--r-- | hw/kdrive/ephyr/ephyr.c | 6 | ||||
-rw-r--r-- | hw/kdrive/ephyr/hostx.c | 6 | ||||
-rw-r--r-- | hw/kdrive/ephyr/hostx.h | 3 | ||||
-rw-r--r-- | hw/xfree86/common/xf86Events.c | 4 | ||||
-rw-r--r-- | hw/xfree86/os-support/shared/posix_tty.c | 3 | ||||
-rw-r--r-- | include/input.h | 5 | ||||
-rw-r--r-- | xfixes/cursor.c | 10 |
9 files changed, 27 insertions, 20 deletions
diff --git a/configure.ac b/configure.ac index d56b7462f..43371ce52 100644 --- a/configure.ac +++ b/configure.ac @@ -26,9 +26,9 @@ dnl dnl Process this file with autoconf to create configure. AC_PREREQ(2.60) -AC_INIT([xorg-server], 1.13.3, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server) -RELEASE_DATE="2013-03-07" -RELEASE_NAME="Golden Needle" +AC_INIT([xorg-server], 1.13.4, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server) +RELEASE_DATE="2013-04-17" +RELEASE_NAME="Pokey Stick" AC_CONFIG_SRCDIR([Makefile.am]) AM_INIT_AUTOMAKE([foreign dist-bzip2]) AM_MAINTAINER_MODE diff --git a/dix/window.c b/dix/window.c index 49ef4a081..ff979d984 100644 --- a/dix/window.c +++ b/dix/window.c @@ -1431,6 +1431,8 @@ ChangeWindowAttributes(WindowPtr pWin, Mask vmask, XID *vlist, ClientPtr client) } } + CursorVisible = TRUE; + if (pWin->realized) WindowHasNewCursor(pWin); @@ -3467,6 +3469,8 @@ ChangeWindowDeviceCursor(WindowPtr pWin, DeviceIntPtr pDev, CursorPtr pCursor) } out: + CursorVisible = TRUE; + if (pWin->realized) WindowHasNewCursor(pWin); diff --git a/hw/kdrive/ephyr/ephyr.c b/hw/kdrive/ephyr/ephyr.c index e6520d035..c9672c04a 100644 --- a/hw/kdrive/ephyr/ephyr.c +++ b/hw/kdrive/ephyr/ephyr.c @@ -237,13 +237,11 @@ ephyrMapFramebuffer(KdScreenInfo * screen) KdComputePointerMatrix(&m, ephyrRandr, screen->width, screen->height); KdSetPointerMatrix(&m); - priv->bytes_per_line = - ((screen->width * screen->fb.bitsPerPixel + 31) >> 5) << 2; - buffer_height = ephyrBufferHeight(screen); priv->base = - hostx_screen_init(screen, screen->width, screen->height, buffer_height); + hostx_screen_init(screen, screen->width, screen->height, buffer_height, + &priv->bytes_per_line, &screen->fb.bitsPerPixel); if ((scrpriv->randr & RR_Rotate_0) && !(scrpriv->randr & RR_Reflect_All)) { scrpriv->shadow = FALSE; diff --git a/hw/kdrive/ephyr/hostx.c b/hw/kdrive/ephyr/hostx.c index 02729d6f6..dfbb9896d 100644 --- a/hw/kdrive/ephyr/hostx.c +++ b/hw/kdrive/ephyr/hostx.c @@ -617,7 +617,8 @@ hostx_set_cmap_entry(unsigned char idx, */ void * hostx_screen_init(EphyrScreenInfo screen, - int width, int height, int buffer_height) + int width, int height, int buffer_height, + int *bytes_per_line, int *bits_per_pixel) { int bitmap_pad; Bool shm_success = False; @@ -694,6 +695,9 @@ hostx_screen_init(EphyrScreenInfo screen, malloc(host_screen->ximg->bytes_per_line * buffer_height); } + *bytes_per_line = host_screen->ximg->bytes_per_line; + *bits_per_pixel = host_screen->ximg->bits_per_pixel; + XResizeWindow(HostX.dpy, host_screen->win, width, height); /* Ask the WM to keep our size static */ diff --git a/hw/kdrive/ephyr/hostx.h b/hw/kdrive/ephyr/hostx.h index 31c4053aa..38b7b3768 100644 --- a/hw/kdrive/ephyr/hostx.h +++ b/hw/kdrive/ephyr/hostx.h @@ -193,7 +193,8 @@ hostx_set_cmap_entry(unsigned char idx, unsigned char r, unsigned char g, unsigned char b); void *hostx_screen_init(EphyrScreenInfo screen, - int width, int height, int buffer_height); + int width, int height, int buffer_height, + int *bytes_per_line, int *bits_per_pixel); void diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c index 7e80fa922..b19553a32 100644 --- a/hw/xfree86/common/xf86Events.c +++ b/hw/xfree86/common/xf86Events.c @@ -272,9 +272,9 @@ xf86Wakeup(pointer blockData, int err, pointer pReadmask) } if (err >= 0) { /* we don't want the handlers called if select() */ - IHPtr ih; /* returned with an error condition, do we? */ + IHPtr ih, ih_tmp; /* returned with an error condition, do we? */ - for (ih = InputHandlers; ih; ih = ih->next) { + nt_list_for_each_entry_safe(ih, ih_tmp, InputHandlers, next) { if (ih->enabled && ih->fd >= 0 && ih->ihproc && (FD_ISSET(ih->fd, ((fd_set *) pReadmask)) != 0)) { ih->ihproc(ih->fd, ih->data); diff --git a/hw/xfree86/os-support/shared/posix_tty.c b/hw/xfree86/os-support/shared/posix_tty.c index 7a1a5d736..af4900473 100644 --- a/hw/xfree86/os-support/shared/posix_tty.c +++ b/hw/xfree86/os-support/shared/posix_tty.c @@ -425,7 +425,8 @@ xf86FlushInput(int fd) { fd_set fds; struct timeval timeout; - char c[4]; + /* this needs to be big enough to flush an evdev event. */ + char c[256]; DebugF("FlushingSerial\n"); if (tcflush(fd, TCIFLUSH) == 0) diff --git a/include/input.h b/include/input.h index f0196f514..076e2c517 100644 --- a/include/input.h +++ b/include/input.h @@ -628,6 +628,11 @@ extern _X_HIDDEN void valuator_set_mode(DeviceIntPtr dev, int axis, int mode); xfixes/cursor.c uses it to determine if the cursor is enabled */ extern Bool EnableCursor; +/* Set to FALSE by default - ChangeWindowAttributes sets it to TRUE on + * CWCursor, xfixes/cursor.c uses it to determine if the cursor is enabled + */ +extern Bool CursorVisible; + extern _X_EXPORT ValuatorMask *valuator_mask_new(int num_valuators); extern _X_EXPORT void valuator_mask_free(ValuatorMask **mask); extern _X_EXPORT void valuator_mask_set_range(ValuatorMask *mask, diff --git a/xfixes/cursor.c b/xfixes/cursor.c index 4d4a75e3e..d6f61c20f 100644 --- a/xfixes/cursor.c +++ b/xfixes/cursor.c @@ -139,8 +139,7 @@ typedef struct _CursorScreen { #define Unwrap(as,s,elt,backup) (((backup) = (s)->elt), (s)->elt = (as)->elt) /* The cursor doesn't show up until the first XDefineCursor() */ -static Bool CursorVisible = FALSE; - +Bool CursorVisible = FALSE; Bool EnableCursor = TRUE; static Bool @@ -152,12 +151,7 @@ CursorDisplayCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor) Unwrap(cs, pScreen, DisplayCursor, backupProc); - /* - * Have to check ConnectionInfo to distinguish client requests from - * initial root window setup. Not a great way to do it, I admit. - */ - if (ConnectionInfo) - CursorVisible = EnableCursor; + CursorVisible = CursorVisible && EnableCursor; if (cs->pCursorHideCounts != NULL || !CursorVisible) { ret = (*pScreen->DisplayCursor) (pDev, pScreen, NullCursor); |