xserver: Branch 'orib-soc-2006'
Ori Bernstein
orib at kemper.freedesktop.org
Sat Jul 1 06:25:18 EEST 2006
hw/xnest/Display.c | 4 ++--
hw/xnest/Events.c | 32 +++++++-------------------------
hw/xnest/GCOps.c | 2 ++
hw/xnest/Window.c | 2 +-
4 files changed, 12 insertions(+), 28 deletions(-)
New commits:
diff-tree 912b65e4b818dadb09dc4ee1738066216c4b2e0b (from 130d2c58308b1ccc8dd600887379dba96ab938b0)
Author: Ori Bernstein <rand.chars at gmail.com>
Date: Fri Jun 30 23:26:56 2006 -0500
Fixed a few crashes and other bugs
diff --git a/hw/xnest/Display.c b/hw/xnest/Display.c
index e544b9b..a7ded9b 100644
--- a/hw/xnest/Display.c
+++ b/hw/xnest/Display.c
@@ -210,10 +210,10 @@ void xnestOpenDisplay(int argc, char *ar
if (xnestParentWindow.xid == 0) {
if (!(xnestUserGeometry & WidthValue))
- xnestWidth = 3 * screen->width_in_pixels / 4;
+ xnestWidth = screen->width_in_pixels;
if (!(xnestUserGeometry & HeightValue))
- xnestHeight = 3 * screen->height_in_pixels / 4;
+ xnestHeight = screen->height_in_pixels;
}
if (!xnestUserBorderWidth)
diff --git a/hw/xnest/Events.c b/hw/xnest/Events.c
index 2e0bd3b..89e3f0e 100644
--- a/hw/xnest/Events.c
+++ b/hw/xnest/Events.c
@@ -96,7 +96,7 @@ void xnestHandleEvent(XCBGenericEvent *e
WindowPtr pSib;
RegionRec Rgn;
BoxRec Box;
-
+ lastEventTime = GetTimeInMillis();
switch (e->response_type & ~0x80) {
case XCBKeyPress:
@@ -219,15 +219,16 @@ void xnestHandleEvent(XCBGenericEvent *e
rev = (XCBResizeRequestEvent *)e;
pWin = xnestWindowPtr(rev->window);
rev->window = xnestWindow(xnestWindowPtr(rev->window));
- memcpy(&ev, cev, sizeof(XCBGenericEvent));
+ memcpy(&ev, rev, sizeof(XCBGenericEvent));
if (pWin) {
DeliverEvents(pWin, &ev, 1, NULL);
+ //miSlideAndSizeWindow(pWin, pWin->drawable.x, pWin->drawable.y, rev->width, rev->height, NULL);
}
break;
case XCBConfigureNotify:
cev = (XCBConfigureNotifyEvent *)e;
- pWin = xnestWindowPtr(cev->event);
+ pWin = xnestWindowPtr(cev->window);
cev->event = xnestWindow(xnestWindowPtr(cev->event));
cev->window = xnestWindow(xnestWindowPtr(cev->window));
pSib = xnestWindowPtr(cev->above_sibling);
@@ -236,13 +237,13 @@ void xnestHandleEvent(XCBGenericEvent *e
memcpy(&ev, cev, sizeof(XCBGenericEvent));
if (pWin) {
DeliverEvents(pWin, &ev, 1, NULL);
+ //miSlideAndSizeWindow(pWin, cev->x, cev->y, cev->width, cev->height, pSib);
}
break;
/*
pWin = xnestWindowPtr(cev->event);
pSib = xnestWindowPtr(cev->above_sibling);
if (pWin)
- miSlideAndSizeWindow(pWin, cev->x, cev->y, cev->width, cev->height, pSib);
break;
*/
case XCBNoExposure:
@@ -253,7 +254,7 @@ void xnestHandleEvent(XCBGenericEvent *e
case XCBMapNotify:
case XCBReparentNotify:
case XCBUnmapNotify:
- break;
+ // break;
default:
ErrorF("****xnest warning: unhandled event %d\n", e->response_type & ~0x80);
@@ -275,26 +276,7 @@ void xnestCollectEvents()
if (!e->response_type) {
err = (XCBGenericError *)e;
ErrorF("****** File: %s Error: %d, Sequence %d\n", __FILE__, err->error_code, err->sequence);
- switch(err->error_code){
- case XCBMatch:
- re = (XCBRequestError *)err;
- ErrorF("XCBMatch: Bad Value %x (Decimal %d)\n", re->bad_value, re->bad_value);
- break;
- case XCBIDChoice:
- ide = (XCBIDChoiceError *)err;
- ErrorF("XCBIDChoice: Bad Value %x (Decimal %d)\n", ide->bad_value, ide->bad_value);
- break;
- case XCBFont:
- fe = (XCBFontError *)err;
- ErrorF("XCBFont: Bad Value %x (Decimal %d)\n", fe->bad_value, fe->bad_value);
- break;
- case XCBWindow:
- we = (XCBWindowError *)err;
- ErrorF("XCBWindow: Bad Value %x (Decimal %d)\n", we->bad_value, we->bad_value);
- break;
- default:
- break;
- }
+
} else {
ErrorF("Handling event %x(%d) serial %d\n", e->response_type, e->response_type, e->sequence);
xnestHandleEvent(e);
diff --git a/hw/xnest/GCOps.c b/hw/xnest/GCOps.c
index dbb3116..362ed1e 100644
--- a/hw/xnest/GCOps.c
+++ b/hw/xnest/GCOps.c
@@ -145,6 +145,8 @@ static RegionPtr xnestBitBlitHelper(GCPt
pending = True;
while (pending) {
event = XCBPollForEvent(xnestConnection, &err);
+ if (!event)
+ break;
switch (event->response_type) {
case XCBNoExposure:
pending = False;
diff --git a/hw/xnest/Window.c b/hw/xnest/Window.c
index 307dee0..574ba8d 100644
--- a/hw/xnest/Window.c
+++ b/hw/xnest/Window.c
@@ -97,7 +97,7 @@ Bool xnestCreateWindow(WindowPtr pWin)
}
else {
mask = XCBCWEventMask | XCBCWBackingStore;
- param.event_mask = (1<<25)-1;
+ param.event_mask = ((1<<25)-1) & ~(XCBEventMaskSubstructureRedirect|XCBEventMaskPointerMotionHint|XCBEventMaskResizeRedirect);
/*XCBEventMaskExposure|XCBEventMaskKeyPress|XCBEventMaskKeyRelease|XCBEventMaskButtonPress
|XCBEventMaskButtonRelease|XCBEventMaskEnterWindow|XCBEventMaskLeaveWindow|XCBEventMaskPointerMotion
|XCBEventMaskFocusChange|XCBEventMaskStructureNotify;*/
More information about the xorg-commit
mailing list