Author: fireball Date: Fri Sep 25 20:24:36 2009 New Revision: 43148
URL: http://svn.reactos.org/svn/reactos?rev=43148&view=rev Log: - Update to Wine 1.1.29.
Modified: branches/arwinss/reactos/dll/win32/gdi32/ (props changed) branches/arwinss/reactos/dll/win32/gdi32/freetype.c branches/arwinss/reactos/dll/win32/gdi32/metafile.c branches/arwinss/reactos/dll/win32/gdi32/opengl.c branches/arwinss/reactos/dll/win32/user32/ (props changed) branches/arwinss/reactos/dll/win32/user32/button.c branches/arwinss/reactos/dll/win32/user32/defdlg.c branches/arwinss/reactos/dll/win32/user32/defwnd.c branches/arwinss/reactos/dll/win32/user32/dialog.c branches/arwinss/reactos/dll/win32/user32/edit.c branches/arwinss/reactos/dll/win32/user32/focus.c branches/arwinss/reactos/dll/win32/user32/hook.c branches/arwinss/reactos/dll/win32/user32/menu.c branches/arwinss/reactos/dll/win32/user32/message.c branches/arwinss/reactos/dll/win32/user32/resources/user32.rc branches/arwinss/reactos/dll/win32/user32/resources/user32_De.rc branches/arwinss/reactos/dll/win32/user32/resources/user32_Fr.rc branches/arwinss/reactos/dll/win32/user32/resources/user32_Pt.rc branches/arwinss/reactos/dll/win32/user32/resources/user32_Ru.rc branches/arwinss/reactos/dll/win32/user32/spy.c branches/arwinss/reactos/dll/win32/user32/win.c branches/arwinss/reactos/dll/win32/user32/winpos.c branches/arwinss/reactos/include/reactos/wine/server_protocol.h branches/arwinss/reactos/subsystems/win32/win32k/include/request.h (contents, props changed)
Propchange: branches/arwinss/reactos/dll/win32/gdi32/ ------------------------------------------------------------------------------ --- svn:mergeinfo (added) +++ svn:mergeinfo Fri Sep 25 20:24:36 2009 @@ -1,0 +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-43126 +/vendor/wine/dlls/gdi32/current:43136
Modified: branches/arwinss/reactos/dll/win32/gdi32/freetype.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/gdi32/... ============================================================================== --- branches/arwinss/reactos/dll/win32/gdi32/freetype.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/gdi32/freetype.c [iso-8859-1] Fri Sep 25 20:24:36 2009 @@ -1737,7 +1737,7 @@ if(psub) { TRACE("%s: SystemLink entry for substituted font, ignoring\n", debugstr_w(value)); - continue; + goto next; } font_link = HeapAlloc(GetProcessHeap(), 0, sizeof(*font_link)); font_link->font_name = strdupW(value); @@ -1786,6 +1786,7 @@ } } list_add_tail(&system_links, &font_link->entry); + next: val_len = max_val + 1; data_len = max_data; } @@ -5661,7 +5662,19 @@ TM.tmAveCharWidth = 1; } TM.tmMaxCharWidth = (pFT_MulFix(ft_face->bbox.xMax - ft_face->bbox.xMin, x_scale) + 32) >> 6; - TM.tmWeight = (font->fake_bold || (ft_face->style_flags & FT_STYLE_FLAG_BOLD)) ? FW_BOLD : FW_REGULAR; + TM.tmWeight = FW_REGULAR; + if (font->fake_bold) + TM.tmWeight = FW_BOLD; + else + { + if (ft_face->style_flags & FT_STYLE_FLAG_BOLD) + { + if (pOS2->usWeightClass > FW_MEDIUM) + TM.tmWeight = pOS2->usWeightClass; + } + else if (pOS2->usWeightClass <= FW_MEDIUM) + TM.tmWeight = pOS2->usWeightClass; + } TM.tmOverhang = 0; TM.tmDigitizedAspectX = 300; TM.tmDigitizedAspectY = 300; @@ -5868,6 +5881,7 @@ child->font->scale_y = font->scale_y; hfontlist = HeapAlloc(GetProcessHeap(), 0, sizeof(*hfontlist)); hfontlist->hfont = CreateFontIndirectW(&font->font_desc.lf); + child->font->name = strdupW(child->face->family->FamilyName); list_add_head(&child->font->hfontlist, &hfontlist->entry); child->font->base_font = font; list_add_head(&child_font_list, &child->font->entry);
Modified: branches/arwinss/reactos/dll/win32/gdi32/metafile.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/gdi32/... ============================================================================== --- branches/arwinss/reactos/dll/win32/gdi32/metafile.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/gdi32/metafile.c [iso-8859-1] Fri Sep 25 20:24:36 2009 @@ -1222,6 +1222,26 @@ return ret; }
+/******************************************************************* + * muldiv + * + * Behaves somewhat differently to MulDiv when the answer is -ve + * and also rounds n.5 towards zero + */ +static INT muldiv(INT m1, INT m2, INT d) +{ + LONGLONG ret; + + ret = ((LONGLONG)m1 * m2 + d/2) / d; /* Always add d/2 even if ret will be -ve */ + + if((LONGLONG)m1 * m2 * 2 == (2 * ret - 1) * d) /* If the answer is exactly n.5 round towards zero */ + { + if(ret > 0) ret--; + else ret++; + } + return ret; +} + /****************************************************************** * set_window * @@ -1247,28 +1267,28 @@ case MM_TEXT: case MM_ISOTROPIC: case MM_ANISOTROPIC: - pt.y = MulDiv(header.rclFrame.top, vert_res, vert_size * 100); - pt.x = MulDiv(header.rclFrame.left, horz_res, horz_size * 100); + pt.y = muldiv(header.rclFrame.top, vert_res, vert_size * 100); + pt.x = muldiv(header.rclFrame.left, horz_res, horz_size * 100); break; case MM_LOMETRIC: - pt.y = MulDiv(-header.rclFrame.top, 1, 10) + 1; - pt.x = MulDiv( header.rclFrame.left, 1, 10); + pt.y = muldiv(-header.rclFrame.top, 1, 10) + 1; + pt.x = muldiv( header.rclFrame.left, 1, 10); break; case MM_HIMETRIC: pt.y = -header.rclFrame.top + 1; - pt.x = header.rclFrame.left; + pt.x = (header.rclFrame.left >= 0) ? header.rclFrame.left : header.rclFrame.left + 1; /* See the tests */ break; case MM_LOENGLISH: - pt.y = MulDiv(-header.rclFrame.top, 10, 254) + 1; - pt.x = MulDiv( header.rclFrame.left, 10, 254); + pt.y = muldiv(-header.rclFrame.top, 10, 254) + 1; + pt.x = muldiv( header.rclFrame.left, 10, 254); break; case MM_HIENGLISH: - pt.y = MulDiv(-header.rclFrame.top, 100, 254) + 1; - pt.x = MulDiv( header.rclFrame.left, 100, 254); + pt.y = muldiv(-header.rclFrame.top, 100, 254) + 1; + pt.x = muldiv( header.rclFrame.left, 100, 254); break; case MM_TWIPS: - pt.y = MulDiv(-header.rclFrame.top, 72 * 20, 2540) + 1; - pt.x = MulDiv( header.rclFrame.left, 72 * 20, 2540); + pt.y = muldiv(-header.rclFrame.top, 72 * 20, 2540) + 1; + pt.x = muldiv( header.rclFrame.left, 72 * 20, 2540); break; default: WARN("Unknown map mode %d\n", map_mode); @@ -1276,8 +1296,8 @@ } SetWindowOrgEx(hdc, pt.x, pt.y, NULL);
- pt.x = MulDiv(header.rclFrame.right - header.rclFrame.left, horz_res, horz_size * 100); - pt.y = MulDiv(header.rclFrame.bottom - header.rclFrame.top, vert_res, vert_size * 100); + pt.x = muldiv(header.rclFrame.right - header.rclFrame.left, horz_res, horz_size * 100); + pt.y = muldiv(header.rclFrame.bottom - header.rclFrame.top, vert_res, vert_size * 100); SetWindowExtEx(hdc, pt.x, pt.y, NULL); return TRUE; }
Modified: branches/arwinss/reactos/dll/win32/gdi32/opengl.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/gdi32/... ============================================================================== --- branches/arwinss/reactos/dll/win32/gdi32/opengl.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/gdi32/opengl.c [iso-8859-1] Fri Sep 25 20:24:36 2009 @@ -168,7 +168,7 @@
TRACE("(%p)\n", pbuffer);
- if (!dc) return FALSE; + if (!dc) return 0;
/* The display driver has to do the rest of the work because * we need access to lowlevel datatypes which we can't access here @@ -338,7 +338,7 @@
/* Retrieve the global hDC to get access to the driver. */ dc = OPENGL_GetDefaultDC(); - if (!dc) return FALSE; + if (!dc) return NULL;
if (!dc->funcs->pwglGetProcAddress) FIXME(" :stub\n"); else ret = dc->funcs->pwglGetProcAddress(func);
Propchange: branches/arwinss/reactos/dll/win32/user32/ ------------------------------------------------------------------------------ --- svn:mergeinfo (added) +++ svn:mergeinfo Fri Sep 25 20:24:36 2009 @@ -1,0 +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-43126 +/vendor/wine/dlls/user32/current:43136
Modified: branches/arwinss/reactos/dll/win32/user32/button.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user32... ============================================================================== --- branches/arwinss/reactos/dll/win32/user32/button.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/button.c [iso-8859-1] Fri Sep 25 20:24:36 2009 @@ -836,6 +836,9 @@ hOldBrush = SelectObject(hDC,GetSysColorBrush(COLOR_BTNFACE)); oldBkMode = SetBkMode(hDC, TRANSPARENT);
+ /* completely skip the drawing if only focus has changed */ + if (action == ODA_FOCUS) goto draw_focus; + if (get_button_type(style) == BS_DEFPUSHBUTTON) { Rectangle(hDC, rc.left, rc.top, rc.right, rc.bottom); @@ -879,7 +882,9 @@
SetTextColor( hDC, oldTxtColor );
- if (state & BUTTON_HASFOCUS) +draw_focus: + if ((action == ODA_FOCUS) || + ((action == ODA_DRAWENTIRE) && (state & BUTTON_HASFOCUS))) { InflateRect( &focus_rect, -1, -1 ); IntersectRect(&focus_rect, &focus_rect, &rc);
Modified: branches/arwinss/reactos/dll/win32/user32/defdlg.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user32... ============================================================================== --- branches/arwinss/reactos/dll/win32/user32/defdlg.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/defdlg.c [iso-8859-1] Fri Sep 25 20:24:36 2009 @@ -345,7 +345,10 @@
wndPtr = WIN_GetPtr( hwnd ); if (!wndPtr || wndPtr == WND_OTHER_PROCESS || wndPtr == WND_DESKTOP) + { + SetLastError( ERROR_INVALID_WINDOW_HANDLE ); return NULL; + }
dlgInfo = wndPtr->dlgInfo;
@@ -383,7 +386,7 @@ BOOL result = FALSE;
/* Perform DIALOGINFO initialization if not done */ - if(!(dlgInfo = DIALOG_get_info(hwnd32, TRUE))) return -1; + if(!(dlgInfo = DIALOG_get_info(hwnd32, TRUE))) return 0;
SetWindowLongPtrW( hwnd32, DWLP_MSGRESULT, 0 );
@@ -435,7 +438,7 @@ BOOL result = FALSE;
/* Perform DIALOGINFO initialization if not done */ - if(!(dlgInfo = DIALOG_get_info( hwnd, TRUE ))) return -1; + if(!(dlgInfo = DIALOG_get_info( hwnd, TRUE ))) return 0;
SetWindowLongPtrW( hwnd, DWLP_MSGRESULT, 0 );
@@ -486,7 +489,7 @@ DLGPROC dlgproc;
/* Perform DIALOGINFO initialization if not done */ - if(!(dlgInfo = DIALOG_get_info( hwnd, TRUE ))) return -1; + if(!(dlgInfo = DIALOG_get_info( hwnd, TRUE ))) return 0;
SetWindowLongPtrW( hwnd, DWLP_MSGRESULT, 0 );
Modified: branches/arwinss/reactos/dll/win32/user32/defwnd.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user32... ============================================================================== --- branches/arwinss/reactos/dll/win32/user32/defwnd.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/defwnd.c [iso-8859-1] Fri Sep 25 20:24:36 2009 @@ -66,11 +66,16 @@
if (!(winpos->flags & SWP_NOCLIENTSIZE) || (winpos->flags & SWP_STATECHANGED)) { - WPARAM wp = SIZE_RESTORED; - if (IsZoomed(hwnd)) wp = SIZE_MAXIMIZED; - else if (IsIconic(hwnd)) wp = SIZE_MINIMIZED; - - SendMessageW( hwnd, WM_SIZE, wp, MAKELONG(rect.right-rect.left, rect.bottom-rect.top) ); + if (IsIconic( hwnd )) + { + SendMessageW( hwnd, WM_SIZE, SIZE_MINIMIZED, 0 ); + } + else + { + WPARAM wp = IsZoomed( hwnd ) ? SIZE_MAXIMIZED : SIZE_RESTORED; + + SendMessageW( hwnd, WM_SIZE, wp, MAKELONG(rect.right-rect.left, rect.bottom-rect.top) ); + } } }
@@ -216,7 +221,7 @@ * Client area */ if ( uFlags & PRF_CLIENT) - SendMessageW(hwnd, WM_PRINTCLIENT, (WPARAM)hdc, PRF_CLIENT); + SendMessageW(hwnd, WM_PRINTCLIENT, (WPARAM)hdc, uFlags); }
Modified: branches/arwinss/reactos/dll/win32/user32/dialog.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user32... ============================================================================== --- branches/arwinss/reactos/dll/win32/user32/dialog.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/dialog.c [iso-8859-1] Fri Sep 25 20:24:36 2009 @@ -673,7 +673,7 @@ dlgInfo->hMenu = hMenu; dlgInfo->xBaseUnit = xBaseUnit; dlgInfo->yBaseUnit = yBaseUnit; - dlgInfo->idResult = 0; + dlgInfo->idResult = IDOK; dlgInfo->flags = flags; dlgInfo->hDialogHeap = 0;
@@ -808,7 +808,7 @@ if (!GetMessageW( &msg, 0, 0, 0 )) break; }
- if (!IsWindow( hwnd )) return -1; + if (!IsWindow( hwnd )) return 0; if (!(dlgInfo->flags & DF_END) && !IsDialogMessageW( hwnd, &msg)) { TranslateMessage( &msg );
Modified: branches/arwinss/reactos/dll/win32/user32/edit.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user32... ============================================================================== --- branches/arwinss/reactos/dll/win32/user32/edit.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/edit.c [iso-8859-1] Fri Sep 25 20:24:36 2009 @@ -83,6 +83,8 @@ #define EF_USE_SOFTBRK 0x0100 /* Enable soft breaks in text. */ #define EF_APP_HAS_HANDLE 0x0200 /* Set when an app sends EM_[G|S]ETHANDLE. We are in sole control of the text buffer if this is clear. */ +#define EF_DIALOGMODE 0x0400 /* Indicates that we are inside a dialog window */ + typedef enum { END_0 = 0, /* line ends with terminating '\0' character */ @@ -3101,22 +3103,9 @@ * controls without ES_WANTRETURN would attempt to detect whether it is inside * a dialog box or not. */ -static BOOL EDIT_IsInsideDialog(EDITSTATE *es) -{ - WND *pParent; - BOOL r = FALSE; - - if (es->hwndParent) - { - pParent = WIN_GetPtr(es->hwndParent); - if (pParent && pParent != WND_OTHER_PROCESS && pParent != WND_DESKTOP) - { - if (pParent->flags & WIN_ISDIALOG) - r = TRUE; - WIN_ReleasePtr(pParent); - } - } - return r; +static inline BOOL EDIT_IsInsideDialog(EDITSTATE *es) +{ + return (es->flags & EF_DIALOGMODE); }
@@ -3568,32 +3557,32 @@ /* If the edit doesn't want the return send a message to the default object */ if(!(es->style & ES_MULTILINE) || !(es->style & ES_WANTRETURN)) { - HWND hwndParent; - DWORD dw; - - if (!EDIT_IsInsideDialog(es)) return 1; + DWORD dw; + + if (!EDIT_IsInsideDialog(es)) break; if (control) break; - hwndParent = GetParent(es->hwndSelf); - dw = SendMessageW( hwndParent, DM_GETDEFID, 0, 0 ); - if (HIWORD(dw) == DC_HASDEFID) - { - SendMessageW( hwndParent, WM_COMMAND, - MAKEWPARAM( LOWORD(dw), BN_CLICKED ), - (LPARAM)GetDlgItem( hwndParent, LOWORD(dw) ) ); - } - else - SendMessageW( hwndParent, WM_COMMAND, IDOK, (LPARAM)GetDlgItem( hwndParent, IDOK ) ); + dw = SendMessageW(es->hwndParent, DM_GETDEFID, 0, 0); + if (HIWORD(dw) == DC_HASDEFID) + { + HWND hwDefCtrl = GetDlgItem(es->hwndParent, LOWORD(dw)); + if (hwDefCtrl) + { + SendMessageW(es->hwndParent, WM_NEXTDLGCTL, (WPARAM)hwDefCtrl, (LPARAM)TRUE); + PostMessageW(hwDefCtrl, WM_KEYDOWN, VK_RETURN, 0); + } + } } break; case VK_ESCAPE: - if (!(es->style & ES_MULTILINE)) - SendMessageW(GetParent(es->hwndSelf), WM_COMMAND, IDCANCEL, (LPARAM)GetDlgItem( GetParent(es->hwndSelf), IDCANCEL ) ); + if ((es->style & ES_MULTILINE) && EDIT_IsInsideDialog(es)) + PostMessageW(es->hwndParent, WM_CLOSE, 0, 0); break; case VK_TAB: - SendMessageW(es->hwndParent, WM_NEXTDLGCTL, shift, 0); + if ((es->style & ES_MULTILINE) && EDIT_IsInsideDialog(es)) + SendMessageW(es->hwndParent, WM_NEXTDLGCTL, shift, 0); break; } - return 0; + return TRUE; }
@@ -4946,27 +4935,21 @@ if (es->style & ES_MULTILINE) result |= DLGC_WANTALLKEYS;
- if (lParam && (((LPMSG)lParam)->message == WM_KEYDOWN)) - { - int vk = (int)((LPMSG)lParam)->wParam; - - if (es->hwndListBox) - { - if (vk == VK_RETURN || vk == VK_ESCAPE) - if (SendMessageW(GetParent(hwnd), CB_GETDROPPEDSTATE, 0, 0)) - result |= DLGC_WANTMESSAGE; - } - else - { - switch (vk) - { - case VK_ESCAPE: - SendMessageW(GetParent(hwnd), WM_CLOSE, 0, 0); - break; - default: - break; - } - } + if (lParam) + { + es->flags|=EF_DIALOGMODE; + + if (((LPMSG)lParam)->message == WM_KEYDOWN) + { + int vk = (int)((LPMSG)lParam)->wParam; + + if (es->hwndListBox) + { + if (vk == VK_RETURN || vk == VK_ESCAPE) + if (SendMessageW(GetParent(hwnd), CB_GETDROPPEDSTATE, 0, 0)) + result |= DLGC_WANTMESSAGE; + } + } } break;
Modified: branches/arwinss/reactos/dll/win32/user32/focus.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user32... ============================================================================== --- branches/arwinss/reactos/dll/win32/user32/focus.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/focus.c [iso-8859-1] Fri Sep 25 20:24:36 2009 @@ -193,7 +193,7 @@ } SERVER_END_REQ;
- if (ret) + if (ret && previous != hwnd) { if (send_msg_old) /* old window belongs to other thread */ SendNotifyMessageW( previous, WM_WINE_SETACTIVEWINDOW, 0, 0 );
Modified: branches/arwinss/reactos/dll/win32/user32/hook.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user32... ============================================================================== --- branches/arwinss/reactos/dll/win32/user32/hook.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/hook.c [iso-8859-1] Fri Sep 25 20:24:36 2009 @@ -322,7 +322,7 @@ { TRACE( "loading %s\n", debugstr_w(module) ); /* FIXME: the library will never be freed */ - if (!(mod = LoadLibraryW(module))) return NULL; + if (!(mod = LoadLibraryExW(module, NULL, LOAD_WITH_ALTERED_SEARCH_PATH))) return NULL; } return (char *)mod + (ULONG_PTR)proc; }
Modified: branches/arwinss/reactos/dll/win32/user32/menu.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user32... ============================================================================== --- branches/arwinss/reactos/dll/win32/user32/menu.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/menu.c [iso-8859-1] Fri Sep 25 20:24:36 2009 @@ -113,7 +113,7 @@ DWORD dwContextHelpID; DWORD dwMenuData; /* application defined value */ HMENU hSysMenuOwner; /* Handle to the dummy sys menu holder */ - SIZE maxBmpSize; /* Maximum size of the bitmap items */ + WORD textOffset; /* Offset of text when items have both bitmaps and text */ } POPUPMENU, *LPPOPUPMENU;
/* internal flags for menu tracking */ @@ -147,6 +147,11 @@ /* top and bottom margins for popup menus */ #define MENU_TOP_MARGIN 3 #define MENU_BOTTOM_MARGIN 2 + +/* maximum allowed depth of any branch in the menu tree. + * This value is slightly larger than in windows (25) to + * stay on the safe side. */ +#define MAXMENUDEPTH 30
/* (other menu->FocusedItem values give the position of the focused item) */ #define NO_SELECTED_ITEM 0xffff @@ -185,6 +190,8 @@ static LRESULT WINAPI PopupMenuWndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam );
DWORD WINAPI DrawMenuBarTemp(HWND hwnd, HDC hDC, LPRECT lprect, HMENU hMenu, HFONT hFont); + +static BOOL SetMenuItemInfo_common( MENUITEM *, const MENUITEMINFOW *, BOOL);
/********************************************************************* * menu class descriptor @@ -1065,8 +1072,7 @@ /* Keep the size of the bitmap in callback mode to be able * to draw it correctly */ lpitem->bmpsize = size; - lppop->maxBmpSize.cx = max( lppop->maxBmpSize.cx, size.cx); - lppop->maxBmpSize.cy = max( lppop->maxBmpSize.cy, size.cy); + lppop->textOffset = max( lppop->textOffset, size.cx); lpitem->rect.right += size.cx + 2; itemheight = size.cy + 2; } @@ -1160,6 +1166,7 @@ MENUITEM *lpitem; HDC hdc; UINT start, i; + int textandbmp = FALSE; int orgX, orgY, maxX, maxTab, maxTabWidth, maxHeight;
lppop->Width = lppop->Height = 0; @@ -1171,8 +1178,7 @@ start = 0; maxX = 2 + 1;
- lppop->maxBmpSize.cx = 0; - lppop->maxBmpSize.cy = 0; + lppop->textOffset = 0;
while (start < lppop->nItems) { @@ -1197,6 +1203,7 @@ maxTab = max( maxTab, lpitem->xTab ); maxTabWidth = max(maxTabWidth,lpitem->rect.right-lpitem->xTab); } + if( lpitem->text && lpitem->hbmpItem) textandbmp = TRUE; }
/* Finish the column (set all items to the largest width found) */ @@ -1212,6 +1219,12 @@ }
lppop->Width = maxX; + /* if none of the items have both text and bitmap then + * the text and bitmaps are all aligned on the left. If there is at + * least one item with both text and bitmap then bitmaps are + * on the left and texts left aligned with the right hand side + * of the bitmaps */ + if( !textandbmp) lppop->textOffset = 0;
/* space for 3d border */ lppop->Height += MENU_BOTTOM_MARGIN; @@ -1258,8 +1271,7 @@ maxY = lprect->top+1; start = 0; helpPos = ~0U; - lppop->maxBmpSize.cx = 0; - lppop->maxBmpSize.cy = 0; + lppop->textOffset = 0; while (start < lppop->nItems) { lpitem = &lppop->items[start]; @@ -1652,7 +1664,7 @@ DT_LEFT | DT_VCENTER | DT_SINGLELINE;
if( !(menu->dwStyle & MNS_CHECKORBMP)) - rect.left += menu->maxBmpSize.cx; + rect.left += menu->textOffset;
if ( lpitem->fState & MFS_DEFAULT ) { @@ -1754,6 +1766,7 @@
if( (menu = MENU_GetMenu( hmenu ))) { + TRACE("hmenu %p Style %08x\n", hmenu, menu->dwStyle); /* draw menu items */ if( menu->nItems) { @@ -2049,92 +2062,6 @@
/********************************************************************** - * MENU_SetItemData - * - * Set an item's flags, id and text ptr. Called by InsertMenu() and - * ModifyMenu(). - */ -static BOOL MENU_SetItemData( MENUITEM *item, UINT flags, UINT_PTR id, - LPCWSTR str ) -{ - debug_print_menuitem("MENU_SetItemData from: ", item, ""); - TRACE("flags=%x str=%p\n", flags, str); - - if (IS_STRING_ITEM(flags)) - { - LPWSTR prevText = item->text; - if (!str) - { - flags |= MF_SEPARATOR; - item->text = NULL; - } - else - { - LPWSTR text; - /* Item beginning with a backspace is a help item */ - if (*str == '\b') - { - flags |= MF_HELP; - str++; - } - if (!(text = HeapAlloc( GetProcessHeap(), 0, (strlenW(str)+1) * sizeof(WCHAR) ))) - return FALSE; - strcpyW( text, str ); - item->text = text; - } - item->hbmpItem = NULL; - HeapFree( GetProcessHeap(), 0, prevText ); - } - else if(( flags & MFT_BITMAP)) { - item->hbmpItem = (HBITMAP)(LOWORD(str)); - /* setting bitmap clears text */ - HeapFree( GetProcessHeap(), 0, item->text ); - item->text = NULL; - } - - if (flags & MF_SEPARATOR) flags |= MF_GRAYED | MF_DISABLED; - - if (flags & MF_OWNERDRAW) - item->dwItemData = (DWORD_PTR)str; - else - item->dwItemData = 0; - - if ((item->fType & MF_POPUP) && (flags & MF_POPUP) && (item->hSubMenu != (HMENU)id) ) - DestroyMenu( item->hSubMenu ); /* ModifyMenu() spec */ - - if (flags & MF_POPUP) - { - POPUPMENU *menu = MENU_GetMenu((HMENU)id); - if (menu) menu->wFlags |= MF_POPUP; - else - { - item->wID = 0; - item->hSubMenu = 0; - item->fType = 0; - item->fState = 0; - return FALSE; - } - } - - item->wID = id; - if (flags & MF_POPUP) item->hSubMenu = (HMENU)id; - - if ((item->fType & MF_POPUP) && !(flags & MF_POPUP) ) - flags |= MF_POPUP; /* keep popup */ - - item->fType = flags & TYPE_MASK; - /* MFS_DEFAULT is not accepted. MF_HILITE is not listed as a valid flag - for ModifyMenu, but Windows accepts it */ - item->fState = flags & MENUITEMINFO_STATE_MASK & ~MFS_DEFAULT; - - /* Don't call SetRectEmpty here! */ - - debug_print_menuitem("MENU_SetItemData to : ", item, ""); - return TRUE; -} - - -/********************************************************************** * MENU_InsertItem * * Insert (allocate) a new item into a menu. @@ -2165,8 +2092,7 @@ * Note: XP treats only bitmap handles 1 - 6 as "magic" ones * regardless of their id. */ - while (pos > 0 && (menu->items[pos - 1].fType & MFT_BITMAP) && - (INT_PTR)menu->items[pos - 1].hbmpItem >= (INT_PTR)HBMMENU_SYSTEM && + while (pos > 0 && (INT_PTR)menu->items[pos - 1].hbmpItem >= (INT_PTR)HBMMENU_SYSTEM && (INT_PTR)menu->items[pos - 1].hbmpItem <= (INT_PTR)HBMMENU_MBAR_CLOSE_D) pos--;
@@ -3547,6 +3473,14 @@ EndPaint( hwnd, &ps ); return 0; } + + case WM_PRINTCLIENT: + { + MENU_DrawPopupMenu( hwnd, (HDC)wParam, + (HMENU)GetWindowLongPtrW( hwnd, 0 ) ); + return 0; + } + case WM_ERASEBKGND: return 1;
@@ -3828,6 +3762,49 @@ }
+/********************************************************************** + * MENU_mnu2mnuii + * + * Uses flags, id and text ptr, passed by InsertMenu() and + * ModifyMenu() to setup a MenuItemInfo structure. + */ +static void MENU_mnu2mnuii( UINT flags, UINT_PTR id, LPCWSTR str, + LPMENUITEMINFOW pmii) +{ + ZeroMemory( pmii, sizeof( MENUITEMINFOW)); + pmii->cbSize = sizeof( MENUITEMINFOW); + pmii->fMask = MIIM_STATE | MIIM_ID | MIIM_FTYPE; + /* setting bitmap clears text and vice versa */ + if( IS_STRING_ITEM(flags)) { + pmii->fMask |= MIIM_STRING | MIIM_BITMAP; + if( !str) + flags |= MF_SEPARATOR; + /* Item beginning with a backspace is a help item */ + /* FIXME: wrong place, this is only true in win16 */ + else if( *str == '\b') { + flags |= MF_HELP; + str++; + } + pmii->dwTypeData = (LPWSTR)str; + } else if( flags & MFT_BITMAP){ + pmii->fMask |= MIIM_BITMAP | MIIM_STRING; + pmii->hbmpItem = (HBITMAP)(ULONG_PTR)(LOWORD(str)); + } + if( flags & MF_OWNERDRAW){ + pmii->fMask |= MIIM_DATA; + pmii->dwItemData = (ULONG_PTR) str; + } + if( flags & MF_POPUP) { + pmii->fMask |= MIIM_SUBMENU; + pmii->hSubMenu = (HMENU)id; + } + if( flags & MF_SEPARATOR) flags |= MF_GRAYED | MF_DISABLED; + pmii->fState = flags & MENUITEMINFO_STATE_MASK & ~MFS_DEFAULT; + pmii->fType = flags & MENUITEMINFO_TYPE_MASK; + pmii->wID = (UINT)id; +} + + /******************************************************************* * InsertMenuW (USER32.@) */ @@ -3835,6 +3812,7 @@ UINT_PTR id, LPCWSTR str ) { MENUITEM *item; + MENUITEMINFOW mii;
if (IS_STRING_ITEM(flags) && str) TRACE("hMenu %p, pos %d, flags %08x, id %04lx, str %s\n", @@ -3843,8 +3821,8 @@ hMenu, pos, flags, id, str );
if (!(item = MENU_InsertItem( hMenu, pos, flags ))) return FALSE; - - if (!(MENU_SetItemData( item, flags, id, str ))) + MENU_mnu2mnuii( flags, id, str, &mii); + if (!(SetMenuItemInfo_common( item, &mii, TRUE))) { RemoveMenu( hMenu, pos, flags ); return FALSE; @@ -3956,6 +3934,7 @@ UINT_PTR id, LPCWSTR str ) { MENUITEM *item; + MENUITEMINFOW mii;
if (IS_STRING_ITEM(flags)) TRACE("%p %d %04x %04lx %s\n", hMenu, pos, flags, id, debugstr_w(str) ); @@ -3964,7 +3943,8 @@
if (!(item = MENU_FindItem( &hMenu, &pos, flags ))) return FALSE; MENU_GetMenu(hMenu)->Height = 0; /* force size recalculate */ - return MENU_SetItemData( item, flags, id, str ); + MENU_mnu2mnuii( flags, id, str, &mii); + return SetMenuItemInfo_common( item, &mii, TRUE); }
@@ -4671,7 +4651,38 @@
/********************************************************************** + * MENU_depth + * + * detect if there are loops in the menu tree (or the depth is too large) + */ +static int MENU_depth( POPUPMENU *pmenu, int depth) +{ + int i; + MENUITEM *item; + int subdepth; + + depth++; + if( depth > MAXMENUDEPTH) return depth; + item = pmenu->items; + subdepth = depth; + for( i = 0; i < pmenu->nItems && subdepth <= MAXMENUDEPTH; i++, item++){ + POPUPMENU *psubmenu = item->hSubMenu ? MENU_GetMenu( item->hSubMenu) : NULL; + if( psubmenu){ + int bdepth = MENU_depth( psubmenu, depth); + if( bdepth > subdepth) subdepth = bdepth; + } + if( subdepth > MAXMENUDEPTH) + TRACE("<- hmenu %p\n", item->hSubMenu); + } + return subdepth; +} + + +/********************************************************************** * SetMenuItemInfo_common + * + * Note: does not support the MIIM_TYPE flag. Use the MIIM_FTYPE, + * MIIM_BITMAP and MIIM_STRING flags instead. */
static BOOL SetMenuItemInfo_common(MENUITEM * menu, @@ -4682,30 +4693,7 @@
debug_print_menuitem("SetMenuItemInfo_common from: ", menu, "");
- if (lpmii->fMask & MIIM_TYPE ) { - if( lpmii->fMask & ( MIIM_STRING | MIIM_FTYPE | MIIM_BITMAP)) { - WARN("invalid combination of fMask bits used\n"); - /* this does not happen on Win9x/ME */ - SetLastError( ERROR_INVALID_PARAMETER); - return FALSE; - } - - /* Remove the old type bits and replace them with the new ones */ - menu->fType &= ~MENUITEMINFO_TYPE_MASK; - menu->fType |= lpmii->fType & MENUITEMINFO_TYPE_MASK; - - if (IS_STRING_ITEM(menu->fType)) { - HeapFree(GetProcessHeap(), 0, menu->text); - set_menu_item_text( menu, lpmii->dwTypeData, unicode ); - } else if( (menu->fType) & MFT_BITMAP) - menu->hbmpItem = (HBITMAP)(ULONG_PTR)(LOWORD(lpmii->dwTypeData)); - } - if (lpmii->fMask & MIIM_FTYPE ) { - if(( lpmii->fType & MFT_BITMAP)) { - SetLastError( ERROR_INVALID_PARAMETER); - return FALSE; - } menu->fType &= ~MENUITEMINFO_TYPE_MASK; menu->fType |= lpmii->fType & MENUITEMINFO_TYPE_MASK; } @@ -4716,11 +4704,9 @@ }
if (lpmii->fMask & MIIM_STATE) - { /* Other menu items having MFS_DEFAULT are not converted to normal items */ menu->fState = lpmii->fState & MENUITEMINFO_STATE_MASK; - }
if (lpmii->fMask & MIIM_ID) menu->wID = lpmii->wID; @@ -4730,10 +4716,14 @@ if (menu->hSubMenu) { POPUPMENU *subMenu = MENU_GetMenu(menu->hSubMenu); if (subMenu) { + if( MENU_depth( subMenu, 0) > MAXMENUDEPTH) { + ERR( "Loop detected in menu hierarchy or maximum menu depth exceeded!\n"); + menu->hSubMenu = 0; + return FALSE; + } subMenu->wFlags |= MF_POPUP; menu->fType |= MF_POPUP; - } - else { + } else { SetLastError( ERROR_INVALID_PARAMETER); return FALSE; } @@ -4761,27 +4751,63 @@ }
/********************************************************************** + * MENU_NormalizeMenuItemInfoStruct + * + * Helper for SetMenuItemInfo and InsertMenuItemInfo: + * check, copy and extend the MENUITEMINFO struct from the version that the application + * supplied to the version used by wine source. */ +static BOOL MENU_NormalizeMenuItemInfoStruct( const MENUITEMINFOW *pmii_in, + MENUITEMINFOW *pmii_out ) +{ + /* do we recognize the size? */ + if( pmii_in->cbSize != sizeof( MENUITEMINFOW) && + pmii_in->cbSize != sizeof( MENUITEMINFOW) - sizeof( pmii_in->hbmpItem)) { + SetLastError( ERROR_INVALID_PARAMETER); + return FALSE; + } + /* copy the fields that we have */ + memcpy( pmii_out, pmii_in, pmii_in->cbSize); + /* if the hbmpItem member is missing then extend */ + if( pmii_in->cbSize != sizeof( MENUITEMINFOW)) { + pmii_out->cbSize = sizeof( MENUITEMINFOW); + pmii_out->hbmpItem = NULL; + } + /* test for invalid bit combinations */ + if( (pmii_out->fMask & MIIM_TYPE && + pmii_out->fMask & (MIIM_STRING | MIIM_FTYPE | MIIM_BITMAP)) || + (pmii_out->fMask & MIIM_FTYPE && pmii_out->fType & MFT_BITMAP)) { + WARN("invalid combination of fMask bits used\n"); + /* this does not happen on Win9x/ME */ + SetLastError( ERROR_INVALID_PARAMETER); + return FALSE; + } + /* convert old style (MIIM_TYPE) to the new */ + if( pmii_out->fMask & MIIM_TYPE){ + pmii_out->fMask |= MIIM_FTYPE; + if( IS_STRING_ITEM(pmii_out->fType)){ + pmii_out->fMask |= MIIM_STRING; + } else if( (pmii_out->fType) & MFT_BITMAP){ + pmii_out->fMask |= MIIM_BITMAP; + pmii_out->hbmpItem = (HBITMAP)(ULONG_PTR)(LOWORD(pmii_out->dwTypeData)); + } + } + return TRUE; +} + +/********************************************************************** * SetMenuItemInfoA (USER32.@) */ BOOL WINAPI SetMenuItemInfoA(HMENU hmenu, UINT item, BOOL bypos, const MENUITEMINFOA *lpmii) { - MENUITEMINFOA mii; + MENUITEMINFOW mii;
TRACE("hmenu %p, item %u, by pos %d, info %p\n", hmenu, item, bypos, lpmii);
- if( lpmii->cbSize != sizeof( mii) && - lpmii->cbSize != sizeof( mii) - sizeof ( mii.hbmpItem)) { - SetLastError( ERROR_INVALID_PARAMETER); - return FALSE; - } - memcpy( &mii, lpmii, lpmii->cbSize); - if( lpmii->cbSize != sizeof( mii)) { - mii.cbSize = sizeof( mii); - mii.hbmpItem = NULL; - } + if (!MENU_NormalizeMenuItemInfoStruct( (MENUITEMINFOW *)lpmii, &mii )) return FALSE; + return SetMenuItemInfo_common(MENU_FindItem(&hmenu, &item, bypos? MF_BYPOSITION : 0), - (const MENUITEMINFOW *)&mii, FALSE); + &mii, FALSE); }
/********************************************************************** @@ -4794,16 +4820,7 @@
TRACE("hmenu %p, item %u, by pos %d, info %p\n", hmenu, item, bypos, lpmii);
- if( lpmii->cbSize != sizeof( mii) && - lpmii->cbSize != sizeof( mii) - sizeof ( mii.hbmpItem)) { - SetLastError( ERROR_INVALID_PARAMETER); - return FALSE; - } - memcpy( &mii, lpmii, lpmii->cbSize); - if( lpmii->cbSize != sizeof( mii)) { - mii.cbSize = sizeof( mii); - mii.hbmpItem = NULL; - } + if (!MENU_NormalizeMenuItemInfoStruct( lpmii, &mii )) return FALSE; return SetMenuItemInfo_common(MENU_FindItem(&hmenu, &item, bypos? MF_BYPOSITION : 0), &mii, TRUE); } @@ -4906,23 +4923,14 @@ const MENUITEMINFOA *lpmii) { MENUITEM *item; - MENUITEMINFOA mii; + MENUITEMINFOW mii;
TRACE("hmenu %p, item %04x, by pos %d, info %p\n", hMenu, uItem, bypos, lpmii);
- if( lpmii->cbSize != sizeof( mii) && - lpmii->cbSize != sizeof( mii) - sizeof ( mii.hbmpItem)) { - SetLastError( ERROR_INVALID_PARAMETER); - return FALSE; - } - memcpy( &mii, lpmii, lpmii->cbSize); - if( lpmii->cbSize != sizeof( mii)) { - mii.cbSize = sizeof( mii); - mii.hbmpItem = NULL; - } + if (!MENU_NormalizeMenuItemInfoStruct( (MENUITEMINFOW *)lpmii, &mii )) return FALSE;
item = MENU_InsertItem(hMenu, uItem, bypos ? MF_BYPOSITION : 0 ); - return SetMenuItemInfo_common(item, (const MENUITEMINFOW *)&mii, FALSE); + return SetMenuItemInfo_common(item, &mii, FALSE); }
@@ -4937,16 +4945,7 @@
TRACE("hmenu %p, item %04x, by pos %d, info %p\n", hMenu, uItem, bypos, lpmii);
- if( lpmii->cbSize != sizeof( mii) && - lpmii->cbSize != sizeof( mii) - sizeof ( mii.hbmpItem)) { - SetLastError( ERROR_INVALID_PARAMETER); - return FALSE; - } - memcpy( &mii, lpmii, lpmii->cbSize); - if( lpmii->cbSize != sizeof( mii)) { - mii.cbSize = sizeof( mii); - mii.hbmpItem = NULL; - } + if (!MENU_NormalizeMenuItemInfoStruct( lpmii, &mii )) return FALSE;
item = MENU_InsertItem(hMenu, uItem, bypos ? MF_BYPOSITION : 0 ); return SetMenuItemInfo_common(item, &mii, TRUE);
Modified: branches/arwinss/reactos/dll/win32/user32/message.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user32... ============================================================================== --- branches/arwinss/reactos/dll/win32/user32/message.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/message.c [iso-8859-1] Fri Sep 25 20:24:36 2009 @@ -3016,12 +3016,23 @@ if (msg->message < WM_KEYFIRST || msg->message > WM_KEYLAST) return FALSE; if (msg->message != WM_KEYDOWN && msg->message != WM_SYSKEYDOWN) return TRUE;
- TRACE_(key)("Translating key %s (%04lx), scancode %02x\n", - SPY_GetVKeyName(msg->wParam), msg->wParam, LOBYTE(HIWORD(msg->lParam))); + TRACE_(key)("Translating key %s (%04lx), scancode %04x\n", + SPY_GetVKeyName(msg->wParam), msg->wParam, HIWORD(msg->lParam)); + + switch (msg->wParam) + { + case VK_PACKET: + message = (msg->message == WM_KEYDOWN) ? WM_CHAR : WM_SYSCHAR; + TRACE_(key)("PostMessageW(%p,%s,%04x,%08x)\n", + msg->hwnd, SPY_GetMsgName(message, msg->hwnd), HIWORD(msg->lParam), LOWORD(msg->lParam)); + PostMessageW( msg->hwnd, message, HIWORD(msg->lParam), LOWORD(msg->lParam)); + return TRUE; #if 0 - if ( msg->wParam == VK_PROCESSKEY ) + case VK_PROCESSKEY: return ImmTranslateMessage(msg->hwnd, msg->message, msg->wParam, msg->lParam); #endif + } + GetKeyboardState( state ); /* FIXME : should handle ToUnicode yielding 2 */ switch (ToUnicode(msg->wParam, HIWORD(msg->lParam), state, wp, 2, 0))
Modified: branches/arwinss/reactos/dll/win32/user32/resources/user32.rc URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user32... ============================================================================== --- branches/arwinss/reactos/dll/win32/user32/resources/user32.rc [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/resources/user32.rc [iso-8859-1] Fri Sep 25 20:24:36 2009 @@ -53,13 +53,13 @@ #include "resources/user32_Da.rc" #include "resources/user32_De.rc" #include "resources/user32_En.rc" -#include "resources/user32_Eo.rc" -#include "resources/user32_Es.rc" -#include "resources/user32_Fi.rc" +//#include "resources/user32_Eo.rc" +//#include "resources/user32_Es.rc" +//#include "resources/user32_Fi.rc" #include "resources/user32_Fr.rc" -#include "resources/user32_Hu.rc" -#include "resources/user32_It.rc" -#include "resources/user32_Ko.rc" +//#include "resources/user32_Hu.rc" +//#include "resources/user32_It.rc" +//#include "resources/user32_Ko.rc" #include "resources/user32_Lt.rc" #include "resources/user32_Nl.rc" //#include "resources/user32_No.rc"
Modified: branches/arwinss/reactos/dll/win32/user32/resources/user32_De.rc URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user32... ============================================================================== --- branches/arwinss/reactos/dll/win32/user32/resources/user32_De.rc [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/resources/user32_De.rc [iso-8859-1] Fri Sep 25 20:24:36 2009 @@ -19,31 +19,33 @@
#include "resources.h"
+#pragma code_page(65001) + LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
SYSMENU MENU LOADONCALL MOVEABLE DISCARDABLE { MENUITEM "&Wiederherstellen", 61728 MENUITEM "&Verschieben", 61456 - MENUITEM "&Größe", 61440 + MENUITEM "&GröÃe", 61440 MENUITEM "Mi&nimieren", 61472 MENUITEM "Ma&ximieren", 61488 MENUITEM SEPARATOR - MENUITEM "&Schließen\tAlt-F4", 61536 + MENUITEM "&SchlieÃen\tAlt-F4", 61536 MENUITEM SEPARATOR - MENUITEM "&Über Wine...", 61761 + MENUITEM "&Ãber Wine...", 61761 }
EDITMENU MENU LOADONCALL MOVEABLE DISCARDABLE { POPUP "" BEGIN - MENUITEM "&Rückgängig", EM_UNDO + MENUITEM "&Rückgängig", EM_UNDO MENUITEM SEPARATOR MENUITEM "&Ausschneiden", WM_CUT MENUITEM "&Kopieren", WM_COPY - MENUITEM "&Einfügen", WM_PASTE - MENUITEM "&Löschen", WM_CLEAR + MENUITEM "&Einfügen", WM_PASTE + MENUITEM "&Löschen", WM_CLEAR MENUITEM SEPARATOR MENUITEM "&Alles markieren", EM_SETSEL END @@ -54,21 +56,21 @@ BEGIN ICON "", 1088, 8, 20, 16, 16, WS_CHILD | WS_VISIBLE LTEXT "", 100, 32, 4, 176, 48, WS_CHILD | WS_VISIBLE | WS_GROUP | SS_NOPREFIX - PUSHBUTTON "&OK", 1, 16, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "&Abbrechen", 2, 64, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "Abbr&uch", 3, 112, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "&Wiederholen", 4, 160, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "&Ignorieren", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "&Ja", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "&Nein", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "&OK", 1, 16, 56, 60, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "&Abbrechen", 2, 84, 56, 60, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "Abbr&uch", 3, 152, 56, 60, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "&Wiederholen", 4, 220, 56, 60, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "&Ignorieren", 5, 288, 56, 60, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "&Ja", 6, 356, 56, 60, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "&Nein", 7, 424, 56, 60, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "&Erneut versuchen", 10, 492, 56, 60, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "&Fortsetzen", 11, 560, 56, 60, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "Hilfe", 9, 628, 56, 60, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP END
MDI_MOREWINDOWS DIALOG FIXED IMPURE 20, 20, 232, 122 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Fenster auswählen" +CAPTION "Fenster auswählen" FONT 8, "MS Shell Dlg" BEGIN LISTBOX MDI_IDC_LISTBOX, 5, 7, 222, 90, WS_VSCROLL | WS_HSCROLL /* defined in mdi.h */
Modified: branches/arwinss/reactos/dll/win32/user32/resources/user32_Fr.rc URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user32... ============================================================================== --- branches/arwinss/reactos/dll/win32/user32/resources/user32_Fr.rc [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/resources/user32_Fr.rc [iso-8859-1] Fri Sep 25 20:24:36 2009 @@ -1,5 +1,5 @@ /* - * User + * User32 * French language support * * Copyright 1995 Alexandre Julliard @@ -21,19 +21,22 @@
#include "resources.h"
+/* UTF-8 */ +#pragma code_page(65001) + LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
SYSMENU MENU LOADONCALL MOVEABLE DISCARDABLE { MENUITEM "&Restauration", 61728 - MENUITEM "&Déplacement", 61456 + MENUITEM "&Déplacement", 61456 MENUITEM "Di&mension", 61440 - MENUITEM "Réduct&ion", 61472 + MENUITEM "Réduct&ion", 61472 MENUITEM "&Agrandissement", 61488 MENUITEM SEPARATOR MENUITEM "&Fermeture\tAlt-F4", 61536 MENUITEM SEPARATOR - MENUITEM "À propos de &Wine...", 61761 + MENUITEM "à propos de &Wine...", 61761 }
EDITMENU MENU LOADONCALL MOVEABLE DISCARDABLE @@ -42,12 +45,12 @@ BEGIN MENUITEM "&Annuler", EM_UNDO MENUITEM SEPARATOR - MENUITEM "Coupe&r", WM_CUT - MENUITEM "&Copier", WM_COPY + MENUITEM "&Couper", WM_CUT + MENUITEM "Co&pier", WM_COPY MENUITEM "C&oller", WM_PASTE MENUITEM "E&ffacer", WM_CLEAR MENUITEM SEPARATOR - MENUITEM "Tout &sélectionner", EM_SETSEL + MENUITEM "&Tout sélectionner", EM_SETSEL END }
@@ -58,19 +61,19 @@ LTEXT "", 100, 32, 4, 176, 48, WS_CHILD | WS_VISIBLE | WS_GROUP | SS_NOPREFIX PUSHBUTTON "&Ok", 1, 16, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP PUSHBUTTON "&Annuler", 2, 64, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "&Annuler", 3, 112, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "&Répéter", 4, 160, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "A&bandonner", 3, 112, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "Ré&péter", 4, 160, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP PUSHBUTTON "&Ignorer", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP PUSHBUTTON "&Oui", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP PUSHBUTTON "&Non", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "&Réessayer", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "&Continuer", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "Aide", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP END
MDI_MOREWINDOWS DIALOG FIXED IMPURE 20, 20, 232, 122 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Sélection de fenêtre" +CAPTION "Sélection de fenêtre" FONT 8, "MS Shell Dlg" BEGIN LISTBOX MDI_IDC_LISTBOX, 5, 7, 222, 90, WS_VSCROLL | WS_HSCROLL /* defined in mdi.h */ @@ -82,5 +85,5 @@ STRINGTABLE DISCARDABLE { IDS_ERROR "Erreur" - IDS_MDI_MOREWINDOWS "&Plus de fenêtres..." + IDS_MDI_MOREWINDOWS "&Plus de fenêtres..." }
Modified: branches/arwinss/reactos/dll/win32/user32/resources/user32_Pt.rc URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user32... ============================================================================== --- branches/arwinss/reactos/dll/win32/user32/resources/user32_Pt.rc [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/resources/user32_Pt.rc [iso-8859-1] Fri Sep 25 20:24:36 2009 @@ -1,6 +1,7 @@ /* * Copyright 1997 Ricardo R. Massaro - * Copyright 2006 Américo José Melo + * Copyright 2006 Américo José Melo + * Copyright 2009 Ricardo Filipe * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -18,6 +19,8 @@ */
#include "resources.h" + +#pragma code_page(65001)
LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
@@ -85,23 +88,23 @@ }
-LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN +LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL
MSGBOX DIALOG 100, 80, 216, 168 STYLE DS_MODALFRAME | DS_NOIDLEMSG | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU BEGIN ICON "", 1088, 8, 20, 16, 16, WS_CHILD | WS_VISIBLE LTEXT "", 100, 32, 4, 176, 48, WS_CHILD | WS_VISIBLE | WS_GROUP | SS_NOPREFIX - PUSHBUTTON "&Ok", 1, 16, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "&OK", 1, 16, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP PUSHBUTTON "&Cancelar", 2, 64, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP PUSHBUTTON "&Abortar", 3, 112, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP PUSHBUTTON "&Repetir", 4, 160, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP PUSHBUTTON "&Ignorar", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP PUSHBUTTON "&Sim", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "&Não", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "&Try Again", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "&Continue", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "Help", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "&Não", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "&Tente Novamente", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "&Continuar", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "Ajuda", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP END
@@ -130,7 +133,7 @@ END
-LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN +LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE {
Modified: branches/arwinss/reactos/dll/win32/user32/resources/user32_Ru.rc URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user32... ============================================================================== --- branches/arwinss/reactos/dll/win32/user32/resources/user32_Ru.rc [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/resources/user32_Ru.rc [iso-8859-1] Fri Sep 25 20:24:36 2009 @@ -18,33 +18,36 @@
#include "resources.h"
+/* UTF-8 */ +#pragma code_page(65001) + LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
SYSMENU MENU LOADONCALL MOVEABLE DISCARDABLE { - MENUITEM "&Âîññòàíîâèòü", 61728 - MENUITEM "&Ïåðåìåñòèòü", 61456 - MENUITEM "Ðàç&ìåð", 61440 - MENUITEM "&Ñâåðíóòü", 61472 - MENUITEM "&Ðàçâåðíóòü", 61488 + MENUITEM "&ÐоÑÑÑановиÑÑ", 61728 + MENUITEM "&ÐеÑемеÑÑиÑÑ", 61456 + MENUITEM "Раз&меÑ", 61440 + MENUITEM "&СвеÑнÑÑÑ", 61472 + MENUITEM "&РазвеÑнÑÑÑ", 61488 MENUITEM SEPARATOR - MENUITEM "&Çàêðûòü\tAlt-F4", 61536 + MENUITEM "&ÐакÑÑÑÑ\tAlt-F4", 61536 MENUITEM SEPARATOR - MENUITEM "&Î ïðîåêòå Wine...", 61761 + MENUITEM "&РпÑоекÑе Wine...", 61761 }
EDITMENU MENU LOADONCALL MOVEABLE DISCARDABLE { POPUP "" BEGIN - MENUITEM "&Îòìåíèòü", EM_UNDO + MENUITEM "&ÐÑмениÑÑ", EM_UNDO MENUITEM SEPARATOR - MENUITEM "&Âûðåçàòü", WM_CUT - MENUITEM "&Êîïèðîâàòü", WM_COPY - MENUITEM "Âñò&àâèòü", WM_PASTE - MENUITEM "&Óäàëèòü", WM_CLEAR + MENUITEM "&ÐÑÑезаÑÑ", WM_CUT + MENUITEM "&ÐопиÑоваÑÑ", WM_COPY + MENUITEM "ÐÑÑ&авиÑÑ", WM_PASTE + MENUITEM "&УдалиÑÑ", WM_CLEAR MENUITEM SEPARATOR - MENUITEM "Âûäåëèòü â&ñå", EM_SETSEL + MENUITEM "ÐÑделиÑÑ Ð²&Ñе", EM_SETSEL END }
@@ -54,15 +57,15 @@ ICON "", 1088, 8, 20, 16, 16, WS_CHILD | WS_VISIBLE LTEXT "", 100, 32, 4, 176, 48, WS_CHILD | WS_VISIBLE | WS_GROUP | SS_NOPREFIX PUSHBUTTON "&OK", 1, 16, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "Î&òìåíà", 2, 64, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "&Îòìåíèòü", 3, 112, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "Ïî&âòîð", 4, 160, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "&Ïðîïóñòèòü", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "&Äà", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "&Íåò", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "Ïî&âòîðèòü", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "Ï&ðîëîæèòü", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "Ïîìîùü", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "Ð&Ñмена", 2, 64, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "&ÐÑмениÑÑ", 3, 112, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "Ðо&вÑоÑ", 4, 160, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "&ÐÑопÑÑÑиÑÑ", 5, 208, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "&Ðа", 6, 256, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "&ÐеÑ", 7, 304, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "Ðо&вÑоÑиÑÑ", 10, 352, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "Ð&ÑоложиÑÑ", 11, 400, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "ÐомоÑÑ", 9, 448, 56, 40, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP END
MDI_MOREWINDOWS DIALOG FIXED IMPURE 20, 20, 232, 122 @@ -72,12 +75,12 @@ BEGIN LISTBOX MDI_IDC_LISTBOX, 5, 7, 222, 90, WS_VSCROLL | WS_HSCROLL /* defined in mdi.h */ DEFPUSHBUTTON "OK", IDOK, 75, 100, 35, 14 - PUSHBUTTON "Îòìåíèòü", IDCANCEL, 120, 100, 35, 14 + PUSHBUTTON "ÐÑмениÑÑ", IDCANCEL, 120, 100, 35, 14 END
STRINGTABLE DISCARDABLE { - IDS_ERROR "ÎØÈÁÊÀ" - IDS_MDI_MOREWINDOWS "&Åù¸ îêíà..." + IDS_ERROR "ÐШÐÐÐÐ" + IDS_MDI_MOREWINDOWS "&ÐÑÑ Ð¾ÐºÐ½Ð°..." }
Modified: branches/arwinss/reactos/dll/win32/user32/spy.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user32... ============================================================================== --- branches/arwinss/reactos/dll/win32/user32/spy.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/spy.c [iso-8859-1] Fri Sep 25 20:24:36 2009 @@ -731,7 +731,7 @@ };
-#define SPY_MAX_LVMMSGNUM 140 +#define SPY_MAX_LVMMSGNUM 182 static const char * const LVMMessageTypeNames[SPY_MAX_LVMMSGNUM + 1] = { "LVM_GETBKCOLOR", /* 1000 */ @@ -872,9 +872,51 @@ NULL, NULL, NULL, - NULL, "LVM_SETBKIMAGEW", - "LVM_GETBKIMAGEW" /* 0x108B */ + "LVM_GETBKIMAGEW", /* 0x108B */ + "LVM_SETSELECTEDCOLUMN", + "LVM_SETTILEWIDTH", + "LVM_SETVIEW", + "LVM_GETVIEW", + NULL, + "LVM_INSERTGROUP", + NULL, + "LVM_SETGROUPINFO", + NULL, + "LVM_GETGROUPINFO", + "LVM_REMOVEGROUP", + "LVM_MOVEGROUP", + NULL, + NULL, + "LVM_MOVEITEMTOGROUP", + "LVM_SETGROUPMETRICS", + "LVM_GETGROUPMETRICS", + "LVM_ENABLEGROUPVIEW", + "LVM_SORTGROUPS", + "LVM_INSERTGROUPSORTED", + "LVM_REMOVEALLGROUPS", + "LVM_HASGROUP", + "LVM_SETTILEVIEWINFO", + "LVM_GETTILEVIEWINFO", + "LVM_SETTILEINFO", + "LVM_GETTILEINFO", + "LVM_SETINSERTMARK", + "LVM_GETINSERTMARK", + "LVM_INSERTMARKHITTEST", + "LVM_GETINSERTMARKRECT", + "LVM_SETINSERTMARKCOLOR", + "LVM_GETINSERTMARKCOLOR", + NULL, + "LVM_SETINFOTIP", + "LVM_GETSELECTEDCOLUMN", + "LVM_ISGROUPVIEWENABLED", + "LVM_GETOUTLINECOLOR", + "LVM_SETOUTLINECOLOR", + NULL, + "LVM_CANCELEDITLABEL", + "LVM_MAPINDEXTOID", + "LVM_MAPIDTOINDEX", + "LVM_ISITEMVISIBLE" };
@@ -1328,7 +1370,7 @@ "VK_ICO_00", /* 0xE4 */ "VK_PROCESSKEY", /* 0xE5 */ NULL, /* 0xE6 */ - NULL, /* 0xE7 */ + "VK_PACKET", /* 0xE7 */ NULL, /* 0xE8 */ NULL, /* 0xE9 */ NULL, /* 0xEA */
Modified: branches/arwinss/reactos/dll/win32/user32/win.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user32... ============================================================================== --- branches/arwinss/reactos/dll/win32/user32/win.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/win.c [iso-8859-1] Fri Sep 25 20:24:36 2009 @@ -1780,6 +1780,7 @@ static const WCHAR command_line[] = {'\','e','x','p','l','o','r','e','r','.','e','x','e',' ','/','d','e','s','k','t','o','p',0}; STARTUPINFOW si; PROCESS_INFORMATION pi; + WCHAR systemdir[MAX_PATH]; WCHAR cmdline[MAX_PATH + sizeof(command_line)/sizeof(WCHAR)];
memset( &si, 0, sizeof(si) ); @@ -1789,10 +1790,11 @@ si.hStdOutput = 0; si.hStdError = GetStdHandle( STD_ERROR_HANDLE );
- GetSystemDirectoryW( cmdline, MAX_PATH ); + GetSystemDirectoryW( systemdir, MAX_PATH ); + lstrcpyW( cmdline, systemdir ); lstrcatW( cmdline, command_line ); if (CreateProcessW( NULL, cmdline, NULL, NULL, FALSE, DETACHED_PROCESS, - NULL, NULL, &si, &pi )) + NULL, systemdir, &si, &pi )) { TRACE( "started explorer pid %04x tid %04x\n", pi.dwProcessId, pi.dwThreadId ); WaitForInputIdle( pi.hProcess, 10000 );
Modified: branches/arwinss/reactos/dll/win32/user32/winpos.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user32... ============================================================================== --- branches/arwinss/reactos/dll/win32/user32/winpos.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/winpos.c [iso-8859-1] Fri Sep 25 20:24:36 2009 @@ -86,9 +86,10 @@ /*********************************************************************** * SwitchToThisWindow (USER32.@) */ -void WINAPI SwitchToThisWindow( HWND hwnd, BOOL restore ) -{ - ShowWindow( hwnd, restore ? SW_RESTORE : SW_SHOWMINIMIZED ); +void WINAPI SwitchToThisWindow( HWND hwnd, BOOL alt_tab ) +{ + if (IsIconic( hwnd )) ShowWindow( hwnd, SW_RESTORE ); + else BringWindowToTop( hwnd ); }
@@ -1078,14 +1079,18 @@ /* should happen only in CreateWindowEx() */ int wParam = SIZE_RESTORED; RECT client = wndPtr->rectClient; + LPARAM lparam = MAKELONG( client.right - client.left, client.bottom - client.top );
wndPtr->flags &= ~WIN_NEED_SIZE; if (wndPtr->dwStyle & WS_MAXIMIZE) wParam = SIZE_MAXIMIZED; - else if (wndPtr->dwStyle & WS_MINIMIZE) wParam = SIZE_MINIMIZED; + else if (wndPtr->dwStyle & WS_MINIMIZE) + { + wParam = SIZE_MINIMIZED; + lparam = 0; + } WIN_ReleasePtr( wndPtr );
- SendMessageW( hwnd, WM_SIZE, wParam, - MAKELONG( client.right - client.left, client.bottom - client.top )); + SendMessageW( hwnd, WM_SIZE, wParam, lparam ); SendMessageW( hwnd, WM_MOVE, 0, MAKELONG( client.left, client.top )); } else WIN_ReleasePtr( wndPtr );
Modified: branches/arwinss/reactos/include/reactos/wine/server_protocol.h URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/include/reactos/... ============================================================================== --- branches/arwinss/reactos/include/reactos/wine/server_protocol.h [iso-8859-1] (original) +++ branches/arwinss/reactos/include/reactos/wine/server_protocol.h [iso-8859-1] Fri Sep 25 20:24:36 2009 @@ -140,7 +140,7 @@ { struct { unsigned int eip, ebp, esp, eflags, cs, ss; } i386_regs; struct { unsigned __int64 rip, rbp, rsp; - unsigned int cs, ss, flags, mxcsr; } x86_64_regs; + unsigned int cs, ss, flags; } x86_64_regs; struct { unsigned __int64 fir; unsigned int psr; } alpha_regs; struct { unsigned int iar, msr, ctr, lr, dar, dsisr, trap; } powerpc_regs; @@ -206,6 +206,42 @@
typedef __int64 timeout_t; #define TIMEOUT_INFINITE (((timeout_t)0x7fffffff) << 32 | 0xffffffff) + + +typedef struct +{ + unsigned int debug_flags; + unsigned int console_flags; + obj_handle_t console; + obj_handle_t hstdin; + obj_handle_t hstdout; + obj_handle_t hstderr; + unsigned int x; + unsigned int y; + unsigned int xsize; + unsigned int ysize; + unsigned int xchars; + unsigned int ychars; + unsigned int attribute; + unsigned int flags; + unsigned int show; + data_size_t curdir_len; + data_size_t dllpath_len; + data_size_t imagepath_len; + data_size_t cmdline_len; + data_size_t title_len; + data_size_t desktop_len; + data_size_t shellinfo_len; + data_size_t runtime_len; + + + + + + + + +} startup_info_t;
typedef struct @@ -532,14 +568,12 @@ unsigned int create_flags; int socket_fd; obj_handle_t exe_file; - obj_handle_t hstdin; - obj_handle_t hstdout; - obj_handle_t hstderr; unsigned int process_access; unsigned int process_attr; unsigned int thread_access; unsigned int thread_attr; - /* VARARG(info,startup_info); */ + data_size_t info_size; + /* VARARG(info,startup_info,info_size); */ /* VARARG(env,unicode_str); */ }; struct new_process_reply @@ -594,10 +628,8 @@ { struct reply_header __header; obj_handle_t exe_file; - obj_handle_t hstdin; - obj_handle_t hstdout; - obj_handle_t hstderr; - /* VARARG(info,startup_info); */ + data_size_t info_size; + /* VARARG(info,startup_info,info_size); */ /* VARARG(env,unicode_str); */ };
@@ -690,6 +722,8 @@ timeout_t end_time; int exit_code; int priority; + cpu_type_t cpu; + char __pad_60[4]; };
@@ -2854,6 +2888,9 @@ { struct request_header __header; obj_handle_t handle; + client_ptr_t iosb; + int only_thread; + char __pad_28[4]; }; struct cancel_async_reply { @@ -5307,6 +5344,6 @@ struct set_window_layered_info_reply set_window_layered_info_reply; };
-#define SERVER_PROTOCOL_VERSION 386 +#define SERVER_PROTOCOL_VERSION 390
#endif /* __WINE_WINE_SERVER_PROTOCOL_H */
Modified: branches/arwinss/reactos/subsystems/win32/win32k/include/request.h URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/subsystems/win32... ============================================================================== --- branches/arwinss/reactos/subsystems/win32/win32k/include/request.h [iso-8859-1] (original) +++ branches/arwinss/reactos/subsystems/win32/win32k/include/request.h [iso-8859-1] Fri Sep 25 20:24:36 2009 @@ -589,13 +589,11 @@ C_ASSERT( FIELD_OFFSET(struct new_process_request, create_flags) == 16 ); C_ASSERT( FIELD_OFFSET(struct new_process_request, socket_fd) == 20 ); C_ASSERT( FIELD_OFFSET(struct new_process_request, exe_file) == 24 ); -C_ASSERT( FIELD_OFFSET(struct new_process_request, hstdin) == 28 ); -C_ASSERT( FIELD_OFFSET(struct new_process_request, hstdout) == 32 ); -C_ASSERT( FIELD_OFFSET(struct new_process_request, hstderr) == 36 ); -C_ASSERT( FIELD_OFFSET(struct new_process_request, process_access) == 40 ); -C_ASSERT( FIELD_OFFSET(struct new_process_request, process_attr) == 44 ); -C_ASSERT( FIELD_OFFSET(struct new_process_request, thread_access) == 48 ); -C_ASSERT( FIELD_OFFSET(struct new_process_request, thread_attr) == 52 ); +C_ASSERT( FIELD_OFFSET(struct new_process_request, process_access) == 28 ); +C_ASSERT( FIELD_OFFSET(struct new_process_request, process_attr) == 32 ); +C_ASSERT( FIELD_OFFSET(struct new_process_request, thread_access) == 36 ); +C_ASSERT( FIELD_OFFSET(struct new_process_request, thread_attr) == 40 ); +C_ASSERT( FIELD_OFFSET(struct new_process_request, info_size) == 44 ); C_ASSERT( FIELD_OFFSET(struct new_process_reply, info) == 8 ); C_ASSERT( FIELD_OFFSET(struct new_process_reply, pid) == 12 ); C_ASSERT( FIELD_OFFSET(struct new_process_reply, phandle) == 16 ); @@ -614,10 +612,8 @@ C_ASSERT( FIELD_OFFSET(struct new_thread_reply, handle) == 12 ); C_ASSERT( sizeof(struct new_thread_reply) == 16 ); C_ASSERT( FIELD_OFFSET(struct get_startup_info_reply, exe_file) == 8 ); -C_ASSERT( FIELD_OFFSET(struct get_startup_info_reply, hstdin) == 12 ); -C_ASSERT( FIELD_OFFSET(struct get_startup_info_reply, hstdout) == 16 ); -C_ASSERT( FIELD_OFFSET(struct get_startup_info_reply, hstderr) == 20 ); -C_ASSERT( sizeof(struct get_startup_info_reply) == 24 ); +C_ASSERT( FIELD_OFFSET(struct get_startup_info_reply, info_size) == 12 ); +C_ASSERT( sizeof(struct get_startup_info_reply) == 16 ); C_ASSERT( FIELD_OFFSET(struct init_process_done_request, gui) == 12 ); C_ASSERT( FIELD_OFFSET(struct init_process_done_request, module) == 16 ); C_ASSERT( FIELD_OFFSET(struct init_process_done_request, ldt_copy) == 24 ); @@ -656,7 +652,8 @@ C_ASSERT( FIELD_OFFSET(struct get_process_info_reply, end_time) == 40 ); C_ASSERT( FIELD_OFFSET(struct get_process_info_reply, exit_code) == 48 ); C_ASSERT( FIELD_OFFSET(struct get_process_info_reply, priority) == 52 ); -C_ASSERT( sizeof(struct get_process_info_reply) == 56 ); +C_ASSERT( FIELD_OFFSET(struct get_process_info_reply, cpu) == 56 ); +C_ASSERT( sizeof(struct get_process_info_reply) == 64 ); C_ASSERT( FIELD_OFFSET(struct set_process_info_request, handle) == 12 ); C_ASSERT( FIELD_OFFSET(struct set_process_info_request, mask) == 16 ); C_ASSERT( FIELD_OFFSET(struct set_process_info_request, priority) == 20 ); @@ -1312,7 +1309,9 @@ C_ASSERT( FIELD_OFFSET(struct register_async_request, count) == 56 ); C_ASSERT( sizeof(struct register_async_request) == 64 ); C_ASSERT( FIELD_OFFSET(struct cancel_async_request, handle) == 12 ); -C_ASSERT( sizeof(struct cancel_async_request) == 16 ); +C_ASSERT( FIELD_OFFSET(struct cancel_async_request, iosb) == 16 ); +C_ASSERT( FIELD_OFFSET(struct cancel_async_request, only_thread) == 24 ); +C_ASSERT( sizeof(struct cancel_async_request) == 32 ); C_ASSERT( FIELD_OFFSET(struct ioctl_request, code) == 12 ); C_ASSERT( FIELD_OFFSET(struct ioctl_request, async) == 16 ); C_ASSERT( FIELD_OFFSET(struct ioctl_request, blocking) == 56 );
Propchange: branches/arwinss/reactos/subsystems/win32/win32k/include/request.h ------------------------------------------------------------------------------ --- svn:mergeinfo (added) +++ svn:mergeinfo Fri Sep 25 20:24:36 2009 @@ -1,0 +1,3 @@ +/branches/ros-amd64-bringup/reactos/subsystems/win32/win32k/include/request.h:35746,35789,36614,36930,38148,38151,38265,38268,39333,39345,40991,41000,41027-41028,41050,41052,41082-41086,41549,43080 +/trunk/reactos/subsystems/win32/win32k/include/request.h:42000-43126 +/vendor/wine/server/current/request.h:43136