keybd_event patch and default combobox height patch

Peter Hercek peter at syncad.com
Tue Jan 4 05:41:49 CST 2005


server/queue.c
Fixes an error in keybd_event function. This function sends events even 
between different processes on win32. This was not handled in wine.

dlls/user/combo.c
The default size for comboxes was 2 pixels bigger in wine at the 
standard dpi.

The patches are against wine 20041019.

Index: server/queue.c
===================================================================
--- server/queue.c      (revision 29655)
+++ server/queue.c      (working copy)
@@ -1073,6 +1073,8 @@
     *msg_code = msg->msg;
     if (is_keyboard_msg( msg ))
     {
+        if (!input || !(input->focus) || !(input->active))
+            input = foreground_input;
         if (input && !(win = input->focus))
         {
             win = input->active;
Index: dlls/user/combo.c
===================================================================
--- dlls/user/combo.c   (revision 29655)
+++ dlls/user/combo.c   (working copy)
@@ -207,8 +207,10 @@
  * The height of the text area is set in two ways.
  * It can be set explicitly through a combobox message or through a
  * WM_MEASUREITEM callback.
- * If this is not the case, the height is set to 13 dialog units.
- * This height was determined through experimentation.
+ * If this is not the case, the height is set to 12 dialog units.
+ * This height was determined through experimentation. It was
+ * set to 13 originally but this led to higher comboboxes than
+ * in windows.
  */
 static INT CBGetTextAreaHeight(
   HWND        hwnd,
@@ -239,7 +241,7 @@

     ReleaseDC(hwnd, hDC);

-    iTextItemHeight = ((13 * baseUnitY) / 8);
+    iTextItemHeight = ((12 * baseUnitY) / 8);

     /*
      * This "formula" calculates the height of the complete control.



More information about the wine-patches mailing list