changes in the code for TAB key handling
[mono.git] / mcs / class / System.Windows.Forms / System.Windows.Forms / Application.cs
index d3e3fc8dc0f3c733ec65aba87e60971dc8dcb8df..e43cd42c1275cbed6d0b55463be304c4f64b48b1 100644 (file)
@@ -238,10 +238,15 @@ namespace System.Windows.Forms {
                                                dispatchMessage = false;
                                }
 
-                                       if (dispatchMessage) {
-                                               Win32.TranslateMessage (ref msg);
-                                               Win32.DispatchMessageA (ref msg);
-                                       }
+                               Control receiver = Control.FromHandle ( message.HWnd );
+                               if ( receiver != null ) {
+                                       dispatchMessage = ! receiver.PreProcessMessage ( ref message );
+                               }
+
+                               if (dispatchMessage) {
+                                       Win32.TranslateMessage (ref msg);
+                                       Win32.DispatchMessageA (ref msg);
+                               }
                                //if (Idle != null)
                                        //Idle (null, new EventArgs());
                        }