Input Focus problems with IE

Aric Stewart aric at codeweavers.com
Tue Dec 16 13:09:37 CST 2003


Hello,

   I am working on a problem with IE where if you start the application 
in full screen mode:

   (start IE, change to full screen using view->full screen, shutdown 
IE, restart IE)

   the keyboard focus never gets given to the application so you cannot 
enter any information into forms.

   Looking into this i found that we where never being given any 
ClientMessage events to take focus nor any FocusIn events. So the 
keyboard focus remains on whatever app last had it, such as the terminal 
used to start IE.

   A very simple, shotgun, way to solve this is this attached patch. 
Thinking about windows architecture i was trying to think of a time 
where a window would receive a button click and would not be given input 
focus (yes the app may modify focus but it would do that anyway)

   However this change is HUGE and will affect alot and wanted to bounce 
it off people before continuing to investigate it.

   This look ok to people? Other ideas on proper ways to deal with this 
issue?

thanks
-aric

-------------- next part --------------
Index: dlls/x11drv/event.c
===================================================================
RCS file: /home/wine/wine/dlls/x11drv/event.c,v
retrieving revision 1.30
diff -u -w -r1.30 event.c
--- dlls/x11drv/event.c	5 Dec 2003 04:45:50 -0000	1.30
+++ dlls/x11drv/event.c	16 Dec 2003 19:02:57 -0000
@@ -287,6 +287,14 @@
       break;
 
     case ButtonPress:
+      /* 
+       * I am sort of unsure about this however 
+       * there should not be a case where the button is clicked somewhere
+       * and windows does not assume focus is sent there.
+       *
+       * it also fixes a bunch of input problems for forms in IE
+       */
+      set_focus(hWnd,CurrentTime);
       X11DRV_ButtonPress( hWnd, (XButtonEvent*)event );
       break;
 


More information about the wine-devel mailing list