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 | ||||
-rw-r--r-- | xorg-server/hw/kdrive/ephyr/hostx.c | 2 | ||||
-rw-r--r-- | xorg-server/hw/xquartz/GL/visualConfigs.c | 2 | ||||
-rw-r--r-- | xorg-server/hw/xwin/glx/indirect.c | 6 | ||||
-rw-r--r-- | xorg-server/include/input.h | 6 | ||||
-rw-r--r-- | xorg-server/miext/rootless/rootlessWindow.c | 6 |
9 files changed, 35 insertions, 44 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 086601a69..7a1b1c3c6 100644 --- a/xorg-server/dix/events.c +++ b/xorg-server/dix/events.c @@ -4142,6 +4142,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); @@ -4253,22 +4256,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 9e38e1742..a10a7c761 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 d98557147..5fa33b9db 100644 --- 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> @@ -436,6 +437,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/hw/xwin/glx/indirect.c b/xorg-server/hw/xwin/glx/indirect.c index 02f9b0e75..b79f023cd 100644 --- a/xorg-server/hw/xwin/glx/indirect.c +++ b/xorg-server/hw/xwin/glx/indirect.c @@ -2014,9 +2014,6 @@ glxWinCreateConfigs(HDC hdc, glxWinScreen * screen) else c->base.swapMethod = GLX_SWAP_UNDEFINED_OML; - /* EXT_import_context */ - c->base.screen = screen->base.pScreen->myNum; - /* EXT_texture_from_pixmap */ c->base.bindToTextureRgb = -1; c->base.bindToTextureRgba = -1; @@ -2393,9 +2390,6 @@ glxWinCreateConfigsExt(HDC hdc, glxWinScreen * screen) c->base.swapMethod = GLX_SWAP_UNDEFINED_OML; } - /* EXT_import_context */ - c->base.screen = screen->base.pScreen->myNum; - /* EXT_texture_from_pixmap */ /* Mesa's DRI configs always have bindToTextureRgb/Rgba TRUE (see driCreateConfigs(), so setting diff --git a/xorg-server/include/input.h b/xorg-server/include/input.h index 1745e9ade..350dabad4 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; diff --git a/xorg-server/miext/rootless/rootlessWindow.c b/xorg-server/miext/rootless/rootlessWindow.c index cfcb6e558..7e3c28130 100644 --- a/xorg-server/miext/rootless/rootlessWindow.c +++ b/xorg-server/miext/rootless/rootlessWindow.c @@ -684,7 +684,7 @@ RootlessResizeCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, if (gResizeDeathCount == 1) { /* Simple case, we only have a single source pixmap. */ - fbCopyRegion(&gResizeDeathPix[0]->drawable, + miCopyRegion(&gResizeDeathPix[0]->drawable, &pScreen->GetWindowPixmap(pWin)->drawable, 0, &rgnDst, dx, dy, fbCopyWindowProc, 0, 0); } @@ -700,7 +700,7 @@ RootlessResizeCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionNull(&clipped); RegionIntersect(&rgnDst, &clip, &clipped); - fbCopyRegion(&gResizeDeathPix[i]->drawable, + miCopyRegion(&gResizeDeathPix[i]->drawable, &pScreen->GetWindowPixmap(pWin)->drawable, 0, &clipped, dx, dy, fbCopyWindowProc, 0, 0); @@ -778,7 +778,7 @@ RootlessCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc) else { RootlessStartDrawing(pWin); - fbCopyRegion((DrawablePtr) pWin, (DrawablePtr) pWin, + miCopyRegion((DrawablePtr) pWin, (DrawablePtr) pWin, 0, &rgnDst, dx, dy, fbCopyWindowProc, 0, 0); /* prgnSrc has been translated to dst position */ |