aboutsummaryrefslogtreecommitdiff
path: root/xorg-server
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server')
-rw-r--r--xorg-server/configure.ac3
-rw-r--r--xorg-server/dix/events.c22
-rw-r--r--xorg-server/dix/inpututils.c30
-rw-r--r--xorg-server/hw/kdrive/ephyr/ephyrdriext.c2
-rwxr-xr-xxorg-server/hw/kdrive/ephyr/hostx.c2
-rw-r--r--xorg-server/hw/xquartz/GL/visualConfigs.c2
-rw-r--r--xorg-server/include/input.h6
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;