[Wine-patches] [eter-2.1] user32: Increase timeout for timers 0 and 0x1f4 to 1000 ms (eterbug #11264).

Dmitry Timoshkov dtimoshkov на etersoft.ru
Ср Июн 7 16:38:23 MSK 2017


---
 dlls/user32/message.c | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/dlls/user32/message.c b/dlls/user32/message.c
index 9a3efb9bc2..bb54899b1d 100644
--- a/dlls/user32/message.c
+++ b/dlls/user32/message.c
@@ -4410,12 +4410,26 @@ UINT_PTR WINAPI SetTimer( HWND hwnd, UINT_PTR id, UINT timeout, TIMERPROC proc )
     DEFETER_FUNC(etersoft_fixtimer);
 
     /* Eterbug # 150 */
-    char wclass[80];
-    GetClassNameA(hwnd, wclass,sizeof wclass);
     LOADETER_FUNC(etersoft_1version);
-    if ( etersoft_1version && (etersoft_1version() == 8))
+    if (etersoft_1version && (etersoft_1version() == 8))
+    {
+        char wclass[80];
+
+        GetClassNameA(hwnd, wclass,sizeof wclass);
         if ( (id  == 2) && (!proc) && !strcmp(wclass, "V8PopupBar")  )
             timeout += 50;
+    }
+
+    /* Eterbug #11264 */
+    if (etersoft_1version && (etersoft_1version() == 7))
+    {
+        if ((timeout == 100 && id == 0x1f4) ||
+            (timeout == 200 && id == 0 && !hwnd && proc))
+        {
+            TRACE("fixing up timer %lx to 1000 ms\n", id);
+            timeout = 1000;
+        }
+    }
 
     if (proc) winproc = WINPROC_AllocProc( (WNDPROC)proc, FALSE );
 
-- 
2.13.1



Подробная информация о списке рассылки Wine-patches