// Copyright 2002 Adam Megacz, see the COPYING file for licensing [LGPL]
+#include "GCJ.cc"
+
+// we have to do this because the jpeg libraries use the symbol 'INT32'
+#define INT32 WIN32_INT32
// this has to precede the others so we don't get collisions on min/max
#include <org/xwt/Box.h>
void org::xwt::plat::Win32$Win32DoubleBuffer::drawPicture(org::xwt::Picture* source0,
jint dx1, jint dy1, jint dx2, jint dy2,
jint sx1, jint sy1, jint sx2, jint sy2) {
-
org::xwt::plat::Win32$Win32Picture* source = (org::xwt::plat::Win32$Win32Picture*)source0;
if (source->hasalpha) {
}
void org::xwt::plat::Win32$Win32Surface::blit(org::xwt::DoubleBuffer* s, jint sx, jint sy, jint dx, jint dy, jint dx2, jint dy2) {
+ // we create the DC lazily to get around some strange race condition in WinXP
+ if (hdc == 0) hdc = (jint)GetDC((HWND)hwnd);
BitBlt((HDC)hdc, dx, dy, dx2 - dx, dy2 - dy, (HDC)(((org::xwt::plat::Win32$Win32DoubleBuffer*)s)->hdc), sx, sy, SRCCOPY);
}
// GC_enable_incremental();
ShowWindow ((HWND)hwnd, SW_SHOWDEFAULT);
- hdc = (jint)GetDC((HWND)hwnd);
}
void org::xwt::plat::Win32$Win32Surface::finalize() { /* DeleteObject((void*)hwnd); */ }
int icon_width = GetSystemMetrics(SM_CXSMICON);
int icon_height = GetSystemMetrics(SM_CYSMICON);
+ // we create the DC lazily to get around some strange race condition in WinXP
+ if (hdc == 0) hdc = (jint)GetDC((HWND)hwnd);
+
// create the bitmap
HBITMAP bit = CreateCompatibleBitmap((HDC)hdc, icon_width, icon_height);
HDC memdc = CreateCompatibleDC((HDC)hdc);
addwidth = (window_rect.right - window_rect.left) - (client_rect.right - client_rect.left);
addheight = (window_rect.bottom - window_rect.top) - (client_rect.bottom - client_rect.top);
mmi = (MINMAXINFO*)lParam;
- mmi->ptMinTrackSize.x = ((uint32_t)root->dmin(0)) + addwidth;
- mmi->ptMinTrackSize.y = ((uint32_t)root->dmin(1)) + addheight;
- mmi->ptMaxTrackSize.x = min(org::xwt::plat::Win32::getScreenWidth(), ((uint32_t)root->dmax(0)) + addwidth);
- mmi->ptMaxTrackSize.y = min(org::xwt::plat::Win32::getScreenHeight(), ((uint32_t)root->dmax(1)) + addheight);
+ mmi->ptMinTrackSize.x = ((uint32_t)root->minwidth) + addwidth;
+ mmi->ptMinTrackSize.y = ((uint32_t)root->minheight) + addheight;
+ mmi->ptMaxTrackSize.x = min(org::xwt::plat::Win32::getScreenWidth(), ((uint32_t)root->maxwidth) + addwidth);
+ mmi->ptMaxTrackSize.y = min(org::xwt::plat::Win32::getScreenHeight(), ((uint32_t)root->maxheight) + addheight);
return 0;
case WM_PAINT: