add expose event compression

git-svn-id: svn://10.0.0.236/branches/SUPERWIN@52854 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
blizzard%redhat.com
1999-11-05 15:58:56 +00:00
parent 2cff6771cb
commit 72255234ea

View File

@@ -1733,14 +1733,24 @@ void
nsWindow::HandleXlibExposeEvent(XEvent *event)
{
nsPaintEvent pevent;
pevent.rect = new nsRect(event->xexpose.x, event->xexpose.y,
event->xexpose.width, event->xexpose.height);
if (event->xexpose.count != 0) {
XEvent extra_event;
do {
XWindowEvent(event->xany.display, event->xany.window, ExposureMask, (XEvent *)&extra_event);
pevent.rect->UnionRect(*pevent.rect, nsRect(extra_event.xexpose.x, extra_event.xexpose.y,
extra_event.xexpose.width, extra_event.xexpose.height));
} while (extra_event.xexpose.count > 0);
}
pevent.message = NS_PAINT;
pevent.widget = this;
pevent.eventStructType = NS_PAINT_EVENT;
pevent.point.x = event->xexpose.x;
pevent.point.y = event->xexpose.y;
pevent.rect = new nsRect(event->xexpose.x, event->xexpose.y,
event->xexpose.width, event->xexpose.height);
/* XXX fix this */
pevent.time = 0;
AddRef();