Author: fireball
Date: Sat Feb 6 11:18:44 2010
New Revision: 45456
URL:
http://svn.reactos.org/svn/reactos?rev=45456&view=rev
Log:
- Sync up to Wine-1.1.38.
Modified:
branches/arwinss/reactos/dll/win32/gdi32/ (props changed)
branches/arwinss/reactos/dll/win32/gdi32/gdi32.spec
branches/arwinss/reactos/dll/win32/gdi32/gdiobj.c
branches/arwinss/reactos/dll/win32/gdi32/mfdrv/objects.c
branches/arwinss/reactos/dll/win32/user32/ (props changed)
branches/arwinss/reactos/dll/win32/user32/class.c
branches/arwinss/reactos/dll/win32/user32/combo.c
branches/arwinss/reactos/dll/win32/user32/controls.h
branches/arwinss/reactos/dll/win32/user32/cursoricon.c
branches/arwinss/reactos/dll/win32/user32/defwnd.c
branches/arwinss/reactos/dll/win32/user32/dialog.c
branches/arwinss/reactos/dll/win32/user32/hook.c
branches/arwinss/reactos/dll/win32/user32/message.c
branches/arwinss/reactos/dll/win32/user32/misc.c
branches/arwinss/reactos/dll/win32/user32/msgbox.c
branches/arwinss/reactos/dll/win32/user32/property.c
branches/arwinss/reactos/dll/win32/user32/resource.c
branches/arwinss/reactos/dll/win32/user32/win.c
branches/arwinss/reactos/dll/win32/user32/winproc.c
branches/arwinss/reactos/dll/win32/winex11.drv/ (props changed)
branches/arwinss/reactos/dll/win32/winex11.drv/window.c
Propchange: branches/arwinss/reactos/dll/win32/gdi32/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Feb 6 11:18:44 2010
@@ -1,3 +1,3 @@
/branches/ros-amd64-bringup/reactos/dll/win32/gdi32:35746,35789,36614,36930,38148,38151,38265,38268,39333,39345,40991,41000,41027-41028,41050,41052,41082-41086,41549,43080
/trunk/reactos/dll/win32/gdi32:42000-44999,45097-45099,45319
-/vendor/wine/dlls/gdi32/current:43136,43149,43398,43708,44151,44715,45044,45206
+/vendor/wine/dlls/gdi32/current:43136,43149,43398,43708,44151,44715,45044,45206,45455
Modified: branches/arwinss/reactos/dll/win32/gdi32/gdi32.spec
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/gdi32…
==============================================================================
--- branches/arwinss/reactos/dll/win32/gdi32/gdi32.spec [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/gdi32/gdi32.spec [iso-8859-1] Sat Feb 6 11:18:44
2010
@@ -319,7 +319,7 @@
@ stdcall GdiGetSpoolMessage(ptr long ptr long)
@ stdcall GdiGradientFill(long ptr long ptr long long)
@ stdcall GdiInitSpool()
-@ stub GdiInitializeLanguagePack
+@ stdcall GdiInitializeLanguagePack(long)
@ stdcall GdiIsMetaFileDC(long)
@ stdcall GdiIsMetaPrintDC(long)
@ stdcall GdiIsPlayMetafileDC(long)
Modified: branches/arwinss/reactos/dll/win32/gdi32/gdiobj.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/gdi32…
==============================================================================
--- branches/arwinss/reactos/dll/win32/gdi32/gdiobj.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/gdi32/gdiobj.c [iso-8859-1] Sat Feb 6 11:18:44
2010
@@ -1167,6 +1167,14 @@
/* Nothing to do */
}
+/***********************************************************************
+ * GdiInitializeLanguagePack (GDI32.@)
+ */
+DWORD WINAPI GdiInitializeLanguagePack( DWORD arg )
+{
+ FIXME("stub\n");
+ return 0;
+}
/***********************************************************************
* GdiFlush (GDI32.@)
@@ -1202,7 +1210,7 @@
*/
BOOL WINAPI GetColorAdjustment(HDC hdc, LPCOLORADJUSTMENT lpca)
{
- FIXME("GetColorAdjustment, stub\n");
+ FIXME("stub\n");
return 0;
}
@@ -1231,6 +1239,6 @@
*/
BOOL WINAPI SetColorAdjustment(HDC hdc, const COLORADJUSTMENT* lpca)
{
- FIXME("SetColorAdjustment, stub\n");
+ FIXME("stub\n");
return 0;
}
Modified: branches/arwinss/reactos/dll/win32/gdi32/mfdrv/objects.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/gdi32…
==============================================================================
--- branches/arwinss/reactos/dll/win32/gdi32/mfdrv/objects.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/gdi32/mfdrv/objects.c [iso-8859-1] Sat Feb 6
11:18:44 2010
@@ -365,6 +365,7 @@
char buffer[sizeof(METARECORD) - 2 + sizeof(LOGFONT16)];
METARECORD *mr = (METARECORD *)&buffer;
LOGFONT16 *font16;
+ INT written;
mr->rdSize = (sizeof(METARECORD) + sizeof(LOGFONT16) - 2) / 2;
mr->rdFunction = META_CREATEFONTINDIRECT;
@@ -383,8 +384,9 @@
font16->lfClipPrecision = logfont->lfClipPrecision;
font16->lfQuality = logfont->lfQuality;
font16->lfPitchAndFamily = logfont->lfPitchAndFamily;
- WideCharToMultiByte( CP_ACP, 0, logfont->lfFaceName, -1, font16->lfFaceName,
LF_FACESIZE, NULL, NULL );
- font16->lfFaceName[LF_FACESIZE-1] = 0;
+ written = WideCharToMultiByte( CP_ACP, 0, logfont->lfFaceName, -1,
font16->lfFaceName, LF_FACESIZE - 1, NULL, NULL );
+ /* Zero pad the facename buffer, so that we don't write uninitialized data to
disk */
+ memset(font16->lfFaceName + written, 0, LF_FACESIZE - written);
if (!(MFDRV_WriteRecord( dev, mr, mr->rdSize * 2)))
return 0;
Propchange: branches/arwinss/reactos/dll/win32/user32/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Feb 6 11:18:44 2010
@@ -1,3 +1,3 @@
/branches/ros-amd64-bringup/reactos/dll/win32/user32:35746,35789,36614,36930,38148,38151,38265,38268,39333,39345,40991,41000,41027-41028,41050,41052,41082-41086,41549,43080
/trunk/reactos/dll/win32/user32:42000-44999,45097-45099,45319
-/vendor/wine/dlls/user32/current:43136,43149,43398,43708,44151,44715,45044,45206
+/vendor/wine/dlls/user32/current:43136,43149,43398,43708,44151,44715,45044,45206,45455
Modified: branches/arwinss/reactos/dll/win32/user32/class.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/class.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/user32/class.c [iso-8859-1] Sat Feb 6 11:18:44
2010
@@ -176,7 +176,7 @@
*/
static inline LPSTR CLASS_GetMenuNameA( CLASS *classPtr )
{
- if (!HIWORD(classPtr->menuName)) return (LPSTR)classPtr->menuName;
+ if (IS_INTRESOURCE(classPtr->menuName)) return (LPSTR)classPtr->menuName;
return (LPSTR)(classPtr->menuName + strlenW(classPtr->menuName) + 1);
}
@@ -199,8 +199,8 @@
*/
static void CLASS_SetMenuNameA( CLASS *classPtr, LPCSTR name )
{
- if (HIWORD(classPtr->menuName)) HeapFree( GetProcessHeap(), 0,
classPtr->menuName );
- if (HIWORD(name))
+ if (!IS_INTRESOURCE(classPtr->menuName)) HeapFree( GetProcessHeap(), 0,
classPtr->menuName );
+ if (!IS_INTRESOURCE(name))
{
DWORD lenA = strlen(name) + 1;
DWORD lenW = MultiByteToWideChar( CP_ACP, 0, name, lenA, NULL, 0 );
@@ -219,8 +219,8 @@
*/
static void CLASS_SetMenuNameW( CLASS *classPtr, LPCWSTR name )
{
- if (HIWORD(classPtr->menuName)) HeapFree( GetProcessHeap(), 0,
classPtr->menuName );
- if (HIWORD(name))
+ if (!IS_INTRESOURCE(classPtr->menuName)) HeapFree( GetProcessHeap(), 0,
classPtr->menuName );
+ if (!IS_INTRESOURCE(name))
{
DWORD lenW = strlenW(name) + 1;
DWORD lenA = WideCharToMultiByte( CP_ACP, 0, name, lenW, NULL, 0, NULL, NULL );
Modified: branches/arwinss/reactos/dll/win32/user32/combo.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/combo.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/user32/combo.c [iso-8859-1] Sat Feb 6 11:18:44
2010
@@ -1910,8 +1910,14 @@
case WM_GETFONT:
return (LRESULT)lphc->hFont;
case WM_SETFOCUS:
- if( lphc->wState & CBF_EDIT )
- SetFocus( lphc->hWndEdit );
+ if( lphc->wState & CBF_EDIT ) {
+ SetFocus( lphc->hWndEdit );
+ /* The first time focus is received, select all the text */
+ if( !(lphc->wState & CBF_BEENFOCUSED) ) {
+ SendMessageW(lphc->hWndEdit, EM_SETSEL, 0, -1);
+ lphc->wState |= CBF_BEENFOCUSED;
+ }
+ }
else
COMBO_SetFocus( lphc );
return TRUE;
Modified: branches/arwinss/reactos/dll/win32/user32/controls.h
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/controls.h [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/user32/controls.h [iso-8859-1] Sat Feb 6 11:18:44
2010
@@ -199,6 +199,7 @@
#define CBF_SELCHANGE 0x0400
#define CBF_NOEDITNOTIFY 0x1000
#define CBF_NOLBSELECT 0x2000 /* do not change current selection */
+#define CBF_BEENFOCUSED 0x4000 /* has it ever had focus */
#define CBF_EUI 0x8000
/* combo state struct */
Modified: branches/arwinss/reactos/dll/win32/user32/cursoricon.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/cursoricon.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/user32/cursoricon.c [iso-8859-1] Sat Feb 6
11:18:44 2010
@@ -2467,7 +2467,7 @@
HANDLE res;
LPWSTR u_name;
- if (!HIWORD(name))
+ if (IS_INTRESOURCE(name))
return LoadImageW(hinst, (LPCWSTR)name, type, desiredx, desiredy, loadflags);
__TRY {
Modified: branches/arwinss/reactos/dll/win32/user32/defwnd.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/defwnd.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/user32/defwnd.c [iso-8859-1] Sat Feb 6 11:18:44
2010
@@ -563,7 +563,7 @@
else if( wParam == VK_F10 )
{
if (GetKeyState(VK_SHIFT) & 0x8000)
- SendMessageW( hwnd, WM_CONTEXTMENU, (WPARAM)hwnd, MAKELPARAM(-1, -1) );
+ SendMessageW( hwnd, WM_CONTEXTMENU, (WPARAM)hwnd, -1 );
iF10Key = 1;
}
else if( wParam == VK_ESCAPE && (GetKeyState(VK_SHIFT) & 0x8000))
@@ -835,7 +835,7 @@
CREATESTRUCTA *cs = (CREATESTRUCTA *)lParam;
/* check for string, as static icons, bitmaps (SS_ICON, SS_BITMAP)
* may have child window IDs instead of window name */
- if (HIWORD(cs->lpszName))
+ if (!IS_INTRESOURCE(cs->lpszName))
DEFWND_SetTextA( hwnd, cs->lpszName );
result = 1;
}
@@ -982,7 +982,7 @@
CREATESTRUCTW *cs = (CREATESTRUCTW *)lParam;
/* check for string, as static icons, bitmaps (SS_ICON, SS_BITMAP)
* may have child window IDs instead of window name */
- if (HIWORD(cs->lpszName))
+ if (!IS_INTRESOURCE(cs->lpszName))
DEFWND_SetTextW( hwnd, cs->lpszName );
result = 1;
}
Modified: branches/arwinss/reactos/dll/win32/user32/dialog.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/dialog.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/user32/dialog.c [iso-8859-1] Sat Feb 6 11:18:44
2010
@@ -287,14 +287,14 @@
LPSTR class_tmp = NULL;
LPSTR caption_tmp = NULL;
- if (HIWORD(class))
+ if (!IS_INTRESOURCE(class))
{
DWORD len = WideCharToMultiByte( CP_ACP, 0, info.className, -1, NULL, 0,
NULL, NULL );
class_tmp = HeapAlloc( GetProcessHeap(), 0, len );
WideCharToMultiByte( CP_ACP, 0, info.className, -1, class_tmp, len, NULL,
NULL );
class = class_tmp;
}
- if (HIWORD(caption))
+ if (!IS_INTRESOURCE(caption))
{
DWORD len = WideCharToMultiByte( CP_ACP, 0, info.windowName, -1, NULL, 0,
NULL, NULL );
caption_tmp = HeapAlloc( GetProcessHeap(), 0, len );
@@ -633,14 +633,14 @@
LPSTR class_tmp = NULL;
LPSTR caption_tmp = NULL;
- if (HIWORD(class))
+ if (!IS_INTRESOURCE(class))
{
DWORD len = WideCharToMultiByte( CP_ACP, 0, template.className, -1, NULL, 0,
NULL, NULL );
class_tmp = HeapAlloc( GetProcessHeap(), 0, len );
WideCharToMultiByte( CP_ACP, 0, template.className, -1, class_tmp, len, NULL,
NULL );
class = class_tmp;
}
- if (HIWORD(caption))
+ if (!IS_INTRESOURCE(caption))
{
DWORD len = WideCharToMultiByte( CP_ACP, 0, template.caption, -1, NULL, 0,
NULL, NULL );
caption_tmp = HeapAlloc( GetProcessHeap(), 0, len );
Modified: branches/arwinss/reactos/dll/win32/user32/hook.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/hook.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/user32/hook.c [iso-8859-1] Sat Feb 6 11:18:44
2010
@@ -222,12 +222,12 @@
cbtcwW.hwndInsertAfter = cbtcwA->hwndInsertAfter;
csW = *(CREATESTRUCTW *)cbtcwA->lpcs;
- if (HIWORD(cbtcwA->lpcs->lpszName))
+ if (!IS_INTRESOURCE(cbtcwA->lpcs->lpszName))
{
RtlCreateUnicodeStringFromAsciiz(&usBuffer,cbtcwA->lpcs->lpszName);
csW.lpszName = nameW = usBuffer.Buffer;
}
- if (HIWORD(cbtcwA->lpcs->lpszClass))
+ if (!IS_INTRESOURCE(cbtcwA->lpcs->lpszClass))
{
RtlCreateUnicodeStringFromAsciiz(&usBuffer,cbtcwA->lpcs->lpszClass);
csW.lpszClass = classW = usBuffer.Buffer;
@@ -262,14 +262,14 @@
cbtcwA.hwndInsertAfter = cbtcwW->hwndInsertAfter;
csA = *(CREATESTRUCTA *)cbtcwW->lpcs;
- if (HIWORD(cbtcwW->lpcs->lpszName)) {
+ if (!IS_INTRESOURCE(cbtcwW->lpcs->lpszName)) {
len = WideCharToMultiByte( CP_ACP, 0, cbtcwW->lpcs->lpszName, -1, NULL,
0, NULL, NULL );
nameA = HeapAlloc( GetProcessHeap(), 0, len*sizeof(CHAR) );
WideCharToMultiByte( CP_ACP, 0, cbtcwW->lpcs->lpszName, -1, nameA, len,
NULL, NULL );
csA.lpszName = nameA;
}
- if (HIWORD(cbtcwW->lpcs->lpszClass)) {
+ if (!IS_INTRESOURCE(cbtcwW->lpcs->lpszClass)) {
len = WideCharToMultiByte( CP_ACP, 0, cbtcwW->lpcs->lpszClass, -1,
NULL, 0, NULL, NULL );
classA = HeapAlloc( GetProcessHeap(), 0, len*sizeof(CHAR) );
WideCharToMultiByte( CP_ACP, 0, cbtcwW->lpcs->lpszClass, -1, classA,
len, NULL, NULL );
Modified: branches/arwinss/reactos/dll/win32/user32/message.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/message.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/user32/message.c [iso-8859-1] Sat Feb 6 11:18:44
2010
@@ -546,8 +546,8 @@
{
CREATESTRUCTW *cs = (CREATESTRUCTW *)lparam;
push_data( data, cs, sizeof(*cs) );
- if (HIWORD(cs->lpszName)) push_string( data, cs->lpszName );
- if (HIWORD(cs->lpszClass)) push_string( data, cs->lpszClass );
+ if (!IS_INTRESOURCE(cs->lpszName)) push_string( data, cs->lpszName );
+ if (!IS_INTRESOURCE(cs->lpszClass)) push_string( data, cs->lpszClass );
return sizeof(*cs);
}
case WM_GETTEXT:
@@ -690,8 +690,8 @@
{
MDICREATESTRUCTW *cs = (MDICREATESTRUCTW *)lparam;
push_data( data, cs, sizeof(*cs) );
- if (HIWORD(cs->szTitle)) push_string( data, cs->szTitle );
- if (HIWORD(cs->szClass)) push_string( data, cs->szClass );
+ if (!IS_INTRESOURCE(cs->szTitle)) push_string( data, cs->szTitle );
+ if (!IS_INTRESOURCE(cs->szClass)) push_string( data, cs->szClass );
return sizeof(*cs);
}
case WM_MDIGETACTIVE:
@@ -785,14 +785,14 @@
WCHAR *str = (WCHAR *)(cs + 1);
if (size < sizeof(*cs)) return FALSE;
size -= sizeof(*cs);
- if (HIWORD(cs->lpszName))
+ if (!IS_INTRESOURCE(cs->lpszName))
{
if (!check_string( str, size )) return FALSE;
cs->lpszName = str;
size -= (strlenW(str) + 1) * sizeof(WCHAR);
str += strlenW(str) + 1;
}
- if (HIWORD(cs->lpszClass))
+ if (!IS_INTRESOURCE(cs->lpszClass))
{
if (!check_string( str, size )) return FALSE;
cs->lpszClass = str;
@@ -957,14 +957,14 @@
WCHAR *str = (WCHAR *)(cs + 1);
if (size < sizeof(*cs)) return FALSE;
size -= sizeof(*cs);
- if (HIWORD(cs->szTitle))
+ if (!IS_INTRESOURCE(cs->szTitle))
{
if (!check_string( str, size )) return FALSE;
cs->szTitle = str;
size -= (strlenW(str) + 1) * sizeof(WCHAR);
str += strlenW(str) + 1;
}
- if (HIWORD(cs->szClass))
+ if (!IS_INTRESOURCE(cs->szClass))
{
if (!check_string( str, size )) return FALSE;
cs->szClass = str;
Modified: branches/arwinss/reactos/dll/win32/user32/misc.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/misc.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/user32/misc.c [iso-8859-1] Sat Feb 6 11:18:44
2010
@@ -259,6 +259,8 @@
static const WCHAR primary_device_name[] =
{'\\','\\','.','\\','D','I','S','P','L','A','Y','1',0};
static const WCHAR primary_device_string[] = {'X','1','1','
','W','i','n','d','o','w','i','n','g','
',
'S','y','s','t','e','m',0};
+static const WCHAR primary_device_deviceid[] =
{'P','C','I','\\','V','E','N','_','0','0','0','0','&',
+
'D','E','V','_','0','0','0','0',0};
/***********************************************************************
* EnumDisplayDevicesA (USER32.@)
@@ -313,7 +315,7 @@
DISPLAY_DEVICE_VGA_COMPATIBLE;
if(lpDisplayDevice->cb >= offsetof(DISPLAY_DEVICEW, DeviceID) +
sizeof(lpDisplayDevice->DeviceID))
- lpDisplayDevice->DeviceID[0] = 0;
+ memcpy(lpDisplayDevice->DeviceID, primary_device_deviceid,
sizeof(primary_device_deviceid));
if(lpDisplayDevice->cb >= offsetof(DISPLAY_DEVICEW, DeviceKey) +
sizeof(lpDisplayDevice->DeviceKey))
lpDisplayDevice->DeviceKey[0] = 0;
Modified: branches/arwinss/reactos/dll/win32/user32/msgbox.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/msgbox.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/user32/msgbox.c [iso-8859-1] Sat Feb 6 11:18:44
2010
@@ -92,7 +92,7 @@
/* set text font */
SendDlgItemMessageW (hwnd, MSGBOX_IDTEXT, WM_SETFONT, (WPARAM)hFont, 0);
- if (HIWORD(lpmb->lpszCaption)) {
+ if (!IS_INTRESOURCE(lpmb->lpszCaption)) {
SetWindowTextW(hwnd, lpmb->lpszCaption);
} else {
UINT len = LoadStringW( lpmb->hInstance, LOWORD(lpmb->lpszCaption),
(LPWSTR)&ptr, 0 );
@@ -107,9 +107,7 @@
buffer = NULL;
}
}
- if (HIWORD(lpmb->lpszText)) {
- lpszText = lpmb->lpszText;
- } else {
+ if (IS_INTRESOURCE(lpmb->lpszText)) {
UINT len = LoadStringW( lpmb->hInstance, LOWORD(lpmb->lpszText),
(LPWSTR)&ptr, 0 );
lpszText = buffer = HeapAlloc( GetProcessHeap(), 0, (len + 1) * sizeof(WCHAR) );
if (buffer)
@@ -117,6 +115,8 @@
memcpy( buffer, ptr, len * sizeof(WCHAR) );
buffer[len] = 0;
}
+ } else {
+ lpszText = lpmb->lpszText;
}
TRACE_(msgbox)("%s\n", debugstr_w(lpszText));
@@ -460,21 +460,21 @@
UNICODE_STRING textW, captionW, iconW;
int ret;
- if (HIWORD(msgbox->lpszText))
+ if (IS_INTRESOURCE(msgbox->lpszText))
+ textW.Buffer = (LPWSTR)msgbox->lpszText;
+ else
RtlCreateUnicodeStringFromAsciiz(&textW, msgbox->lpszText);
+ if (IS_INTRESOURCE(msgbox->lpszCaption))
+ captionW.Buffer = (LPWSTR)msgbox->lpszCaption;
else
- textW.Buffer = (LPWSTR)msgbox->lpszText;
- if (HIWORD(msgbox->lpszCaption))
RtlCreateUnicodeStringFromAsciiz(&captionW, msgbox->lpszCaption);
- else
- captionW.Buffer = (LPWSTR)msgbox->lpszCaption;
if (msgbox->dwStyle & MB_USERICON)
{
- if (HIWORD(msgbox->lpszIcon))
+ if (IS_INTRESOURCE(msgbox->lpszIcon))
+ iconW.Buffer = (LPWSTR)msgbox->lpszIcon;
+ else
RtlCreateUnicodeStringFromAsciiz(&iconW, msgbox->lpszIcon);
- else
- iconW.Buffer = (LPWSTR)msgbox->lpszIcon;
}
else
iconW.Buffer = NULL;
@@ -492,9 +492,9 @@
ret = MessageBoxIndirectW(&msgboxW);
- if (HIWORD(textW.Buffer)) RtlFreeUnicodeString(&textW);
- if (HIWORD(captionW.Buffer)) RtlFreeUnicodeString(&captionW);
- if (HIWORD(iconW.Buffer)) RtlFreeUnicodeString(&iconW);
+ if (!IS_INTRESOURCE(textW.Buffer)) RtlFreeUnicodeString(&textW);
+ if (!IS_INTRESOURCE(captionW.Buffer)) RtlFreeUnicodeString(&captionW);
+ if (!IS_INTRESOURCE(iconW.Buffer)) RtlFreeUnicodeString(&iconW);
return ret;
}
Modified: branches/arwinss/reactos/dll/win32/user32/property.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/property.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/user32/property.c [iso-8859-1] Sat Feb 6 11:18:44
2010
@@ -119,7 +119,7 @@
{
WCHAR buffer[ATOM_BUFFER_SIZE];
- if (!HIWORD(str)) return GetPropW( hwnd, (LPCWSTR)str );
+ if (IS_INTRESOURCE(str)) return GetPropW( hwnd, (LPCWSTR)str );
if (!MultiByteToWideChar( CP_ACP, 0, str, -1, buffer, ATOM_BUFFER_SIZE )) return 0;
return GetPropW( hwnd, buffer );
}
@@ -135,7 +135,7 @@
SERVER_START_REQ( get_window_property )
{
req->window = wine_server_user_handle( hwnd );
- if (!HIWORD(str)) req->atom = LOWORD(str);
+ if (IS_INTRESOURCE(str)) req->atom = LOWORD(str);
else wine_server_add_data( req, str, strlenW(str) * sizeof(WCHAR) );
if (!wine_server_call_err( req )) ret = reply->data;
}
@@ -151,7 +151,7 @@
{
WCHAR buffer[ATOM_BUFFER_SIZE];
- if (!HIWORD(str)) return SetPropW( hwnd, (LPCWSTR)str, handle );
+ if (IS_INTRESOURCE(str)) return SetPropW( hwnd, (LPCWSTR)str, handle );
if (!MultiByteToWideChar( CP_ACP, 0, str, -1, buffer, ATOM_BUFFER_SIZE )) return
FALSE;
return SetPropW( hwnd, buffer, handle );
}
@@ -168,7 +168,7 @@
{
req->window = wine_server_user_handle( hwnd );
req->data = (ULONG_PTR)handle;
- if (!HIWORD(str)) req->atom = LOWORD(str);
+ if (IS_INTRESOURCE(str)) req->atom = LOWORD(str);
else wine_server_add_data( req, str, strlenW(str) * sizeof(WCHAR) );
ret = !wine_server_call_err( req );
}
@@ -184,7 +184,7 @@
{
WCHAR buffer[ATOM_BUFFER_SIZE];
- if (!HIWORD(str)) return RemovePropW( hwnd, (LPCWSTR)str );
+ if (IS_INTRESOURCE(str)) return RemovePropW( hwnd, (LPCWSTR)str );
if (!MultiByteToWideChar( CP_ACP, 0, str, -1, buffer, ATOM_BUFFER_SIZE )) return 0;
return RemovePropW( hwnd, buffer );
}
@@ -200,7 +200,7 @@
SERVER_START_REQ( remove_window_property )
{
req->window = wine_server_user_handle( hwnd );
- if (!HIWORD(str)) req->atom = LOWORD(str);
+ if (IS_INTRESOURCE(str)) req->atom = LOWORD(str);
else wine_server_add_data( req, str, strlenW(str) * sizeof(WCHAR) );
if (!wine_server_call_err( req )) ret = reply->data;
}
Modified: branches/arwinss/reactos/dll/win32/user32/resource.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/resource.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/user32/resource.c [iso-8859-1] Sat Feb 6 11:18:44
2010
@@ -83,7 +83,7 @@
LPWSTR uni;
HACCEL result = 0;
- if (!HIWORD(lpTableName)) return LoadAcceleratorsW( instance, (LPCWSTR)lpTableName
);
+ if (IS_INTRESOURCE(lpTableName)) return LoadAcceleratorsW( instance,
(LPCWSTR)lpTableName );
len = MultiByteToWideChar( CP_ACP, 0, lpTableName, -1, NULL, 0 );
if ((uni = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) )))
Modified: branches/arwinss/reactos/dll/win32/user32/win.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/win.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/user32/win.c [iso-8859-1] Sat Feb 6 11:18:44 2010
@@ -144,6 +144,7 @@
*/
void release_user_handle_ptr( void *ptr )
{
+ assert( ptr && ptr != OBJ_OTHER_PROCESS );
USER_Unlock();
}
@@ -2701,6 +2702,12 @@
if (!(full_handle = WIN_IsCurrentThread( hwnd )))
return (HWND)SendMessageW( hwnd, WM_WINE_SETPARENT, (WPARAM)parent, 0 );
+ if (full_handle == parent)
+ {
+ SetLastError( ERROR_INVALID_PARAMETER );
+ return 0;
+ }
+
/* Windows hides the window first, then shows it again
* including the WM_SHOWWINDOW messages and all */
was_visible = ShowWindow( hwnd, SW_HIDE );
@@ -3310,25 +3317,7 @@
*/
BOOL WINAPI SwitchDesktop( HDESK hDesktop)
{
- HWND hWnd;
-
- hWnd = GetDesktopWindow(/*hDesktop*/);
-
- FIXME("SwitchDesktop(hDesktop %p, desk window %x) stub!\n", hDesktop,
hWnd);
-#if 0
- /* Set foreground window */
- SetForegroundWindow(hWnd);
-
- /* Bring it to top */
- SetWindowPos(hWnd,
- NULL, 0, 0,
- 0,
- 0,
- SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW);
- UpdateWindow(hWnd);
-
- RedrawWindow(NULL, NULL, 0, RDW_INVALIDATE | RDW_FRAME | RDW_ERASENOW |
RDW_ALLCHILDREN);
-#endif
+ FIXME("(hwnd %p) stub!\n", hDesktop);
return TRUE;
}
Modified: branches/arwinss/reactos/dll/win32/user32/winproc.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user3…
==============================================================================
--- branches/arwinss/reactos/dll/win32/user32/winproc.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/user32/winproc.c [iso-8859-1] Sat Feb 6 11:18:44
2010
@@ -172,7 +172,6 @@
}
#ifdef __i386__
-#define __ASM_CFI(str) ""
/* Some window procedures modify register they shouldn't, or are not
* properly declared stdcall; so we need a small assembly wrapper to
* call them. */
Propchange: branches/arwinss/reactos/dll/win32/winex11.drv/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Feb 6 11:18:44 2010
@@ -1,3 +1,3 @@
/branches/ros-amd64-bringup/reactos/dll/win32/winex11.drv:35746,35789,36614,36930,38148,38151,38265,38268,39333,39345,40991,41000,41027-41028,41050,41052,41082-41086,41549,43080
/trunk/reactos/dll/win32/winex11.drv:42000-44999,45097-45099,45319
-/vendor/wine/dlls/winex11.drv/current:43149,43398,43708,44151,44715,45044,45206
+/vendor/wine/dlls/winex11.drv/current:43149,43398,43708,44151,44715,45044,45206,45455
Modified: branches/arwinss/reactos/dll/win32/winex11.drv/window.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/winex…
==============================================================================
--- branches/arwinss/reactos/dll/win32/winex11.drv/window.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/winex11.drv/window.c [iso-8859-1] Sat Feb 6
11:18:44 2010
@@ -1327,6 +1327,15 @@
data->configure_serial = NextRequest( display );
XReconfigureWMWindow( display, data->whole_window,
DefaultScreen(display), mask, &changes );
+#ifdef HAVE_LIBXSHAPE
+ if (data->shaped)
+ {
+ int x_offset = old_whole_rect->left - data->whole_rect.left;
+ int y_offset = old_whole_rect->top - data->whole_rect.top;
+ if (x_offset || y_offset)
+ XShapeOffsetShape( display, data->whole_window, ShapeBounding, x_offset,
y_offset );
+ }
+#endif
wine_tsx11_unlock();
TRACE( "win %p/%lx pos %d,%d,%dx%d after %lx changes=%x serial=%lu\n",
@@ -1445,6 +1454,7 @@
COLORREF key;
BYTE alpha;
DWORD layered_flags;
+ HRGN win_rgn;
if (!data->managed && is_window_managed( data->hwnd, SWP_NOACTIVATE,
&data->window_rect ))
{
@@ -1452,6 +1462,14 @@
data->managed = TRUE;
SetPropA( data->hwnd, managed_prop, (HANDLE)1 );
}
+
+ if ((win_rgn = CreateRectRgn( 0, 0, 0, 0 )) &&
+ GetWindowRgn( data->hwnd, win_rgn ) == ERROR)
+ {
+ DeleteObject( win_rgn );
+ win_rgn = 0;
+ }
+ data->shaped = (win_rgn != 0);
mask = get_window_attributes( display, data, &attr );
@@ -1472,7 +1490,7 @@
if (data->whole_window) XSaveContext( display, data->whole_window, winContext,
(char *)data->hwnd );
wine_tsx11_unlock();
- if (!data->whole_window) return 0;
+ if (!data->whole_window) goto done;
if (!create_client_window( display, data, NULL ))
{
@@ -1481,7 +1499,7 @@
XDestroyWindow( display, data->whole_window );
data->whole_window = 0;
wine_tsx11_unlock();
- return 0;
+ goto done;
}
set_initial_wm_hints( display, data );
@@ -1494,7 +1512,7 @@
sync_window_text( display, data->whole_window, text );
/* set the window region */
- sync_window_region( display, data, (HRGN)1 );
+ if (win_rgn) sync_window_region( display, data, win_rgn );
/* set the window opacity */
if (!GetLayeredWindowAttributes( data->hwnd, &key, &alpha,
&layered_flags )) layered_flags = 0;
@@ -1503,6 +1521,8 @@
wine_tsx11_lock();
XFlush( display ); /* make sure the window exists before we start painting to it */
wine_tsx11_unlock();
+done:
+ if (win_rgn) DeleteObject( win_rgn );
return data->whole_window;
}