Author: fireball Date: Sun Mar 21 21:53:56 2010 New Revision: 46322
URL: http://svn.reactos.org/svn/reactos?rev=46322&view=rev Log: - Sync up to Wine-1.1.41.
Modified: branches/arwinss/reactos/dll/win32/gdi32/ (props changed) branches/arwinss/reactos/dll/win32/gdi32/bitmap.c branches/arwinss/reactos/dll/win32/user32/ (props changed) branches/arwinss/reactos/dll/win32/user32/Makefile.in branches/arwinss/reactos/dll/win32/user32/cursoricon.c branches/arwinss/reactos/dll/win32/user32/input.c branches/arwinss/reactos/dll/win32/winex11.drv/ (props changed) branches/arwinss/reactos/dll/win32/winex11.drv/clipboard.c branches/arwinss/reactos/dll/win32/winex11.drv/opengl.c branches/arwinss/reactos/dll/win32/winex11.drv/window.c branches/arwinss/reactos/subsystems/win32/win32k/wine/ (props changed)
Propchange: branches/arwinss/reactos/dll/win32/gdi32/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Sun Mar 21 21:53:56 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,45011,45097-45099,45319,45418-45419,45535-45539,45687-45688 -/vendor/wine/dlls/gdi32/current:43136,43149,43398,43708,44151,44715,45044,45206,45455,45646,45910 +/vendor/wine/dlls/gdi32/current:43136,43149,43398,43708,44151,44715,45044,45206,45455,45646,45910,46314
Modified: branches/arwinss/reactos/dll/win32/gdi32/bitmap.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/gdi32/... ============================================================================== --- branches/arwinss/reactos/dll/win32/gdi32/bitmap.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/gdi32/bitmap.c [iso-8859-1] Sun Mar 21 21:53:56 2010 @@ -436,11 +436,13 @@ LONG count, /* [in] Number of bytes in bitmap array */ LPCVOID bits) /* [in] Address of array with bitmap bits */ { - BITMAPOBJ *bmp = GDI_GetObjPtr( hbitmap, OBJ_BITMAP ); + BITMAPOBJ *bmp; LONG height, ret;
- if ((!bmp) || (!bits)) - return 0; + if (!bits) return 0; + + bmp = GDI_GetObjPtr( hbitmap, OBJ_BITMAP ); + if (!bmp) return 0;
if (count < 0) { WARN("(%d): Negative number of bytes passed???\n", count );
Propchange: branches/arwinss/reactos/dll/win32/user32/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Sun Mar 21 21:53:56 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,45011,45097-45099,45319,45418-45419,45535-45539,45687-45688 -/vendor/wine/dlls/user32/current:43136,43149,43398,43708,44151,44715,45044,45206,45455,45646,45910 +/vendor/wine/dlls/user32/current:43136,43149,43398,43708,44151,44715,45044,45206,45455,45646,45910,46314
Modified: branches/arwinss/reactos/dll/win32/user32/Makefile.in URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user32... ============================================================================== --- branches/arwinss/reactos/dll/win32/user32/Makefile.in [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/Makefile.in [iso-8859-1] Sun Mar 21 21:53:56 2010 @@ -91,5 +91,3 @@ EXTRASUBDIRS = resources
@MAKE_DLL_RULES@ - -@DEPENDENCIES@ # everything below this line is overwritten by make depend
Modified: branches/arwinss/reactos/dll/win32/user32/cursoricon.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user32... ============================================================================== --- branches/arwinss/reactos/dll/win32/user32/cursoricon.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/cursoricon.c [iso-8859-1] Sun Mar 21 21:53:56 2010 @@ -765,6 +765,7 @@ int sizeAnd, sizeXor; HBITMAP hAndBits = 0, hXorBits = 0; /* error condition for later */ BITMAP bmpXor, bmpAnd; + BOOL do_stretch; INT size; BITMAPINFO *pSrcInfo, *pDestInfo;
@@ -788,10 +789,11 @@
if (!width) width = bmi->bmiHeader.biWidth; if (!height) height = bmi->bmiHeader.biHeight/2; + do_stretch = (bmi->bmiHeader.biHeight/2 != height) || + (bmi->bmiHeader.biWidth != width);
/* Scale the hotspot */ - if (((bmi->bmiHeader.biHeight/2 != height) || (bmi->bmiHeader.biWidth != width)) && - hotspot.x != ICON_HOTSPOT && hotspot.y != ICON_HOTSPOT) + if (do_stretch && hotspot.x != ICON_HOTSPOT && hotspot.y != ICON_HOTSPOT) { hotspot.x = (hotspot.x * width) / bmi->bmiHeader.biWidth; hotspot.y = (hotspot.y * height) / (bmi->bmiHeader.biHeight / 2); @@ -842,15 +844,29 @@ } else { - hXorBits = CreateCompatibleBitmap(screen_dc, width, height); - - if(hXorBits) + if (do_stretch) { - if(!stretch_blt_icon(hXorBits, pDestInfo, pSrcInfo, (char*)bmi + size)) + hXorBits = CreateCompatibleBitmap(screen_dc, width, height); + if (hXorBits) { - DeleteObject(hXorBits); - hXorBits = 0; + if (!stretch_blt_icon(hXorBits, pDestInfo, pSrcInfo, (char*)bmi + size)) + { + DeleteObject(hXorBits); + hXorBits = 0; + } } + } + else + { + if (is_dib_monochrome(bmi)) + { + hXorBits = CreateBitmap(width, height, 1, 1, NULL); + SetDIBits(screen_dc, hXorBits, 0, height, + (char *)bmi + size, pSrcInfo, DIB_RGB_COLORS); + } + else + hXorBits = CreateDIBitmap(screen_dc, &pSrcInfo->bmiHeader, + CBM_INIT, (char *)bmi + size, pSrcInfo, DIB_RGB_COLORS); } }
@@ -879,12 +895,21 @@ }
/* Create the AND bitmap */ - hAndBits = CreateBitmap(width, height, 1, 1, NULL); - - if(!stretch_blt_icon(hAndBits, pDestInfo, pSrcInfo, xbits)) + if (do_stretch) { - DeleteObject(hAndBits); - hAndBits = 0; + hAndBits = CreateBitmap(width, height, 1, 1, NULL); + + if (!stretch_blt_icon(hAndBits, pDestInfo, pSrcInfo, xbits)) + { + DeleteObject(hAndBits); + hAndBits = 0; + } + } + else + { + hAndBits = CreateBitmap(width, height, 1, 1, NULL); + SetDIBits(screen_dc, hAndBits, 0, height, + xbits, pSrcInfo, DIB_RGB_COLORS); }
if( !hAndBits )
Modified: branches/arwinss/reactos/dll/win32/user32/input.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/user32... ============================================================================== --- branches/arwinss/reactos/dll/win32/user32/input.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/user32/input.c [iso-8859-1] Sun Mar 21 21:53:56 2010 @@ -208,8 +208,8 @@ BOOL WINAPI GetCursorInfo( PCURSORINFO pci ) { if (!pci) return 0; - if (get_user_thread_info()->cursor_count >= 0) pci->flags = CURSOR_SHOWING; - else pci->flags = 0; + pci->hCursor = LoadCursorW( 0, (LPCWSTR)IDC_ARROW ); + pci->flags = CURSOR_SHOWING; GetCursorPos(&pci->ptScreenPos); return 1; }
Propchange: branches/arwinss/reactos/dll/win32/winex11.drv/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Sun Mar 21 21:53:56 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,45011,45097-45099,45319,45418-45419,45535-45539,45687-45688 -/vendor/wine/dlls/winex11.drv/current:43149,43398,43708,44151,44715,45044,45206,45455,45646,45910 +/vendor/wine/dlls/winex11.drv/current:43149,43398,43708,44151,44715,45044,45206,45455,45646,45910,46314
Modified: branches/arwinss/reactos/dll/win32/winex11.drv/clipboard.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/winex1... ============================================================================== --- branches/arwinss/reactos/dll/win32/winex11.drv/clipboard.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/winex11.drv/clipboard.c [iso-8859-1] Sun Mar 21 21:53:56 2010 @@ -2200,7 +2200,10 @@ HANDLE hData = lpData->lpFormat->lpDrvImportFunc(display, xe.xselection.requestor, xe.xselection.property);
- bRet = X11DRV_CLIPBOARD_InsertClipboardData(lpData->wFormatID, hData, 0, lpData->lpFormat, TRUE); + if (hData) + bRet = X11DRV_CLIPBOARD_InsertClipboardData(lpData->wFormatID, hData, 0, lpData->lpFormat, TRUE); + else + TRACE("Import function failed\n"); } else {
Modified: branches/arwinss/reactos/dll/win32/winex11.drv/opengl.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/winex1... ============================================================================== --- branches/arwinss/reactos/dll/win32/winex11.drv/opengl.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/winex11.drv/opengl.c [iso-8859-1] Sun Mar 21 21:53:56 2010 @@ -374,6 +374,21 @@ */ if(!getsockname(fd, (struct sockaddr *)&uaddr, &uaddrlen) && uaddr.sun_family == AF_UNIX) ERR_(winediag)("Direct rendering is disabled, most likely your OpenGL drivers haven't been installed correctly\n"); + } + else + { + /* In general you would expect that if direct rendering is returned, that you receive hardware + * accelerated OpenGL rendering. The definition of direct rendering is that rendering is performed + * client side without sending all GL commands to X using the GLX protocol. When Mesa falls back to + * software rendering, it shows direct rendering. + * + * Depending on the cause of software rendering a different rendering string is shown. In case Mesa fails + * to load a DRI module 'Software Rasterizer' is returned. When Mesa is compiled as a OpenGL reference driver + * it shows 'Mesa X11'. + */ + const char *gl_renderer = (const char *)pglGetString(GL_RENDERER); + if(!strcmp(gl_renderer, "Software Rasterizer") || !strcmp(gl_renderer, "Mesa X11")) + ERR_(winediag)("The Mesa OpenGL driver is using software rendering, most likely your OpenGL drivers haven't been installed correctly\n"); }
if(vis) XFree(vis);
Modified: branches/arwinss/reactos/dll/win32/winex11.drv/window.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/winex1... ============================================================================== --- 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] Sun Mar 21 21:53:56 2010 @@ -2090,20 +2090,24 @@ Display *display = thread_display(); struct x11drv_win_data *data; XWindowChanges changes; + DWORD timestamp;
if (!(hwnd = GetAncestor( hwnd, GA_ROOT ))) return; if (!(data = X11DRV_get_win_data( hwnd ))) return; if (data->managed || !data->whole_window) return; + + if (EVENT_x11_time_to_win32_time(0)) + /* ICCCM says don't use CurrentTime, so try to use last message time if possible */ + /* FIXME: this is not entirely correct */ + timestamp = GetMessageTime() - EVENT_x11_time_to_win32_time(0); + else + timestamp = CurrentTime;
/* Set X focus and install colormap */ wine_tsx11_lock(); changes.stack_mode = Above; XConfigureWindow( display, data->whole_window, CWStackMode, &changes ); - /* we must not use CurrentTime (ICCCM), so try to use last message time instead */ - /* FIXME: this is not entirely correct */ - XSetInputFocus( display, data->whole_window, RevertToParent, - /* CurrentTime */ - GetMessageTime() - EVENT_x11_time_to_win32_time(0)); + XSetInputFocus( display, data->whole_window, RevertToParent, timestamp ); wine_tsx11_unlock(); }
Propchange: branches/arwinss/reactos/subsystems/win32/win32k/wine/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Sun Mar 21 21:53:56 2010 @@ -1,3 +1,3 @@ /branches/ros-amd64-bringup/reactos/subsystems/win32/win32k/wine: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/wine:42000-43126,43669-44999,45011,45097-45099,45319,45418-45419,45535-45539,45687-45688 -/vendor/wine/server/current:43708,44715,45044,45206,45646,45910 +/vendor/wine/server/current:43708,44715,45044,45206,45646,45910,46314