diff options
Diffstat (limited to 'src/ast_cursor.c')
-rw-r--r-- | src/ast_cursor.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/ast_cursor.c b/src/ast_cursor.c index 6b6cb94..8c9757a 100644 --- a/src/ast_cursor.c +++ b/src/ast_cursor.c @@ -203,6 +203,10 @@ ASTSetCursorColors(ScrnInfoPtr pScrn, int bg, int fg) pAST->HWCInfo.fg = (fg & 0x0F) | (((fg>>8) & 0x0F) << 4) | (((fg>>16) & 0x0F) << 8); pAST->HWCInfo.bg = (bg & 0x0F) | (((bg>>8) & 0x0F) << 4) | (((bg>>16) & 0x0F) << 8); + + /* Fixed xorg bugzilla #20609, ycchen@031209 */ + ASTLoadCursorImage(pScrn, pAST->HWCInfo.cursorpattern); + } static void @@ -223,6 +227,10 @@ ASTLoadCursorImage(ScrnInfoPtr pScrn, UCHAR *src) pAST->HWCInfo.offset_x = MAX_HWC_WIDTH - pAST->HWCInfo.width; pAST->HWCInfo.offset_y = MAX_HWC_HEIGHT - pAST->HWCInfo.height; + /* copy to hwc info */ + for (i=0; i< MAX_HWC_WIDTH*MAX_HWC_HEIGHT/4; i+=4) + *(ULONG *) (pAST->HWCInfo.cursorpattern + i) = *(ULONG *) (src + i); + /* copy cursor image to cache */ pjSrcXor = src; pjSrcAnd = src + (MAX_HWC_WIDTH*MAX_HWC_HEIGHT/8); |