#endif //wxUSE_CONSOLEDEBUG
#endif
- //
- // OS2 has to have an anchorblock
- //
- vHab = WinInitialize(0);
-
- if (!vHab)
- return FALSE;
- else
- vHabmain = vHab;
-
- // Some people may wish to use this, but
- // probably it shouldn't be here by default.
-#ifdef __WXDEBUG__
- // wxRedirectIOToConsole();
-#endif
-
wxBuffer = new wxChar[1500]; // FIXME; why?
wxClassInfo::InitializeClasses();
wxBitmap::InitStandardHandlers();
- RegisterWindowClasses(vHab);
+ //
+ // OS2 has to have an anchorblock
+ //
+ vHab = WinInitialize(0);
+
+ if (!vHab)
+ return FALSE;
+ else
+ vHabmain = vHab;
+
+ // Some people may wish to use this, but
+ // probably it shouldn't be here by default.
+#ifdef __WXDEBUG__
+ // wxRedirectIOToConsole();
+#endif
+
wxWinHandleList = new wxList(wxKEY_INTEGER);
// This is to foil optimizations in Visual C++ that throw out dummy.obj.
wxModule::RegisterModules();
if (!wxModule::InitializeModules())
return FALSE;
+ RegisterWindowClasses(vHab);
return TRUE;
} // end of wxApp::Initialize
if (!::WinRegisterClass( vHab
,wxCanvasClassName
,wxWndProc
- ,CS_SIZEREDRAW | CS_HITTEST | CS_SYNCPAINT | CS_CLIPCHILDREN
+ ,CS_SIZEREDRAW | CS_HITTEST | CS_SYNCPAINT
,sizeof(ULONG)
))
{
#endif // wxUSE_TOOLTIPS
//
- // We must relay Timer events to wxTimer's processing function
+ // Pass non-system timer messages to the wxTimerProc
//
- if (pMsg->msg == WM_TIMER)
+ if (pMsg->msg == WM_TIMER &&
+ (SHORT1FROMMP(pMsg->mp1) != TID_CURSOR &&
+ SHORT1FROMMP(pMsg->mp1) != TID_FLASHWINDOW &&
+ SHORT1FROMMP(pMsg->mp1) != TID_SCROLL
+ ))
wxTimerProc(NULL, 0, (int)pMsg->mp1, 0);
+ //
+ // Allow the window to prevent certain messages from being
+ // translated/processed (this is currently used by wxTextCtrl to always
+ // grab Ctrl-C/V/X, even if they are also accelerators in some parent)
+ //
+ if (pWndThis && !pWndThis->OS2ShouldPreProcessMessage(pWxmsg))
+ {
+ return FALSE;
+ }
+
//
// For some composite controls (like a combobox), wndThis might be NULL
// because the subcontrol is not a wxWindow, but only the control itself