From aa095d69b3874eb179cb77f033109a7f8f351041 Mon Sep 17 00:00:00 2001 From: marha Date: Fri, 15 Nov 2013 09:01:06 +0100 Subject: xcb-proto mesa xserver git update 15 nov 2013 xserver commit 29240e5cbf6e7f875b128fc7bfc4d56b2350835a libxcb commit e8663a935890ff366f49e356211049dfd0d9756a libxcb/xcb-proto commit 7c85d67b1b2edc421d889f9c5c3873e163363e7a xkeyboard-config commit 70bbf18d6cddb7271db1b2e042765ace3c4ac485 libX11 commit 6cb02b166361200da35ba14f52cd9aaa493eb0ea libXdmcp commit 089081dca4ba3598c6f9bf401c029378943b5854 libXext commit 7378d4bdbd33ed49ed6cfa5c4f73d7527982aab4 libfontenc commit 3acba630d8b57084f7e92c15732408711ed5137a libXinerama commit 6e1d1dc328ba8162bba2f4694e7f3c706a1491ff libXau commit 304a11be4727c5a7feeb2501e8e001466f8ce84e xkbcomp commit e3e6e938535532bfad175c1635256ab7fb3ac943 pixman commit 8487dfbcd056eff066939dc253fcf361b391592a xextproto commit 3f355f138d6df57e067458a20f47307883048adb randrproto commit e7526e6b5fe0966929cda10b2ded0258413744db glproto commit aacc7a51b6161c765b04524e0d2ab31e5e586834 mkfontscale commit f48de13423c7300f4da9f61993b624426b38ddc0 xwininfo commit ba0d1b0da21d2dbdd81098ed5778f3792b472e13 libXft commit c5e760a239afc62a1c75e0509868e35957c8df52 libXmu commit 2539e539eafdac88177c8ee30b043c5d52f017e4 libxtrans commit 0153d1670e4a1883e1bb6dd971435d6268eac5ba fontconfig commit 38acb08d9778ebad2bfc3407532adf8f2e8e667e mesa commit 78fc159d68becdf4c04d35e3d21917ae45b839ba --- xorg-server/hw/kdrive/ephyr/ephyr.c | 9 ++++++++- xorg-server/hw/kdrive/ephyr/hostx.c | 4 ++-- xorg-server/hw/kdrive/src/kdrive.c | 3 ++- xorg-server/hw/kdrive/src/kdrive.h | 1 + xorg-server/hw/kdrive/src/kinput.c | 10 ++++++---- xorg-server/hw/xfree86/modes/xf86Crtc.c | 3 +++ xorg-server/include/input.h | 12 ++++++------ xorg-server/mi/mieq.c | 2 +- xorg-server/test/Makefile.am | 4 ++-- 9 files changed, 31 insertions(+), 17 deletions(-) (limited to 'xorg-server') diff --git a/xorg-server/hw/kdrive/ephyr/ephyr.c b/xorg-server/hw/kdrive/ephyr/ephyr.c index 91e949d79..ef4b3210c 100644 --- a/xorg-server/hw/kdrive/ephyr/ephyr.c +++ b/xorg-server/hw/kdrive/ephyr/ephyr.c @@ -959,7 +959,14 @@ ephyrProcessMouseMotion(xcb_generic_event_t *xev) } EPHYR_LOG("final (x,y):(%d,%d)\n", x, y); #endif - KdEnqueuePointerEvent(ephyrMouse, mouseState, x, y, 0); + + /* convert coords into desktop-wide coordinates. + * fill_pointer_events will convert that back to + * per-screen coordinates where needed */ + x += screen->pScreen->x; + y += screen->pScreen->y; + + KdEnqueuePointerEvent(ephyrMouse, mouseState | KD_POINTER_DESKTOP, x, y, 0); } } diff --git a/xorg-server/hw/kdrive/ephyr/hostx.c b/xorg-server/hw/kdrive/ephyr/hostx.c index ee9ae455c..3e01a4770 100644 --- a/xorg-server/hw/kdrive/ephyr/hostx.c +++ b/xorg-server/hw/kdrive/ephyr/hostx.c @@ -304,8 +304,8 @@ hostx_init(void) | XCB_EVENT_MASK_STRUCTURE_NOTIFY; EPHYR_DBG("mark"); - - if ((HostX.conn = xcb_connect(NULL, &HostX.screen)) == NULL) { + HostX.conn = xcb_connect(NULL, &HostX.screen); + if (xcb_connection_has_error(HostX.conn)) { fprintf(stderr, "\nXephyr cannot open host display. Is DISPLAY set?\n"); exit(1); } diff --git a/xorg-server/hw/kdrive/src/kdrive.c b/xorg-server/hw/kdrive/src/kdrive.c index f8949bec3..382968420 100644 --- a/xorg-server/hw/kdrive/src/kdrive.c +++ b/xorg-server/hw/kdrive/src/kdrive.c @@ -328,7 +328,8 @@ KdParseScreen(KdScreenInfo * screen, const char *arg) screen->height = pixels; screen->height_mm = mm; } - if (delim != 'x' && delim != '@' && delim != 'X' && delim != 'Y') + if (delim != 'x' && delim != '@' && delim != 'X' && delim != 'Y' && + (delim != '\0' || i == 0)) return; } diff --git a/xorg-server/hw/kdrive/src/kdrive.h b/xorg-server/hw/kdrive/src/kdrive.h index d5d0799df..296d611ed 100644 --- a/xorg-server/hw/kdrive/src/kdrive.h +++ b/xorg-server/hw/kdrive/src/kdrive.h @@ -506,6 +506,7 @@ KdEnqueueKeyboardEvent(KdKeyboardInfo * ki, unsigned char scan_code, #define KD_BUTTON_4 0x08 #define KD_BUTTON_5 0x10 #define KD_BUTTON_8 0x80 +#define KD_POINTER_DESKTOP 0x40000000 #define KD_MOUSE_DELTA 0x80000000 void diff --git a/xorg-server/hw/kdrive/src/kinput.c b/xorg-server/hw/kdrive/src/kinput.c index d845830cc..a9a9fa583 100644 --- a/xorg-server/hw/kdrive/src/kinput.c +++ b/xorg-server/hw/kdrive/src/kinput.c @@ -1895,6 +1895,8 @@ KdEnqueuePointerEvent(KdPointerInfo * pi, unsigned long flags, int rx, int ry, } else { dixflags = POINTER_ABSOLUTE; + if (flags & KD_POINTER_DESKTOP) + dixflags |= POINTER_DESKTOP; if (x != pi->dixdev->last.valuators[0] || y != pi->dixdev->last.valuators[1]) _KdEnqueuePointerEvent(pi, MotionNotify, x, y, z, 0, dixflags, @@ -2028,25 +2030,25 @@ KdCursorOffScreen(ScreenPtr *ppScreen, int *x, int *y) dx = KdScreenOrigin(pNewScreen)->x - KdScreenOrigin(pScreen)->x; dy = KdScreenOrigin(pNewScreen)->y - KdScreenOrigin(pScreen)->y; if (*x < 0) { - if (dx <= 0 && -dx < best_x) { + if (dx < 0 && -dx < best_x) { best_x = -dx; n_best_x = n; } } else if (*x >= pScreen->width) { - if (dx >= 0 && dx < best_x) { + if (dx > 0 && dx < best_x) { best_x = dx; n_best_x = n; } } if (*y < 0) { - if (dy <= 0 && -dy < best_y) { + if (dy < 0 && -dy < best_y) { best_y = -dy; n_best_y = n; } } else if (*y >= pScreen->height) { - if (dy >= 0 && dy < best_y) { + if (dy > 0 && dy < best_y) { best_y = dy; n_best_y = n; } diff --git a/xorg-server/hw/xfree86/modes/xf86Crtc.c b/xorg-server/hw/xfree86/modes/xf86Crtc.c index 2a02c8507..a441fd16a 100644 --- a/xorg-server/hw/xfree86/modes/xf86Crtc.c +++ b/xorg-server/hw/xfree86/modes/xf86Crtc.c @@ -1863,6 +1863,9 @@ SetCompatOutput(xf86CrtcConfigPtr config) DisplayModePtr maxmode = NULL, testmode, mode; int o, compat = -1, count, mincount = 0; + if (config->num_output == 0) + return NULL; + /* Look for one that's definitely connected */ for (o = 0; o < config->num_output; o++) { test = config->output[o]; diff --git a/xorg-server/include/input.h b/xorg-server/include/input.h index 350dabad4..2d5e531ef 100644 --- a/xorg-server/include/input.h +++ b/xorg-server/include/input.h @@ -244,12 +244,12 @@ typedef struct _InputAttributes { #define KEY_POSTED 2 #define BUTTON_POSTED 2 -extern void set_key_down(DeviceIntPtr pDev, int key_code, int type); -extern void set_key_up(DeviceIntPtr pDev, int key_code, int type); -extern int key_is_down(DeviceIntPtr pDev, int key_code, int type); -extern void set_button_down(DeviceIntPtr pDev, int button, int type); -extern void set_button_up(DeviceIntPtr pDev, int button, int type); -extern int button_is_down(DeviceIntPtr pDev, int button, int type); +extern _X_EXPORT void set_key_down(DeviceIntPtr pDev, int key_code, int type); +extern _X_EXPORT void set_key_up(DeviceIntPtr pDev, int key_code, int type); +extern _X_EXPORT int key_is_down(DeviceIntPtr pDev, int key_code, int type); +extern _X_EXPORT void set_button_down(DeviceIntPtr pDev, int button, int type); +extern _X_EXPORT void set_button_up(DeviceIntPtr pDev, int button, int type); +extern _X_EXPORT int button_is_down(DeviceIntPtr pDev, int button, int type); extern void InitCoreDevices(void); extern void InitXTestDevices(void); diff --git a/xorg-server/mi/mieq.c b/xorg-server/mi/mieq.c index d7d73deb6..4c0748054 100644 --- a/xorg-server/mi/mieq.c +++ b/xorg-server/mi/mieq.c @@ -60,7 +60,7 @@ in this Software without prior written authorization from The Open Group. #endif /* Maximum size should be initial size multiplied by a power of 2 */ -#define QUEUE_INITIAL_SIZE 256 +#define QUEUE_INITIAL_SIZE 512 #define QUEUE_RESERVED_SIZE 64 #define QUEUE_MAXIMUM_SIZE 4096 #define QUEUE_DROP_BACKTRACE_FREQUENCY 100 diff --git a/xorg-server/test/Makefile.am b/xorg-server/test/Makefile.am index e59c412ee..2852bb3e0 100644 --- a/xorg-server/test/Makefile.am +++ b/xorg-server/test/Makefile.am @@ -1,11 +1,11 @@ if ENABLE_UNIT_TESTS SUBDIRS= . -noinst_PROGRAMS = list string touch +noinst_PROGRAMS = list string if XORG # Tests that require at least some DDX functions in order to fully link # For now, requires xf86 ddx, could be adjusted to use another SUBDIRS += xi2 -noinst_PROGRAMS += xkb input xtest misc fixes xfree86 hashtabletest os signal-logging +noinst_PROGRAMS += xkb input xtest misc fixes xfree86 hashtabletest os signal-logging touch endif check_LTLIBRARIES = libxservertest.la -- cgit v1.2.3