USHORT uVirt = AF_CHAR;
if (vaEntries[i].GetFlags() & wxACCEL_ALT)
+ {
uVirt |= AF_ALT;
+ uVirt |= AF_VIRTUALKEY;
+ }
if (vaEntries[i].GetFlags() & wxACCEL_SHIFT)
+ {
uVirt |= AF_SHIFT;
+ uVirt |= AF_VIRTUALKEY;
+ }
if (vaEntries[i].GetFlags() & wxACCEL_CTRL)
+ {
uVirt |= AF_CONTROL;
+ uVirt |= AF_VIRTUALKEY;
+ }
bool bIsVirtual;
USHORT uKey = wxCharCodeWXToOS2( vaEntries[i].GetKeyCode()
}
#endif // wxUSE_THREADS
+ //
// Process the message
- if (!ProcessMessage((WXMSG *)&svCurrentMsg))
- {
- ::WinDispatchMsg(vHabmain, (PQMSG)&svCurrentMsg);
- }
+ //
+ DoMessage((WXMSG *)&svCurrentMsg);
}
return TRUE;
} // end of wxApp::DoMessage
+void wxApp::DoMessage(
+ WXMSG* pMsg
+)
+{
+ if (!ProcessMessage((WXMSG *)&svCurrentMsg))
+ {
+ ::WinDispatchMsg(vHabmain, (PQMSG)&svCurrentMsg);
+ }
+} // end of wxApp::DoMessage
+
//////////////////////////////////////////////////////////////////////////////
//
// Keep trying to process messages until WM_QUIT
POINTL vPoint;
::WinQueryWindowRect(m_hFrame, &vRect);
- vPoint.x = vRect.xLeft;
- //
- // OS/2 is backwards [WIN32 it is vRect.yTop]
- //
- vPoint.y = vRect.yBottom;
-
- *pX = vPoint.x;
- *pY = vPoint.y;
+ *pX = vRect.xRight - vRect.xLeft;
+ *pY = vRect.yTop - vRect.yBottom;
} // end of wxFrame::DoGetPosition
// ----------------------------------------------------------------------------
// restore all child frames too
//
IconizeChildFrames(FALSE);
+ (void)SendIconizeEvent(FALSE);
//
// fall through
// Iconize all child frames too
//
IconizeChildFrames(TRUE);
+ (void)SendIconizeEvent();
m_bIconized = TRUE;
break;
}
// popup menu
// ---------------------------------------------------------------------------
+static void wxYieldForCommandsOnly()
+{
+ //
+ // Peek all WM_COMMANDs (it will always return WM_QUIT too but we don't
+ // want to process it here)
+ //
+ QMSG vMsg;
+
+ while (::WinPeekMsg( vHabmain
+ ,&vMsg
+ ,(HWND)0
+ ,WM_COMMAND
+ ,WM_COMMAND
+ ,PM_REMOVE
+ ) && vMsg.msg != WM_QUIT)
+ {
+ wxTheApp->DoMessage((WXMSG*)&vMsg);
+ }
+}
+
bool wxWindow::DoPopupMenu(
wxMenu* pMenu
, int nX
,0L
,PU_MOUSEBUTTON2DOWN | PU_MOUSEBUTTON2 | PU_KEYBOARD
);
- wxYield();
+ // we need to do it righ now as otherwise the events are never going to be
+ // sent to wxCurrentPopupMenu from HandleCommand()
+ //
+ // note that even eliminating (ugly) wxCurrentPopupMenu global wouldn't
+ // help and we'd still need wxYieldForCommandsOnly() as the menu may be
+ // destroyed as soon as we return (it can be a local variable in the caller
+ // for example) and so we do need to process the event immediately
+ wxYieldForCommandsOnly();
wxCurrentPopupMenu = NULL;
pMenu->SetInvokingWindow(NULL);
DoMessage__5wxAppFv
;wxExit()
wxExit__Fv
+ ;wxApp::DoMessage(void**)
+ DoMessage__5wxAppFPPv
;wxApp::Dispatch()
Dispatch__5wxAppFv
;wxEntry(int,char**)