Alexandre Julliard : winex11: Use the gdi display when initializing the keyboard to avoid creating a second display connection .

Alexandre Julliard julliard at winehq.org
Thu Feb 7 07:59:26 CST 2008


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Wed Feb  6 20:37:41 2008 +0100

winex11: Use the gdi display when initializing the keyboard to avoid creating a second display connection.

---

 dlls/winex11.drv/keyboard.c    |   10 ++++------
 dlls/winex11.drv/x11drv.h      |    2 +-
 dlls/winex11.drv/x11drv_main.c |    2 +-
 3 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/dlls/winex11.drv/keyboard.c b/dlls/winex11.drv/keyboard.c
index 5196d5e..b5f7261 100644
--- a/dlls/winex11.drv/keyboard.c
+++ b/dlls/winex11.drv/keyboard.c
@@ -1468,9 +1468,8 @@ void X11DRV_KeyEvent( HWND hwnd, XEvent *xev )
  * X11 lock must be held.
  */
 static void
-X11DRV_KEYBOARD_DetectLayout (void)
+X11DRV_KEYBOARD_DetectLayout( Display *display )
 {
-  Display *display = thread_display();
   unsigned current, match, mismatch, seq, i, syms;
   int score, keyc, key, pkey, ok;
   KeySym keysym = 0;
@@ -1577,9 +1576,8 @@ X11DRV_KEYBOARD_DetectLayout (void)
 /**********************************************************************
  *		X11DRV_InitKeyboard
  */
-void X11DRV_InitKeyboard(void)
+void X11DRV_InitKeyboard( Display *display )
 {
-    Display *display = thread_display();
     KeySym *ksp;
     XModifierKeymap *mmp;
     KeySym keysym;
@@ -1621,7 +1619,7 @@ void X11DRV_InitKeyboard(void)
     XFreeModifiermap(mmp);
 
     /* Detect the keyboard layout */
-    X11DRV_KEYBOARD_DetectLayout();
+    X11DRV_KEYBOARD_DetectLayout( display );
     lkey = main_key_tab[kbd_layout].key;
     syms = (keysyms_per_keycode > 4) ? 4 : keysyms_per_keycode;
 
@@ -1969,7 +1967,7 @@ void X11DRV_MappingNotify( HWND dummy, XEvent *event )
     wine_tsx11_lock();
     XRefreshKeyboardMapping(&event->xmapping);
     wine_tsx11_unlock();
-    X11DRV_InitKeyboard();
+    X11DRV_InitKeyboard( thread_display() );
 
     hwnd = GetFocus();
     if (!hwnd) hwnd = GetActiveWindow();
diff --git a/dlls/winex11.drv/x11drv.h b/dlls/winex11.drv/x11drv.h
index 7af082c..d7fb478 100644
--- a/dlls/winex11.drv/x11drv.h
+++ b/dlls/winex11.drv/x11drv.h
@@ -712,7 +712,7 @@ extern void X11DRV_ResetSelectionOwner(void);
 extern void X11DRV_SetFocus( HWND hwnd );
 extern Cursor X11DRV_GetCursor( Display *display, struct tagCURSORICONINFO *ptr );
 extern BOOL X11DRV_ClipCursor( LPCRECT clip );
-extern void X11DRV_InitKeyboard(void);
+extern void X11DRV_InitKeyboard( Display *display );
 extern void X11DRV_send_keyboard_input( WORD wVk, WORD wScan, DWORD dwFlags, DWORD time,
                                         DWORD dwExtraInfo, UINT injected_flags );
 extern void X11DRV_send_mouse_input( HWND hwnd, DWORD flags, DWORD x, DWORD y,
diff --git a/dlls/winex11.drv/x11drv_main.c b/dlls/winex11.drv/x11drv_main.c
index 6f682c2..444754b 100644
--- a/dlls/winex11.drv/x11drv_main.c
+++ b/dlls/winex11.drv/x11drv_main.c
@@ -543,7 +543,7 @@ static BOOL process_attach(void)
     X11DRV_XComposite_Init();
 #endif
 
-    X11DRV_InitKeyboard();
+    X11DRV_InitKeyboard( gdi_display );
     X11DRV_InitClipboard();
 
     return TRUE;




More information about the wine-cvs mailing list