summaryrefslogtreecommitdiff
path: root/system/wine/LOTRO.patch
diff options
context:
space:
mode:
authorDavid Woodfall <dave@dawoodfall.net>2012-12-11 18:47:51 +0100
committerdsomero <xgizzmo@slackbuilds.org>2012-12-11 16:23:09 -0500
commit4dd55d0f3c57cf8c8cacda7c789b04c2107db31d (patch)
tree80f9becf03b972fb72ed8f8903ea629eb67ba717 /system/wine/LOTRO.patch
parente687f709d9f36824205a6c8d43769bd8bf7d49d2 (diff)
downloadslackbuilds-4dd55d0f3c57cf8c8cacda7c789b04c2107db31d.tar.gz
system/wine: Updated for version 1.5.13.
Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org>
Diffstat (limited to 'system/wine/LOTRO.patch')
-rw-r--r--system/wine/LOTRO.patch44
1 files changed, 44 insertions, 0 deletions
diff --git a/system/wine/LOTRO.patch b/system/wine/LOTRO.patch
new file mode 100644
index 0000000000..4f760793ce
--- /dev/null
+++ b/system/wine/LOTRO.patch
@@ -0,0 +1,44 @@
+From b9716dfe5f6283f83131fe6a638eea14c137ceb4 Mon Sep 17 00:00:00 2001
+From: Daniel Santos <daniel.santos@pobox.com>
+Date: Mon, 15 Oct 2012 15:12:59 -0500
+Subject: user32: Don't ignore return/error value of MapWindowPoints
+
+ScreenToClient should return zero if the operation fails, but is always
+returning TRUE. This patch corrects the problem and solves a crash bug
+in Lord of the Rings Online (bug #31979)
+
+Credit for discovering the source of this problem should go to somebody
+else, as yet unidentified, since the original patch came from a closed
+forum for beta testers of the LoTRO Riders of Rohan expansion and the
+forum has subsequently been wiped. However, I'll take credit for fixing
+it up, but if I ever figure out where it came from, hopefully they can
+get credit as well.
+---
+ dlls/user32/winpos.c | 11 +++++++++--
+ 1 files changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/dlls/user32/winpos.c b/dlls/user32/winpos.c
+index 5a2f1f2..80aab32 100644
+--- a/dlls/user32/winpos.c
++++ b/dlls/user32/winpos.c
+@@ -250,8 +250,15 @@ BOOL WINAPI ClientToScreen( HWND hwnd, LPPOINT lppnt )
+ */
+ BOOL WINAPI ScreenToClient( HWND hwnd, LPPOINT lppnt )
+ {
+- MapWindowPoints( 0, hwnd, lppnt, 1 );
+- return TRUE;
++ DWORD old_err = GetLastError();
++ BOOL ret;
++
++ SetLastError(0xd00d13);
++ ret = MapWindowPoints( 0, hwnd, lppnt, 1 ) != 0 ||
++ GetLastError() != 0xd00d13;
++ SetLastError(old_err);
++
++ return ret;
+ }
+
+
+--
+1.7.3.4
+