Author: fireball
Date: Fri Jan 22 23:30:22 2010
New Revision: 45206
URL:
http://svn.reactos.org/svn/reactos?rev=45206&view=rev
Log:
[vendor/wine]
- Import Wine-1.1.37 gdi32, user32, winex11.drv, wineserver.
Modified:
vendor/wine/dlls/gdi32/current/freetype.c
vendor/wine/dlls/gdi32/current/tests/font.c
vendor/wine/dlls/user32/current/defwnd.c
vendor/wine/dlls/user32/current/input.c
vendor/wine/dlls/user32/current/menu.c
vendor/wine/dlls/user32/current/misc.c
vendor/wine/dlls/user32/current/scroll.c
vendor/wine/dlls/user32/current/tests/menu.c
vendor/wine/dlls/user32/current/tests/msg.c
vendor/wine/dlls/user32/current/tests/win.c
vendor/wine/dlls/winex11.drv/current/keyboard.c
vendor/wine/dlls/winex11.drv/current/systray.c
vendor/wine/server/current/change.c
vendor/wine/server/current/main.c
vendor/wine/server/current/queue.c
vendor/wine/server/current/sock.c
Modified: vendor/wine/dlls/gdi32/current/freetype.c
URL:
http://svn.reactos.org/svn/reactos/vendor/wine/dlls/gdi32/current/freetype.…
==============================================================================
--- vendor/wine/dlls/gdi32/current/freetype.c [iso-8859-1] (original)
+++ vendor/wine/dlls/gdi32/current/freetype.c [iso-8859-1] Fri Jan 22 23:30:22 2010
@@ -2171,7 +2171,7 @@
BOOL WineEngRemoveFontResourceEx(LPCWSTR file, DWORD flags, PVOID pdv)
{
GDI_CheckNotLock();
- FIXME(":stub\n");
+ FIXME("(%s, %x, %p): stub\n", debugstr_w(file), flags, pdv);
return TRUE;
}
@@ -6679,25 +6679,25 @@
INT WineEngAddFontResourceEx(LPCWSTR file, DWORD flags, PVOID pdv)
{
- FIXME(":stub\n");
+ FIXME("(%s, %x, %p): stub\n", debugstr_w(file), flags, pdv);
return 1;
}
INT WineEngRemoveFontResourceEx(LPCWSTR file, DWORD flags, PVOID pdv)
{
- FIXME(":stub\n");
+ FIXME("(%s, %x, %p): stub\n", debugstr_w(file), flags, pdv);
return TRUE;
}
HANDLE WineEngAddFontMemResourceEx(PVOID pbFont, DWORD cbFont, PVOID pdv, DWORD
*pcFonts)
{
- FIXME(":stub\n");
+ FIXME("(%p, %u, %p, %p): stub\n", pbFont, cbFont, pdv, pcFonts);
return NULL;
}
UINT WineEngGetTextCharsetInfo(GdiFont *font, LPFONTSIGNATURE fs, DWORD flags)
{
- FIXME(":stub\n");
+ FIXME("(%p, %p, %u): stub\n", font, fs, flags);
return DEFAULT_CHARSET;
}
Modified: vendor/wine/dlls/gdi32/current/tests/font.c
URL:
http://svn.reactos.org/svn/reactos/vendor/wine/dlls/gdi32/current/tests/fon…
==============================================================================
--- vendor/wine/dlls/gdi32/current/tests/font.c [iso-8859-1] (original)
+++ vendor/wine/dlls/gdi32/current/tests/font.c [iso-8859-1] Fri Jan 22 23:30:22 2010
@@ -2848,7 +2848,7 @@
static void test_oemcharset(void)
{
HDC hdc;
- LOGFONTA lf;
+ LOGFONTA lf, clf;
HFONT hfont, old_hfont;
int charset;
@@ -2863,7 +2863,12 @@
charset = GetTextCharset(hdc);
todo_wine
ok(charset == OEM_CHARSET, "expected %d charset, got %d\n", OEM_CHARSET,
charset);
- SelectObject(hdc, old_hfont);
+ hfont = SelectObject(hdc, old_hfont);
+ GetObjectA(hfont, sizeof(clf), &clf);
+ ok(!lstrcmpA(clf.lfFaceName, lf.lfFaceName), "expected %s face name, got
%s\n", lf.lfFaceName, clf.lfFaceName);
+ ok(clf.lfPitchAndFamily == lf.lfPitchAndFamily, "expected %x family, got
%x\n", lf.lfPitchAndFamily, clf.lfPitchAndFamily);
+ ok(clf.lfCharSet == lf.lfCharSet, "expected %d charset, got %d\n",
lf.lfCharSet, clf.lfCharSet);
+ ok(clf.lfHeight == lf.lfHeight, "expected %d height, got %d\n",
lf.lfHeight, clf.lfHeight);
DeleteObject(hfont);
DeleteDC(hdc);
}
Modified: vendor/wine/dlls/user32/current/defwnd.c
URL:
http://svn.reactos.org/svn/reactos/vendor/wine/dlls/user32/current/defwnd.c…
==============================================================================
--- vendor/wine/dlls/user32/current/defwnd.c [iso-8859-1] (original)
+++ vendor/wine/dlls/user32/current/defwnd.c [iso-8859-1] Fri Jan 22 23:30:22 2010
@@ -561,7 +561,11 @@
}
}
else if( wParam == VK_F10 )
+ {
+ if (GetKeyState(VK_SHIFT) & 0x8000)
+ SendMessageW( hwnd, WM_CONTEXTMENU, (WPARAM)hwnd, MAKELPARAM(-1, -1) );
iF10Key = 1;
+ }
else if( wParam == VK_ESCAPE && (GetKeyState(VK_SHIFT) & 0x8000))
SendMessageW( hwnd, WM_SYSCOMMAND, SC_KEYMENU, ' ' );
break;
Modified: vendor/wine/dlls/user32/current/input.c
URL:
http://svn.reactos.org/svn/reactos/vendor/wine/dlls/user32/current/input.c?…
==============================================================================
--- vendor/wine/dlls/user32/current/input.c [iso-8859-1] (original)
+++ vendor/wine/dlls/user32/current/input.c [iso-8859-1] Fri Jan 22 23:30:22 2010
@@ -101,12 +101,15 @@
}
SERVER_END_REQ;
- USER_Driver->pSetCapture( hwnd, gui_flags );
-
- if (previous && previous != hwnd)
- SendMessageW( previous, WM_CAPTURECHANGED, 0, (LPARAM)hwnd );
-
- if (prev_ret) *prev_ret = previous;
+ if (ret)
+ {
+ USER_Driver->pSetCapture( hwnd, gui_flags );
+
+ if (previous && previous != hwnd)
+ SendMessageW( previous, WM_CAPTURECHANGED, 0, (LPARAM)hwnd );
+
+ if (prev_ret) *prev_ret = previous;
+ }
return ret;
}
@@ -226,7 +229,7 @@
*/
HWND WINAPI DECLSPEC_HOTPATCH SetCapture( HWND hwnd )
{
- HWND previous;
+ HWND previous = 0;
set_capture_window( hwnd, 0, &previous );
return previous;
@@ -241,7 +244,7 @@
BOOL ret = set_capture_window( 0, 0, NULL );
/* Somebody may have missed some mouse movements */
- mouse_event( MOUSEEVENTF_MOVE, 0, 0, 0, 0 );
+ if (ret) mouse_event( MOUSEEVENTF_MOVE, 0, 0, 0, 0 );
return ret;
}
Modified: vendor/wine/dlls/user32/current/menu.c
URL:
http://svn.reactos.org/svn/reactos/vendor/wine/dlls/user32/current/menu.c?r…
==============================================================================
--- vendor/wine/dlls/user32/current/menu.c [iso-8859-1] (original)
+++ vendor/wine/dlls/user32/current/menu.c [iso-8859-1] Fri Jan 22 23:30:22 2010
@@ -3119,6 +3119,7 @@
switch(msg.wParam)
{
case VK_MENU:
+ case VK_F10:
fEndMenu = TRUE;
break;
Modified: vendor/wine/dlls/user32/current/misc.c
URL:
http://svn.reactos.org/svn/reactos/vendor/wine/dlls/user32/current/misc.c?r…
==============================================================================
--- vendor/wine/dlls/user32/current/misc.c [iso-8859-1] (original)
+++ vendor/wine/dlls/user32/current/misc.c [iso-8859-1] Fri Jan 22 23:30:22 2010
@@ -539,8 +539,8 @@
*/
HDEVNOTIFY WINAPI RegisterDeviceNotificationA(HANDLE hnd, LPVOID notifyfilter, DWORD
flags)
{
- FIXME("(hwnd=%p, filter=%p,flags=0x%08x),\n"
- "\treturns a fake device notification handle!\n",
hnd,notifyfilter,flags );
+ FIXME("(hwnd=%p, filter=%p,flags=0x%08x) returns a fake device notification
handle!\n",
+ hnd,notifyfilter,flags );
return (HDEVNOTIFY) 0xcafecafe;
}
@@ -569,8 +569,8 @@
*/
HDEVNOTIFY WINAPI RegisterDeviceNotificationW(HANDLE hRecepient, LPVOID
pNotificationFilter, DWORD dwFlags)
{
- FIXME("(hwnd=%p, filter=%p,flags=0x%08x),\n"
- "\treturns a fake device notification handle!\n",
hRecepient,pNotificationFilter,dwFlags );
+ FIXME("(hwnd=%p, filter=%p,flags=0x%08x) returns a fake device notification
handle!\n",
+ hRecepient,pNotificationFilter,dwFlags );
return (HDEVNOTIFY) 0xcafeaffe;
}
Modified: vendor/wine/dlls/user32/current/scroll.c
URL:
http://svn.reactos.org/svn/reactos/vendor/wine/dlls/user32/current/scroll.c…
==============================================================================
--- vendor/wine/dlls/user32/current/scroll.c [iso-8859-1] (original)
+++ vendor/wine/dlls/user32/current/scroll.c [iso-8859-1] Fri Jan 22 23:30:22 2010
@@ -317,6 +317,7 @@
{
INT thumbSize;
INT pixels = vertical ? rect->bottom-rect->top : rect->right-rect->left;
+ INT range;
if ((pixels -= 2*(GetSystemMetrics(SM_CXVSCROLL) - SCROLL_ARROW_THUMB_OVERLAP)) <=
0)
return infoPtr->minVal;
@@ -333,9 +334,12 @@
pos = max( 0, pos - (GetSystemMetrics(SM_CXVSCROLL) - SCROLL_ARROW_THUMB_OVERLAP) );
if (pos > pixels) pos = pixels;
- if (!infoPtr->page) pos *= infoPtr->maxVal - infoPtr->minVal;
- else pos *= infoPtr->maxVal - infoPtr->minVal - infoPtr->page + 1;
- return infoPtr->minVal + ((pos + pixels / 2) / pixels);
+ if (!infoPtr->page)
+ range = infoPtr->maxVal - infoPtr->minVal;
+ else
+ range = infoPtr->maxVal - infoPtr->minVal - infoPtr->page + 1;
+
+ return infoPtr->minVal + MulDiv(pos, range, pixels);
}
/***********************************************************************
Modified: vendor/wine/dlls/user32/current/tests/menu.c
URL:
http://svn.reactos.org/svn/reactos/vendor/wine/dlls/user32/current/tests/me…
==============================================================================
--- vendor/wine/dlls/user32/current/tests/menu.c [iso-8859-1] (original)
+++ vendor/wine/dlls/user32/current/tests/menu.c [iso-8859-1] Fri Jan 22 23:30:22 2010
@@ -1890,8 +1890,10 @@
{ INPUT_KEYBOARD, {{0}}, {'D', 0}, FALSE, FALSE },
{ INPUT_KEYBOARD, {{0}}, {VK_MENU, 'M', 'P', 0}, TRUE, FALSE },
{ INPUT_KEYBOARD, {{0}}, {'E', 0}, FALSE, FALSE },
-
- { INPUT_MOUSE, {{1, 2}, {0}}, {0}, TRUE, TRUE }, /* test 18 */
+ { INPUT_KEYBOARD, {{0}}, {VK_F10, 0}, TRUE, FALSE },
+ { INPUT_KEYBOARD, {{0}}, {VK_F10, 0}, FALSE, FALSE },
+
+ { INPUT_MOUSE, {{1, 2}, {0}}, {0}, TRUE, TRUE }, /* test 20 */
{ INPUT_MOUSE, {{1, 1}, {0}}, {0}, FALSE, FALSE },
{ INPUT_MOUSE, {{1, 0}, {0}}, {0}, TRUE, TRUE },
{ INPUT_MOUSE, {{1, 1}, {0}}, {0}, FALSE, FALSE },
Modified: vendor/wine/dlls/user32/current/tests/msg.c
URL:
http://svn.reactos.org/svn/reactos/vendor/wine/dlls/user32/current/tests/ms…
==============================================================================
--- vendor/wine/dlls/user32/current/tests/msg.c [iso-8859-1] (original)
+++ vendor/wine/dlls/user32/current/tests/msg.c [iso-8859-1] Fri Jan 22 23:30:22 2010
@@ -6903,6 +6903,32 @@
{ WM_SYSKEYUP, sent|wparam|lparam, VK_F10, 0xc0000001 },
{ 0 }
};
+static const struct message WmShiftF10Seq[] = {
+ { HCBT_KEYSKIPPED, hook|wparam|lparam|optional, VK_SHIFT, 1 }, /* XP */
+ { WM_KEYDOWN, wparam|lparam, VK_SHIFT, 1 },
+ { WM_KEYDOWN, sent|wparam|lparam, VK_SHIFT, 0x00000001 },
+ { HCBT_KEYSKIPPED, hook|wparam|lparam|optional, VK_F10, 1 }, /* XP */
+ { WM_SYSKEYDOWN, wparam|lparam, VK_F10, 1 },
+ { WM_SYSKEYDOWN, sent|wparam|lparam, VK_F10, 0x00000001 },
+ { WM_CONTEXTMENU, sent|defwinproc|lparam, /*hwnd*/0, MAKELPARAM(-1, -1) },
+ { HCBT_KEYSKIPPED, hook|wparam|lparam|optional, VK_F10, 0xc0000001 }, /* XP */
+ { WM_SYSKEYUP, wparam|lparam, VK_F10, 0xc0000001 },
+ { WM_SYSKEYUP, sent|wparam|lparam, VK_F10, 0xc0000001 },
+ { WM_SYSCOMMAND, sent|defwinproc|wparam, SC_KEYMENU },
+ { HCBT_SYSCOMMAND, hook },
+ { WM_ENTERMENULOOP, sent|defwinproc|wparam|lparam, 0, 0 },
+ { WM_INITMENU, sent|defwinproc },
+ { WM_MENUSELECT, sent|defwinproc|wparam, MAKEWPARAM(0,MF_SYSMENU|MF_POPUP|MF_HILITE)
},
+ { HCBT_KEYSKIPPED, hook|wparam|lparam|optional, VK_SHIFT, 0xd0000001 }, /* XP */
+ { HCBT_KEYSKIPPED, hook|wparam|lparam|optional, VK_ESCAPE, 0x10000001 }, /* XP */
+ { WM_CAPTURECHANGED, sent|defwinproc|wparam|lparam, 0, 0 },
+ { WM_MENUSELECT, sent|defwinproc|wparam|lparam, 0xffff0000, 0 },
+ { WM_EXITMENULOOP, sent|defwinproc|wparam|lparam, 0, 0 },
+ { HCBT_KEYSKIPPED, hook|wparam|lparam|optional, VK_ESCAPE, 0xc0000001 }, /* XP */
+ { WM_KEYUP, wparam|lparam, VK_ESCAPE, 0xc0000001 },
+ { WM_KEYUP, sent|wparam|lparam, VK_ESCAPE, 0xc0000001 },
+ { 0 }
+};
static void pump_msg_loop(HWND hwnd, HACCEL hAccel)
{
@@ -7122,6 +7148,16 @@
keybd_event(VK_F10, 0, KEYEVENTF_KEYUP, 0);
pump_msg_loop(hwnd, 0);
ok_sequence(WmVkF10Seq, "VK_F10 press/release", TRUE);
+
+ trace("testing SHIFT+F10 press/release\n");
+ keybd_event(VK_SHIFT, 0, 0, 0);
+ keybd_event(VK_F10, 0, 0, 0);
+ keybd_event(VK_F10, 0, KEYEVENTF_KEYUP, 0);
+ keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
+ keybd_event(VK_ESCAPE, 0, 0, 0);
+ keybd_event(VK_ESCAPE, 0, KEYEVENTF_KEYUP, 0);
+ pump_msg_loop(hwnd, 0);
+ ok_sequence(WmShiftF10Seq, "SHIFT+F10 press/release", TRUE);
trace("testing Shift+MouseButton press/release\n");
/* first, move mouse pointer inside of the window client area */
Modified: vendor/wine/dlls/user32/current/tests/win.c
URL:
http://svn.reactos.org/svn/reactos/vendor/wine/dlls/user32/current/tests/wi…
==============================================================================
--- vendor/wine/dlls/user32/current/tests/win.c [iso-8859-1] (original)
+++ vendor/wine/dlls/user32/current/tests/win.c [iso-8859-1] Fri Jan 22 23:30:22 2010
@@ -52,6 +52,7 @@
static BOOL (WINAPI *pGetMonitorInfoA)(HMONITOR,LPMONITORINFO);
static HMONITOR (WINAPI *pMonitorFromPoint)(POINT,DWORD);
static int (WINAPI *pGetWindowRgnBox)(HWND,LPRECT);
+static BOOL (WINAPI *pGetGUIThreadInfo)(DWORD, GUITHREADINFO*);
static BOOL test_lbuttondown_flag;
static HWND hwndMessage;
@@ -2695,6 +2696,114 @@
ok (ret, "releasecapture did not return TRUE.\n");
ret = ReleaseCapture();
ok (ret, "releasecapture did not return TRUE after second try.\n");
+}
+
+static LRESULT CALLBACK test_capture_4_proc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM
lParam)
+{
+ GUITHREADINFO gti;
+ HWND cap_wnd, cap_wnd2, set_cap_wnd;
+ BOOL status;
+ switch (msg)
+ {
+ case WM_CAPTURECHANGED:
+
+ /* now try to release capture from menu. this should fail */
+ if (pGetGUIThreadInfo)
+ {
+ memset(>i, 0, sizeof(GUITHREADINFO));
+ gti.cbSize = sizeof(GUITHREADINFO);
+ status = pGetGUIThreadInfo(GetCurrentThreadId(), >i);
+ ok(status, "GetGUIThreadInfo() failed!\n");
+ ok(gti.flags & GUI_INMENUMODE, "Thread info incorrect
(flags=%08X)!\n", gti.flags);
+ }
+ cap_wnd = GetCapture();
+
+ /* check that re-setting the capture for the menu fails */
+ set_cap_wnd = SetCapture(cap_wnd);
+ ok(!set_cap_wnd, "SetCapture should have failed!\n");
+
+ /* check that SetCapture fails for another window and that it does not touch
the error code */
+ set_cap_wnd = SetCapture(hWnd);
+ ok(!set_cap_wnd, "ReleaseCapture should have failed!\n");
+
+ /* check that ReleaseCapture fails and does not touch the error code */
+ status = ReleaseCapture();
+ ok(!status, "ReleaseCapture should have failed!\n");
+
+ /* check that thread info did not change */
+ if (pGetGUIThreadInfo)
+ {
+ memset(>i, 0, sizeof(GUITHREADINFO));
+ gti.cbSize = sizeof(GUITHREADINFO);
+ status = pGetGUIThreadInfo(GetCurrentThreadId(), >i);
+ ok(status, "GetGUIThreadInfo() failed!\n");
+ ok(gti.flags & GUI_INMENUMODE, "Thread info incorrect
(flags=%08X)!\n", gti.flags);
+ }
+
+ /* verify that no capture change took place */
+ cap_wnd2 = GetCapture();
+ ok(cap_wnd2 == cap_wnd, "Capture changed!\n");
+
+ /* we are done. kill the window */
+ DestroyWindow(hWnd);
+ break;
+
+ default:
+ return( DefWindowProcA( hWnd, msg, wParam, lParam ) );
+ }
+ return 0;
+}
+
+/* Test that no-one can mess around with the current capture while a menu is open */
+static void test_capture_4(void)
+{
+ BOOL ret;
+ HMENU hmenu;
+ HWND hwnd;
+ WNDCLASSA wclass;
+ HINSTANCE hInstance = GetModuleHandleA( NULL );
+
+ if (!pGetGUIThreadInfo)
+ win_skip("GetGUIThreadInfo is not available\n");
+
+ wclass.lpszClassName = "TestCapture4Class";
+ wclass.style = CS_HREDRAW | CS_VREDRAW;
+ wclass.lpfnWndProc = test_capture_4_proc;
+ wclass.hInstance = hInstance;
+ wclass.hIcon = LoadIconA( 0, IDI_APPLICATION );
+ wclass.hCursor = LoadCursorA( NULL, IDC_ARROW );
+ wclass.hbrBackground = (HBRUSH)( COLOR_WINDOW + 1 );
+ wclass.lpszMenuName = 0;
+ wclass.cbClsExtra = 0;
+ wclass.cbWndExtra = 0;
+ assert (RegisterClassA( &wclass ));
+ assert (hwnd = CreateWindowA( wclass.lpszClassName, "MenuTest",
+ WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0,
+ 400, 200, NULL, NULL, hInstance, NULL) );
+ ok(hwnd != NULL, "CreateWindowEx failed with error %d\n", GetLastError());
+ if (!hwnd) return;
+ hmenu = CreatePopupMenu();
+
+ ret = AppendMenuA( hmenu, MF_STRING, 1, "winetest2");
+ ok( ret, "AppendMenuA has failed!\n");
+
+ /* set main window to have initial capture */
+ SetCapture(hwnd);
+
+ if (!GetWindowLongW(GetDesktopWindow(), GWL_STYLE))
+ {
+ win_skip("TrackPopupMenu test crashes on Win9x/WinMe\n");
+ }
+ else
+ {
+ /* create popup (it will self-destruct) */
+ ret = TrackPopupMenu(hmenu, TPM_RETURNCMD, 100, 100, 0, hwnd, NULL);
+ ok( ret == 0, "TrackPopupMenu returned %d expected zero\n", ret);
+ }
+
+ /* clean up */
+ DestroyMenu(hmenu);
+ DestroyWindow(hwnd);
}
/* PeekMessage wrapper that ignores the messages we don't care about */
@@ -5790,6 +5899,7 @@
pGetMonitorInfoA = (void *)GetProcAddress( user32, "GetMonitorInfoA" );
pMonitorFromPoint = (void *)GetProcAddress( user32, "MonitorFromPoint" );
pGetWindowRgnBox = (void *)GetProcAddress( user32, "GetWindowRgnBox" );
+ pGetGUIThreadInfo = (void *)GetProcAddress( user32, "GetGUIThreadInfo" );
if (!RegisterWindowClasses()) assert(0);
@@ -5821,6 +5931,7 @@
test_capture_1();
test_capture_2();
test_capture_3(hwndMain, hwndMain2);
+ test_capture_4();
test_CreateWindow();
test_parent_owner();
Modified: vendor/wine/dlls/winex11.drv/current/keyboard.c
URL:
http://svn.reactos.org/svn/reactos/vendor/wine/dlls/winex11.drv/current/key…
==============================================================================
--- vendor/wine/dlls/winex11.drv/current/keyboard.c [iso-8859-1] (original)
+++ vendor/wine/dlls/winex11.drv/current/keyboard.c [iso-8859-1] Fri Jan 22 23:30:22 2010
@@ -1140,6 +1140,11 @@
* depending on the NumLock state */
return nonchar_key_vkey[keysym & 0xFF];
+ /* Pressing the Pause/Break key alone produces VK_PAUSE vkey, while
+ * pressing Ctrl+Pause/Break produces VK_CANCEL. */
+ if ((e->state & ControlMask) && (keysym == XK_Break))
+ return VK_CANCEL;
+
TRACE_(key)("e->keycode = %x\n", e->keycode);
return keyc2vkey[e->keycode];
Modified: vendor/wine/dlls/winex11.drv/current/systray.c
URL:
http://svn.reactos.org/svn/reactos/vendor/wine/dlls/winex11.drv/current/sys…
==============================================================================
--- vendor/wine/dlls/winex11.drv/current/systray.c [iso-8859-1] (original)
+++ vendor/wine/dlls/winex11.drv/current/systray.c [iso-8859-1] Fri Jan 22 23:30:22 2010
@@ -344,7 +344,7 @@
if (icon->window)
{
struct x11drv_win_data *data = X11DRV_get_win_data( icon->window );
- if (data) XClearArea( gdi_display, data->client_window, 0, 0, 0, 0, True
);
+ if (data) XClearArea( thread_display(), data->client_window, 0, 0, 0, 0,
True );
}
}
Modified: vendor/wine/server/current/change.c
URL:
http://svn.reactos.org/svn/reactos/vendor/wine/server/current/change.c?rev=…
==============================================================================
--- vendor/wine/server/current/change.c [iso-8859-1] (original)
+++ vendor/wine/server/current/change.c [iso-8859-1] Fri Jan 22 23:30:22 2010
@@ -451,8 +451,8 @@
char *name; /* basename name of the inode */
};
-struct list inode_hash[ HASH_SIZE ];
-struct list wd_hash[ HASH_SIZE ];
+static struct list inode_hash[ HASH_SIZE ];
+static struct list wd_hash[ HASH_SIZE ];
static int inotify_add_dir( char *path, unsigned int filter );
Modified: vendor/wine/server/current/main.c
URL:
http://svn.reactos.org/svn/reactos/vendor/wine/server/current/main.c?rev=45…
==============================================================================
--- vendor/wine/server/current/main.c [iso-8859-1] (original)
+++ vendor/wine/server/current/main.c [iso-8859-1] Fri Jan 22 23:30:22 2010
@@ -65,14 +65,14 @@
static struct option long_options[] =
{
- {"debug", 2, 0, 'd'},
- {"foreground", 0, 0, 'f'},
- {"help", 0, 0, 'h'},
- {"kill", 2, 0, 'k'},
- {"persistent", 2, 0, 'p'},
- {"version", 0, 0, 'v'},
- {"wait", 0, 0, 'w'},
- { NULL, 0, 0, 0}
+ {"debug", 2, NULL, 'd'},
+ {"foreground", 0, NULL, 'f'},
+ {"help", 0, NULL, 'h'},
+ {"kill", 2, NULL, 'k'},
+ {"persistent", 2, NULL, 'p'},
+ {"version", 0, NULL, 'v'},
+ {"wait", 0, NULL, 'w'},
+ { NULL, 0, NULL, 0}
};
server_argv0 = argv[0];
Modified: vendor/wine/server/current/queue.c
URL:
http://svn.reactos.org/svn/reactos/vendor/wine/server/current/queue.c?rev=4…
==============================================================================
--- vendor/wine/server/current/queue.c [iso-8859-1] (original)
+++ vendor/wine/server/current/queue.c [iso-8859-1] Fri Jan 22 23:30:22 2010
@@ -2145,6 +2145,12 @@
{
struct thread_input *input = queue->input;
+ /* if in menu mode, reject all requests to change focus, except if the menu bit
is set */
+ if (input->menu_owner && !(req->flags & CAPTURE_MENU))
+ {
+ set_error(STATUS_ACCESS_DENIED);
+ return;
+ }
reply->previous = input->capture;
input->capture = get_user_full_handle( req->handle );
input->menu_owner = (req->flags & CAPTURE_MENU) ? input->capture :
0;
Modified: vendor/wine/server/current/sock.c
URL:
http://svn.reactos.org/svn/reactos/vendor/wine/server/current/sock.c?rev=45…
==============================================================================
--- vendor/wine/server/current/sock.c [iso-8859-1] (original)
+++ vendor/wine/server/current/sock.c [iso-8859-1] Fri Jan 22 23:30:22 2010
@@ -248,13 +248,13 @@
int i;
int async_active = 0;
- if ( pollev & (POLLIN|POLLPRI) && async_waiting( sock->read_q ))
+ if ( pollev & (POLLIN|POLLPRI|POLLERR|POLLHUP) && async_waiting(
sock->read_q ))
{
if (debug_level) fprintf( stderr, "activating read queue for socket
%p\n", sock );
async_wake_up( sock->read_q, STATUS_ALERTED );
async_active = 1;
}
- if ( pollev & POLLOUT && async_waiting( sock->write_q ))
+ if ( pollev & (POLLOUT|POLLERR|POLLHUP) && async_waiting(
sock->write_q ))
{
if (debug_level) fprintf( stderr, "activating write queue for socket
%p\n", sock );
async_wake_up( sock->write_q, STATUS_ALERTED );