On 10/08/2011 05:41 PM, Pavel Porvatov wrote:
Hi Charles,
On 10/07/2011 05:11 PM, Pavel Porvatov wrote:
Hi Charles,
On 10/03/2011 05:40 PM, Pavel Porvatov wrote:
Hi Charles,
On 09/22/2011 05:18 PM, Neil Richards wrote:
On Thu, 2011-09-22 at 14:21 +0800, Charles Lee wrote:
Hi guys,
The webrev is attached.
For ease of review, I've uploaded the webrev to
cr.openjdk.java.net [1]
Regards, Neil
[1] http://cr.openjdk.java.net/~ngmr/6938583/webrev.00
Hi guys,
Any update about this issue? Is the idea workable?
Can you explain why should we consume right clicks but not left
ones? (May be there are other test cases when NPE is thrown... )
And why do you consume event? (May be it hides NPE but breaks
functionality)
Thanks, Pavel
1. When right clicks, it suppose to show a manu on where you click.
But I guess the demo (CodePointIM) is not suppose to show that
(what will be show when use CodePointIM and right click? IIRC, I
tried the normal input and right click but get nothing)
2. If point 1 is true, consuming the right click in the CodePointIM
is the easiest way to fix it and less error-prone comparing with
fixing in the jdk...
3. Consuming left click will disable the movement of the input
place by clicking, I guess...
There is no information about popup menu in the bug description. The
problem is that endComposition() throws NPE if Input Method is
turned on and the program is in composition mode. If you apply your
fix and change BUTTON3 into BUTTON2 in the MouseEventTest2 test (see
bug description), then NPE will be thrown with your patch as well...
Regards, Pavel
Why change Button3 to Button2? Does Button3 reflect the right click?
No, Button2 is the middle button. But if you use Button2 in the
MouseEventTest2 the test is still valid and it shouldn't throw any
unexpected exceptions. But if you apply your fix and replace Button3
by Button2 in the MouseEventTest2 test, run the MouseEventTest2 test
and use testcase from the bug description (of course in step 5 you
should use the middle mouse button now) you'll get NPE
NPE was occurred because the component is null. Component becomes
null because the default carret, IIRC, has been changed when it
receive the right click event. It is the right behavior, if I
understand correctly. So I am trying to disable the right click event
if the demo does not suppose some menu should going to show up.
I still don't understand where do you see popup menu? I wrote about
the test from
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6938583 and there
is no popup there...
Regards, Pavel
I got your point. What about this solution:
If in the compose mode, endCompositoin just sendComposedText instead of
sendCommittedText.
The patch is attached
--
Yours Charles
diff --git src/share/demo/jfc/CodePointIM/CodePointInputMethod.java
src/share/demo/jfc/CodePointIM/CodePointInputMethod.java
index add460a..4bc6f09 100644
--- src/share/demo/jfc/CodePointIM/CodePointInputMethod.java
+++ src/share/demo/jfc/CodePointIM/CodePointInputMethod.java
@@ -451,7 +451,12 @@ public class CodePointInputMethod implements InputMethod {
}
public void endComposition() {
- sendCommittedText();
+ boolean notInCompositionMode = buffer.length() == 0;
+ if (!notInCompositionMode) {
+ sendComposedText();
+ } else {
+ sendCommittedText();
+ }
}
public Locale getLocale() {