Vincent Povirk : winex11.drv: Use CurrentTime to focus windows if we have no timestamp.

Alexandre Julliard julliard at winehq.org
Thu Mar 18 11:19:27 CDT 2010


Module: wine
Branch: master
Commit: e4a50e1615ad7cb8635fcfacae8fcc4b8f52da76
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=e4a50e1615ad7cb8635fcfacae8fcc4b8f52da76

Author: Vincent Povirk <vincent at codeweavers.com>
Date:   Wed Mar 17 12:29:23 2010 -0500

winex11.drv: Use CurrentTime to focus windows if we have no timestamp.

---

 dlls/winex11.drv/window.c |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c
index 47f7245..46f677b 100644
--- a/dlls/winex11.drv/window.c
+++ b/dlls/winex11.drv/window.c
@@ -2089,20 +2089,24 @@ void CDECL X11DRV_SetFocus( HWND hwnd )
     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();
 }
 




More information about the wine-cvs mailing list