Index: src/video/win32_v.cpp =================================================================== --- src/video/win32_v.cpp (revision 26360) +++ src/video/win32_v.cpp (working copy) @@ -195,7 +195,6 @@ /* redraw screen */ if (_wnd.running) { - _screen.dst_ptr = _wnd.buffer_bits; UpdateWindows(); } } @@ -211,7 +210,6 @@ HBITMAP old_bmp; HPALETTE old_palette; - _screen.dst_ptr = _wnd.buffer_bits; UpdateWindows(); dc = GetDC(_wnd.main_wnd); @@ -755,8 +753,6 @@ if (!_cursor.in_window) { _cursor.in_window = true; SetTimer(hwnd, TID_POLLMOUSE, MOUSE_POLL_DELAY, (TIMERPROC)TrackMouseTimerProc); - - DrawMouseCursor(); } if (_cursor.fix_at) { @@ -1066,9 +1062,6 @@ if (!force && w == _screen.width && h == _screen.height) return false; - _screen.width = w; - _screen.pitch = (bpp == 8) ? Align(w, 4) : w; - _screen.height = h; bi = (BITMAPINFO*)alloca(sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * 256); memset(bi, 0, sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * 256); bi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER); @@ -1087,6 +1080,11 @@ if (_wnd.dib_sect == NULL) usererror("CreateDIBSection failed"); ReleaseDC(0, dc); + _screen.width = w; + _screen.pitch = (bpp == 8) ? Align(w, 4) : w; + _screen.height = h; + _screen.dst_ptr = _wnd.buffer_bits; + return true; } @@ -1300,7 +1298,6 @@ if (_force_full_redraw) MarkWholeScreenDirty(); - _screen.dst_ptr = _wnd.buffer_bits; UpdateWindows(); CheckPaletteAnim(); } else { @@ -1314,7 +1311,6 @@ Sleep(1); if (_draw_threaded) _draw_mutex->BeginCritical(); - _screen.dst_ptr = _wnd.buffer_bits; NetworkDrawChatMessage(); DrawMouseCursor(); }