Module: wine
Branch: master
Commit: 4d51a688e37d070d6345587d63facbc630a43a3d
URL: http://source.winehq.org/git/wine.git/?a=commit;h=4d51a688e37d070d6345587d6…
Author: Ken Thomases <ken(a)codeweavers.com>
Date: Sun Mar 10 17:38:30 2013 -0500
winemac: Override -[NSOpenGLContext clearDrawable] to not hide the GL surface.
This fixes a problem with flickering when repeatedly attaching and detaching
a GL context from a window, such as for each WM_PAINT.
---
dlls/winemac.drv/cocoa_opengl.m | 25 +++++++++++++++++++++++++
1 files changed, 25 insertions(+), 0 deletions(-)
diff --git a/dlls/winemac.drv/cocoa_opengl.m b/dlls/winemac.drv/cocoa_opengl.m
index 5879b4d..f67ea89 100644
--- a/dlls/winemac.drv/cocoa_opengl.m
+++ b/dlls/winemac.drv/cocoa_opengl.m
@@ -38,6 +38,31 @@
[super dealloc];
}
+ /* On at least some versions of Mac OS X, -[NSOpenGLContext clearDrawable] has the
+ undesirable side effect of ordering the view's GL surface off-screen. This isn't
+ done when just changing the context's view to a different view (which I would
+ think would be analogous, since the old view and surface end up without a
+ context attached). So, we finesse things by first setting the context's view to
+ a different view (the content view of an off-screen window) and then letting the
+ original implementation proceed. */
+ - (void) clearDrawable
+ {
+ static NSWindow* dummyWindow;
+ static dispatch_once_t once;
+
+ dispatch_once(&once, ^{
+ OnMainThread(^{
+ dummyWindow = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 100, 100)
+ styleMask:NSBorderlessWindowMask
+ backing:NSBackingStoreBuffered
+ defer:NO];
+ });
+ });
+
+ [self setView:[dummyWindow contentView]];
+ [super clearDrawable];
+ }
+
@end
Module: wine
Branch: master
Commit: 3157534347d29b2830b3e691764bc5036dcd8663
URL: http://source.winehq.org/git/wine.git/?a=commit;h=3157534347d29b2830b3e6917…
Author: Jacek Caban <jacek(a)codeweavers.com>
Date: Sat Mar 9 17:52:02 2013 +0100
wininet: Skip test_open_url_async on IEs older than 7.
---
dlls/wininet/tests/http.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/dlls/wininet/tests/http.c b/dlls/wininet/tests/http.c
index 7988de4..c2607dc 100644
--- a/dlls/wininet/tests/http.c
+++ b/dlls/wininet/tests/http.c
@@ -3662,6 +3662,16 @@ static void test_open_url_async(void)
ret = InternetSetOptionA(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0);
ok(ret, "InternetSetOption(INTERNET_OPTION_END_BROWSER_SESSION) failed: %u\n", GetLastError());
+ /*
+ * Some versions of IE6 fail those tests. They pass some notification data as UNICODE string, while
+ * other versions never do. They also hang of following tests. We disable it for everything older
+ * than IE7.
+ */
+ if(!pInternetGetSecurityInfoByURLA) {
+ win_skip("Skipping async open on too old wininet version.\n");
+ return;
+ }
+
ctx.req = NULL;
ctx.event = CreateEvent(NULL, TRUE, FALSE, "Z:_home_hans_jaman-installer.exe_ev1");