<AWT Dev> [8] Request for review: 7092551 Double-click in TextField sets caret to the beginning
Sergey Bylokhov
Sergey.Bylokhov at oracle.com
Thu Jun 7 06:01:41 PDT 2012
Hi Alexander.
Fix looks good to me.
23.05.2012 14:34, Alexander Scherbatiy wrote:
>
> Could one more person review the fix? I need at least two reviewers
> before pushing it.
>
> Thanks,
> Alexandr.
>
> On 4/26/2012 2:03 PM, Alexander Scherbatiy wrote:
>>
>> Could someone else review the fix? I need at least two reviewers
>> before pushing it.
>>
>> Webrev: http://cr.openjdk.java.net/~alexsch/7092551/webrev.01/
>>
>> Thanks,
>> Alexandr.
>>
>>
>> On 4/13/2012 5:59 PM, Oleg Pekhovskiy wrote:
>>> Looks good for me.
>>>
>>> Thanks,
>>> OIeg.
>>>
>>> On 4/06/2012 3:45 PM, Alexander Scherbatiy wrote:
>>>
>>>
>>>> Hello,
>>>>
>>>> Please review a fix for:
>>>>
>>>> CR 7092551 Double-click in TextField sets caret to the beginning
>>> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7092551
>>>>
>>>> Webrev:http://cr.openjdk.java.net/~alexsch/7092551/webrev.01/
>>>> <http://cr.openjdk.java.net/%7Ealexsch/7092551/webrev.01/>
>>>>
>>>> A Double-click in TextField does not work because the TextField is
>>>> based
>>>> on the windows EDIT control which does not have EM_FINDWORDBREAK
>>>> method.
>>>> A solution is to use the RICHEDIT control instead of EDIT. Because
>>>> the
>>>> TextArea also is based on the RICHEDIT control it is possible to make
>>>> some unification between AwtTextField and AwtTextArea classes.
>>>>
>>>> Changes:
>>>>
>>>> 1) Moving getting RICHEDIT class name from the TextArea to
>>>> TextComponent
>>>>
>>>> 2) Updating TextField Create method to use the TextArea workarounds.
>>>>
>>>> 3) Moving OLE callbacks class defenition and creation to the
>>>> TextComponent (both classes TextField and TextArea now use it)
>>>>
>>>> 4) EditGetCharFromPos method bodies are differenet for TextField and
>>>> TextArea.
>>>> Using the old one in the TextField leads to the
>>>> EXCEPTION_ACCESS_VIOLATION.
>>>> So using the one from the TextArea and moving it to TextComponent.
>>>>
>>>>
>>>> The issue 7092551 (Double-click in TextField sets caret to the
>>>> beginning) is resolved.
>>>>
>>>> Issues:
>>>>
>>>> 5) Setting editable for TextField to false does not show gray
>>>> background.
>>>>
>>>> Moving workaround for the Enable, SetColor and SetBackground methods
>>>> definitions from TextArea to TextComponent
>>>>
>>>>
>>>> 6) Setting an echo char for TextField and double click selects only
>>>> part of the echoed text.
>>>> Addding checking the echo char to the HandleEvent method where a text
>>>> is selected.
>>>>
>>>> 7) Adding issue 6417581 workaround to EditSetSel method of the
>>>> TextField component.
>>>> There is one more workaround 5003402 for TextArea control which needs
>>>> to enable the automatic scrolling and there is no need to use it in
>>>> the TextField.
>>>>
>>>> 8) Move PreProcessMsg method from the TextArea to TextComponent to
>>>> workaround filtering the WM_LBUTTONUP after WM_LBUTTONDBLCLK for
>>>> RichEdit 1.0
>>>>
>>>> 9) CR 6480547 is not reproduced with the RICHEDIT control.
>>>> Removing using initialRescroll workaround from the TextField.
>>>> Not need to override the Reshape method in the Textfield.
>>>>
>>>>
>>>> Requested changes:
>>>> 10) NOERROR is changed to S_OK
>>>>
>>>> 11) The OleCallback is not deleted explicitly in the
>>>> OleCallback::Release() method.
>>>> Only number of the object references is returned.
>>>>
>>>> 12) if-else block in the OleCallback::QueryInterface method is
>>>> unified.
>>>>
>>>> 13) Because only the RichEdit 2.0 control is used (and it is not
>>>> necessary to support the RichEdit 1.0)
>>>> the AwtTextArea::PreProcessMsg method that tries to avoid issue
>>>> with
>>>> the WM_LBUTTONUP event after double click is removed.
>>>> The right behavior is that there are 2 WM_LBUTTONUP events
>>>> after the
>>>> WM_LBUTTONDOWN during the mouse double click.
>>>> So the RichEdit 2.0 control has a right behavior.
>>>> However the RichEdit 1.0 generates a pair of events
>>>> WM_LBUTTONDOWN, WM_LBUTTONUP during the double click.
>>>>
>>>> 14) Methods merging
>>>> - The create method is unified and moved to the
>>>> AwtTextComponent class.
>>>> - I do not merge the HandleEvent method. They are quite
>>>> similar in
>>>> both classes AwtTextField and AwtTextArea. However there are
>>>> differences
>>>> in some 'if' branches.
>>>>
>>>> Thanks,
>>>> Alexandr.
>>>
>>>
>>
>
--
Best regards, Sergey.
More information about the awt-dev
mailing list