Hi
Symbian OS v6.1 = Nokia 1.2 SDK.
I've got a complicated compound control hierarchy. From the outer control I will call methods to update inner control's text.
If I put the DrawNow on the Parent in this case (first fragment) after calling SetThing on the innercontrol it works (obviously drawing the whole control, not just the bit I want.). If however I call it within the SetThing of the inner control it falls over with Kern-exec3 somewhere in the window server
The “outer control” here is itself the inner control of something else – so we’re able to call DrawNow in the first case from within an inner control.
//Works fine
void CContainerControl::SetThingL(TInt aUpdateValue, TBool aDrawNow)
{
iInnerControl->SetThingL(aUpdateValue, aDrawNow);
DrawNow(); //works fine
}
void CInnerControl:: SetThingL(TInt aUpdateValue, TBool aDrawNow)
{
iCurrentValue= aUpdateValue;
// DrawNow(); //crash if I enable this
}
In the case above, if I instead call MakeVisible() it also crashes - e.g
void CContainerControl::SetThingL(TInt aUpdateValue, TBool aDrawNow)
{
iInnerControl->SetThingL(aUpdateValue, aDrawNow);
iInnerControl->MakeVisible(ETrue); //or efalse sometimes
}
The result of the Makevisible problem is that I can't selectively make controls visible and invisible within my container.
Now the final point is that if I dont do DrawNows and MakeVisible calls then everything updates fine via the normal compound control methods. For example it draws fine on construction.
I've also checked, and none of the controls are NULL pointers. They all have containerwindows.
Any thoughts?



