ProcessMessage question


i have a class TGMainFrame A and in the ProcessMessage() of A, if selected by the user, i create a TGTransientFrame B object and just after call another method of A (A::DoAction()).
so to implement the A::ProcessMessage i do something like:

Bool_t A::ProcessMessage(Long_t msg, Long_t par1, Long_t par2) {

case kCM_MENU:
switch(parm1) {

case M_GetConfigurationDB:
b = new B(); /* Action 1 /
this->DoAction(); /
Action 2 */

When running the program, the B() is created and “at the same time”, the A::DoAction() is done.
so my question is how i shall proceed to get Action 2 being done ONLY and ONLY when Action 1 finishes (when e.g. the user clicks the exit button of B!)

in advance thanks for your valuable help.


use as last statement in the ctor of the TGFrameDialog derived class:


this will block the execution of the next statement in A till the dialog has been destroyed. Also check fClient->WaitForUnmap(this) if the dialog is not destroyed on exit but only unmapped.

Cheers, Fons.