Re: Mouse clicks in EditText with CWindow as Parent

new topic     » goto parent     » topic index » view thread      » older message » newer message

CChris wrote:
> 
> Judith Evans wrote:
> > 
> > Rad wrote:
> > 
> > > The EditText controls do not get focus with mouse clicks when their parent
> > > is
> > > ChildWindow control. One can neither click and place the cursor on
> > > them, nor can select a part or full text present in it.
> > 
> > One response was that this could be an IDE issue.
> > 
> > Here is a sample of what IDE produces.
> > 
> > }}}
<eucode>
> > include Win32Lib.ew
> > without warning
> >  
> >
> > --------------------------------------------------------------------------------
> > --  Window Window1
> > constant Window1 = createEx( Window, "Window1", 0, Default, Default, 400,
> > 300, 0, 0 )
> > constant CWindow3 = createEx( Window, "", Window1, 56, 24, 200, 100,
> > w32or_all({WS_CHILD}),
> > 0 )
> > openWindow(CWindow3, Normal)
> > constant EditText4 = createEx( EditText, "EditText4", CWindow3, 8, 28, 48,
> > 20, 0, 0 )
> > ---------------------------------------------------------
> >  
> >  
> > WinMain( Window1,Normal )
> > </eucode>
{{{

> > 
> > I've moved the createEx statements for CWindow3 and the EditText4 as well as
> > the openWindow(CWindow3, Normal) to an w32HOpen event or w32HActivate event
> > and the EditText still does not respond.
> > 
> > What needs to be changed in this program or in win32lib for this exw to
> > work?
> 
> Did you test this snippet with any of the "patch #67" versions? Or is the
> problem the same even there, with modified processing of focus (some of
> them due to Sascha Zindel)?
> 
> An explicit setFocus(EditText4) sets everything right. My working 
> version is not stable right now, so I didn't attempt to run this.
> 
> Note that setFocus(CWindow3) doesn't work, and the setFocus(EditText4)
> command has to be in a w32HActivate handler. Using w32HOpen doesn't work
> either. Same behaviour if adding a button to Window1 and opening
> CWindow3 as a result of clicking the button.
> 
> CChris

It may have been a little late when I wrote this. Actually the behaviour
exhibited is quite logical:
* creting a control doesn't set focus to it;
* for the control to naturally get focus, it would need to be in the internal
list of focusable chilren of its parent. But there is no natural place to
insert the new control, so it is the  coder's job to add a setFocus() call
if a control is created after its parent is opened.

Perhaps there is a need for a w32FOCUS_NOW style flag, which would force focus 
on creation and insertion as last (or first?) focusable control in the parent.
What do you think?

CChris

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu