From f16de0fb8f2ebbdd9cff066b6149e3ad71578976 Mon Sep 17 00:00:00 2001 From: Marcus Glocker Date: Sun, 6 Sep 2009 10:36:05 +0000 Subject: Fix udl_copycols overlay copy problem by copying area to off-screen first (same as in udl_copyrows). --- sys/dev/usb/udl.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'sys') diff --git a/sys/dev/usb/udl.c b/sys/dev/usb/udl.c index 3e4f680e78e..0762e35b97c 100644 --- a/sys/dev/usb/udl.c +++ b/sys/dev/usb/udl.c @@ -1,4 +1,4 @@ -/* $OpenBSD: udl.c,v 1.31 2009/09/05 20:35:30 mglocker Exp $ */ +/* $OpenBSD: udl.c,v 1.32 2009/09/06 10:36:04 mglocker Exp $ */ /* * Copyright (c) 2009 Marcus Glocker @@ -574,7 +574,11 @@ udl_copycols(void *cookie, int row, int src, int dst, int num) cx = num * ri->ri_font->fontwidth; cy = ri->ri_font->fontheight; - (sc->udl_fb_block_copy)(sc, sx, sy, dx, dy, cx, cy); + /* copy row block to off-screen first to fix overlay-copy problem */ + (sc->udl_fb_block_copy)(sc, sx, sy, 0, sc->sc_ri.ri_emuheight, cx, cy); + + /* copy row block back from off-screen now */ + (sc->udl_fb_block_copy)(sc, 0, sc->sc_ri.ri_emuheight, dx, dy, cx, cy); error = udl_cmd_send_async(sc); if (error != USBD_NORMAL_COMPLETION) { -- cgit v1.2.3