console: clip update rectangle

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
Gerd Hoffmann 2012-12-14 08:54:25 +01:00 committed by Blue Swirl
parent bc210eb163
commit 4b4496dbcc

View File

@ -229,6 +229,16 @@ static inline void unregister_displaychangelistener(DisplayState *ds,
static inline void dpy_gfx_update(DisplayState *s, int x, int y, int w, int h) static inline void dpy_gfx_update(DisplayState *s, int x, int y, int w, int h)
{ {
struct DisplayChangeListener *dcl; struct DisplayChangeListener *dcl;
int width = pixman_image_get_width(s->surface->image);
int height = pixman_image_get_height(s->surface->image);
x = MAX(x, 0);
y = MAX(y, 0);
x = MIN(x, width);
y = MIN(y, height);
w = MIN(w, width - x);
h = MIN(h, height - y);
QLIST_FOREACH(dcl, &s->listeners, next) { QLIST_FOREACH(dcl, &s->listeners, next) {
if (dcl->dpy_gfx_update) { if (dcl->dpy_gfx_update) {
dcl->dpy_gfx_update(s, x, y, w, h); dcl->dpy_gfx_update(s, x, y, w, h);