diff options
Diffstat (limited to 'xorg-server')
-rw-r--r-- | xorg-server/configure.ac | 3 | ||||
-rw-r--r-- | xorg-server/dix/events.c | 22 | ||||
-rw-r--r-- | xorg-server/dix/inpututils.c | 30 | ||||
-rw-r--r-- | xorg-server/hw/kdrive/ephyr/ephyrdriext.c | 2 | ||||
-rwxr-xr-x | xorg-server/hw/kdrive/ephyr/hostx.c | 2 | ||||
-rw-r--r-- | xorg-server/hw/xquartz/GL/visualConfigs.c | 2 | ||||
-rw-r--r-- | xorg-server/include/input.h | 6 |
7 files changed, 32 insertions, 35 deletions
diff --git a/xorg-server/configure.ac b/xorg-server/configure.ac index 3df579a00..67ef3c24a 100644 --- a/xorg-server/configure.ac +++ b/xorg-server/configure.ac @@ -1035,12 +1035,14 @@ AM_CONDITIONAL(SCREENSAVER, [test "x$SCREENSAVER" = xyes]) if test "x$SCREENSAVER" = xyes; then AC_DEFINE(SCREENSAVER, 1, [Support MIT-SCREEN-SAVER extension]) REQUIRED_MODULES="$REQUIRED_MODULES $SCRNSAVERPROTO" + SDK_REQUIRED_MODULES="$SDK_REQUIRED_MODULES $SCRNSAVERPROTO" fi AM_CONDITIONAL(RES, [test "x$RES" = xyes]) if test "x$RES" = xyes; then AC_DEFINE(RES, 1, [Support X resource extension]) REQUIRED_MODULES="$REQUIRED_MODULES $RESOURCEPROTO" + SDK_REQUIRED_MODULES="$SDK_REQUIRED_MODULES $RESOURCEPROTO" fi # The XRes extension may support client ID tracking only if it has @@ -1184,6 +1186,7 @@ AM_CONDITIONAL(XF86BIGFONT, [test "x$XF86BIGFONT" = xyes]) if test "x$XF86BIGFONT" = xyes; then AC_DEFINE(XF86BIGFONT, 1, [Support XF86 Big font extension]) REQUIRED_MODULES="$REQUIRED_MODULES $BIGFONTPROTO" + SDK_REQUIRED_MODULES="$SDK_REQUIRED_MODULES $BIGFONTPROTO" fi AM_CONDITIONAL(DPMSExtension, [test "x$DPMSExtension" = xyes]) diff --git a/xorg-server/dix/events.c b/xorg-server/dix/events.c index cfaf1ae3c..191a49377 100644 --- a/xorg-server/dix/events.c +++ b/xorg-server/dix/events.c @@ -4146,6 +4146,9 @@ DeliverOneGrabbedEvent(InternalEvent *event, DeviceIntPtr dev, GrabPtr grab = grabinfo->grab; Mask filter; + if (grab->grabtype != level) + return 0; + switch (level) { case XI2: rc = EventToXI2(event, &xE); @@ -4257,22 +4260,17 @@ DeliverGrabbedEvent(InternalEvent *event, DeviceIntPtr thisDev, sendCore = (IsMaster(thisDev) && thisDev->coreEvents); /* try core event */ - if (sendCore && grab->grabtype == CORE) { - deliveries = DeliverOneGrabbedEvent(event, thisDev, CORE); - } - - if (!deliveries) { - deliveries = DeliverOneGrabbedEvent(event, thisDev, XI2); - } - - if (!deliveries) { - deliveries = DeliverOneGrabbedEvent(event, thisDev, XI); - } + if ((sendCore && grab->grabtype == CORE) || grab->grabtype != CORE) + deliveries = DeliverOneGrabbedEvent(event, thisDev, grab->grabtype); if (deliveries && (event->any.type == ET_Motion)) thisDev->valuator->motionHintWindow = grab->window; } - if (deliveries && !deactivateGrab && event->any.type != ET_Motion) { + if (deliveries && !deactivateGrab && + (event->any.type == ET_KeyPress || + event->any.type == ET_KeyRelease || + event->any.type == ET_ButtonPress || + event->any.type == ET_ButtonRelease)) { switch (grabinfo->sync.state) { case FREEZE_BOTH_NEXT_EVENT: dev = GetPairedDevice(thisDev); diff --git a/xorg-server/dix/inpututils.c b/xorg-server/dix/inpututils.c index c27799030..3098cdb0b 100644 --- a/xorg-server/dix/inpututils.c +++ b/xorg-server/dix/inpututils.c @@ -960,8 +960,15 @@ XI2Mask * xi2mask_new_with_size(size_t nmasks, size_t size) { int i; + int alloc_size; + unsigned char *cursor; + XI2Mask *mask; - XI2Mask *mask = calloc(1, sizeof(*mask)); + alloc_size = sizeof(struct _XI2Mask) + + nmasks * sizeof(unsigned char *) + + nmasks * size; + + mask = calloc(1, alloc_size); if (!mask) return NULL; @@ -969,20 +976,14 @@ xi2mask_new_with_size(size_t nmasks, size_t size) mask->nmasks = nmasks; mask->mask_size = size; - mask->masks = calloc(mask->nmasks, sizeof(*mask->masks)); - if (!mask->masks) - goto unwind; + mask->masks = (unsigned char **)(mask + 1); + cursor = (unsigned char *)(mask + 1) + nmasks * sizeof(unsigned char *); - for (i = 0; i < mask->nmasks; i++) { - mask->masks[i] = calloc(1, mask->mask_size); - if (!mask->masks[i]) - goto unwind; + for (i = 0; i < nmasks; i++) { + mask->masks[i] = cursor; + cursor += size; } return mask; - - unwind: - xi2mask_free(&mask); - return NULL; } /** @@ -1003,14 +1004,9 @@ xi2mask_new(void) void xi2mask_free(XI2Mask **mask) { - int i; - if (!(*mask)) return; - for (i = 0; (*mask)->masks && i < (*mask)->nmasks; i++) - free((*mask)->masks[i]); - free((*mask)->masks); free((*mask)); *mask = NULL; } diff --git a/xorg-server/hw/kdrive/ephyr/ephyrdriext.c b/xorg-server/hw/kdrive/ephyr/ephyrdriext.c index 13df60a5b..e2b33db03 100644 --- a/xorg-server/hw/kdrive/ephyr/ephyrdriext.c +++ b/xorg-server/hw/kdrive/ephyr/ephyrdriext.c @@ -343,7 +343,7 @@ ephyrDRIClipNotify(WindowPtr a_win, int a_x, int a_y) free(rects); rects = NULL; - EPHYR_LOG("leave. is_ok:%d\n", is_ok); + EPHYR_LOG("leave.\n"); /*do cleanup here */ } diff --git a/xorg-server/hw/kdrive/ephyr/hostx.c b/xorg-server/hw/kdrive/ephyr/hostx.c index b10168186..97c7168a0 100755 --- a/xorg-server/hw/kdrive/ephyr/hostx.c +++ b/xorg-server/hw/kdrive/ephyr/hostx.c @@ -28,6 +28,7 @@ #endif #include "hostx.h" +#include "input.h" #include <stdlib.h> #include <stdio.h> @@ -442,6 +443,7 @@ hostx_init(void) xcb_change_gc(HostX.conn, HostX.gc, XCB_GC_FOREGROUND, &pixel); if (!hostx_want_host_cursor ()) { + CursorVisible = TRUE; /* Ditch the cursor, we provide our 'own' */ cursor_pxm = xcb_generate_id(HostX.conn); xcb_create_pixmap(HostX.conn, 1, cursor_pxm, HostX.winroot, 1, 1); diff --git a/xorg-server/hw/xquartz/GL/visualConfigs.c b/xorg-server/hw/xquartz/GL/visualConfigs.c index 92142cb0d..687bf80d8 100644 --- a/xorg-server/hw/xquartz/GL/visualConfigs.c +++ b/xorg-server/hw/xquartz/GL/visualConfigs.c @@ -140,8 +140,6 @@ __GLXconfig *__glXAquaCreateVisualConfigs(int *numConfigsPtr, int screenNumber) c->visualType = GLX_TRUE_COLOR; c->next = c + 1; - c->screen = screenNumber; - c->level = 0; c->indexBits = 0; diff --git a/xorg-server/include/input.h b/xorg-server/include/input.h index f913e34ac..1fa091666 100644 --- a/xorg-server/include/input.h +++ b/xorg-server/include/input.h @@ -113,9 +113,9 @@ SOFTWARE. #endif enum InputLevel { - CORE, - XI, - XI2, + CORE = 1, + XI = 2, + XI2 = 3, }; typedef unsigned long Leds; |