hg: openjfx/8u-dev/rt: RT-37950: Wrong touch coordinates for a window not at the origin (0, 0)

2014-08-03 Thread seeon . birger
Changeset: 859783c709ed
Author:Seeon Birger seeon.bir...@oracle.com
Date:  2014-08-03 13:13 +0300
URL:   http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/859783c709ed

RT-37950: Wrong touch coordinates for a window not at the origin (0,0)

! modules/graphics/src/main/java/com/sun/glass/ui/monocle/TouchInput.java



hg: openjfx/8u-dev/rt: RT-38144: Add Single Touch Non-Fullscreen Test

2014-08-03 Thread seeon . birger
Changeset: edd25a1b83bb
Author:Seeon Birger seeon.bir...@oracle.com
Date:  2014-08-03 13:24 +0300
URL:   http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/edd25a1b83bb

RT-38144: Add Single Touch Non-Fullscreen Test

! tests/system/src/test/java/com/sun/glass/ui/monocle/ParameterizedTestBase.java
+ 
tests/system/src/test/java/com/sun/glass/ui/monocle/SingleTouchNonFullScreenTest.java
! tests/system/src/test/java/com/sun/glass/ui/monocle/TestApplication.java



[8u26] Review request : RT-38167: Fix SingleTouchTest: touch count check

2014-08-03 Thread Seeon Birger
Daniel,

 

Please review the proposed fix for

https://javafx-jira.kenai.com/browse/RT-38167

 

Webrev:

http://cr.openjdk.java.net/~sbirger/RT-38167/webrev/

 

Thanks,

Seeon

 


hg: openjfx/8u-dev/rt: RT-38167: Fix SingleTouchTest: touch count check

2014-08-03 Thread seeon . birger
Changeset: 2821644c36f4
Author:Seeon Birger seeon.bir...@oracle.com
Date:  2014-08-03 16:35 +0300
URL:   http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/2821644c36f4

RT-38167: Fix SingleTouchTest: touch count check

! tests/system/src/test/java/com/sun/glass/ui/monocle/SingleTouchTest.java



[8u26] Review request : RT-38168: Redundant creation of LinuxInputProcessor

2014-08-03 Thread Seeon Birger
Daniel,

 

Please review the proposed fix for

https://javafx-jira.kenai.com/browse/RT-38168

 

Webrev:

http://cr.openjdk.java.net/~sbirger/RT-38168/webrev

 

 

Thanks,

Seeon

 


[8u26] Review request : RT-38144: Add Single Touch Non-Fullscreen Test

2014-07-31 Thread Seeon Birger
Daniel,

 

Please review the proposed fix for

https://javafx-jira.kenai.com/browse/RT-38144

 

Webrev:

http://cr.openjdk.java.net/~sbirger/RT-38144/webrev/

 

Thanks,

Seeon

 


hg: openjfx/8u-dev/rt: RT-37714: Single swipe event is not handled

2014-07-16 Thread seeon . birger
Changeset: b405a56cb9c4
Author:Seeon Birger seeon.bir...@oracle.com
Date:  2014-07-16 14:02 +0300
URL:   http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/b405a56cb9c4

RT-37714: Single swipe event is not handled

! 
modules/graphics/src/main/java/com/sun/javafx/tk/quantum/SwipeGestureRecognizer.java



[8u26] Review request : RT-37714: Single swipe event is not handled

2014-07-15 Thread Seeon Birger
Hi Martin,

 

Please review the proposed fix for

https://javafx-jira.kenai.com/browse/RT-37714

http://cr.openjdk.java.net/~sbirger/RT-37714/webrev

 

In particular would like to verify that it behaves well on Windows platform.

 

Thanks,

Seeon

 

 


Post commit notification: RT-37829: Zoom gesture inertia too agressive

2014-07-08 Thread Seeon Birger
JIRA:

HYPERLINK https://javafx-jira.kenai.com/browse/RT-37829RT-37829 - Zoom 
gesture inertia too aggressive

 

Changeset:

http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/8c3561a1bccb

 

Regards,

Seeon

 


Post commit notification: RT-36547 - Implement inertia for Scroll gesture

2014-06-15 Thread Seeon Birger
JIRA:

HYPERLINK https://javafx-jira.kenai.com/browse/RT-36547RT-36547 - Implement 
inertia for Scroll gesture

 

Changeset:

http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/fad1b7cb08d7

 

Regards,

Seeon

 

 


Post commit notification: RT-35306: Add scroll gesture recognizer.

2014-04-13 Thread Seeon Birger
JIRA:

HYPERLINK https://javafx-jira.kenai.com/browse/RT-35306RT-35306 - 8u26: 
Support multitouch gestures

 

Changeset:

http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/ca938a1131ad

 

Regards,

Seeon

 


Post commit notification: RT-35306: Add zoom and rotate gesture recognizers.

2014-04-02 Thread Seeon Birger
JIRA:

HYPERLINK https://javafx-jira.kenai.com/browse/RT-35306RT-35306 - 8u26: 
Support multitouch gestures

 

Fixed in commit: 1cff0246b7b6 

 

Regards,

Seeon

 


RE: Move to JIRA [was: Re: [8u] API Request: RT-25613, ObservableValue should have a hasListener(listener) method]

2014-01-26 Thread Seeon Birger
Hi Anthony,

Thanks for sending a request for applying the multi-threaded plug-in.

As for the email plug-in mentioned below, using it does not mean sending all 
JIRA's automatically to a single mailing list.. 
On the contrary it can be used as a selective tool for sharing selective JIRAs 
to selective people/groups. This might be handy in case an issue was previously 
discussed in JIRA and at a point you want to share with specific recipients.
Anyway if the current watch list mechanism functionality suffices that's it's 
fine with me.. :)

Regards,
Seeon

-Original Message-
From: Anthony Petrov 
Sent: Friday, January 24, 2014 1:07 PM
To: Seeon Birger; Steve Northover
Cc: John Hendrikx; openjfx-dev@openjdk.java.net
Subject: Re: Move to JIRA [was: Re: [8u] API Request: RT-25613, ObservableValue 
should have a hasListener(listener) method]

Hi Seeon,

I don't think that posting updates from all our JIRAs to a single mailing list 
is a good idea because the messages traffic would be huge. 
Each JIRA provides a watch list, so people can follow specific bugs that 
they're interested in. I believe that this functionality is sufficient for all 
reasonable purposes.

However, your suggestion about using threaded comments sounds interesting. 
We've sent a request to our Infrastructure team to evaluate the plugin and 
consider adding it to our JIRA instance. Note that this is not going to happen 
overnight and could take some time, but the request is filed at least. Thanks 
for the suggestion!

--
best regards,
Anthony

On 1/23/2014 9:09 PM, Seeon Birger wrote:
 Steve,

 I wonder if we could take advantage of available plug-ins for JIRA.

 I particular I found this one which enables threaded comments for JIRA:
 https://marketplace.atlassian.com/plugins/com.atlassian.jira.threadedc
 omments.threaded-comments

 Also interesting is the following which make it easy to put JIRA updates on 
 mailing lists in a flexible and customizable way:
 https://marketplace.atlassian.com/plugins/com.metainf.jira.plugin.emai
 lissue

 What do you think?

 Seeon



 -Original Message-
 From: Stephen F Northover
 Sent: Thursday, January 23, 2014 12:45 AM
 To: John Hendrikx; openjfx-dev@openjdk.java.net
 Subject: Re: Move to JIRA [was: Re: [8u] API Request: RT-25613, 
 ObservableValue should have a hasListener(listener) method]

 Hi John,

 The goal is not to end the discussion!

 It's a trade off.  Mailing lists are good because they provide a threaded 
 discussion.  JIRA is bad because it is not threaded.  JIRA has the advantage 
 that it captures data in a single place and provides a good history of why a 
 decision was made.

 There's no right answer here but the policy that the FX committers is using 
 is to try to capture as much as possible in JIRA.

 Steve

 On 2014-01-22 5:29 PM, John Hendrikx wrote:
 Unfortunately, discussing things in JIRA works very poorly and is a 
 good way to end a productive discussion IMHO.  Mailinglists are much 
 better suited to the task, as thousands of interesting mailinglists 
 accross many developer communities will atest to.

 Keeping a record is good, aren't these mailinglists archived?

 --John

 On 22/01/2014 18:47, Daniel Blaukopf wrote:
 Hi Martin, Randahl, Tom, Richard, Tomas and Ali,

 This is a productive discussion, but once we get to this level of 
 detail JIRA is the place to have it, so that we don't lose our 
 record of it. Would you continue the discussion on
 https://javafx-jira.kenai.com/browse/RT-25613 ?

 See
 https://wiki.openjdk.java.net/display/OpenJFX/Code+Reviews#CodeRevie
 w s-TechnicalDiscussionsandCodeReviews

 Thanks,
 Daniel

 On Jan 22, 2014, at 7:23 PM, Stephen F 
 Northoversteve.x.northo...@oracle.com  wrote:

 If we add this API, I like addListener(InvalidationListener,
 boolean) better than ensureListener().

 Steve

 On 2014-01-22 8:20 AM, Ali Ebrahimi wrote:
 I suggest adding another overload for addListener method taking 
 boolean parameter  duplicateAllowed or duplicateNotAllowed.


 On Wed, Jan 22, 2014 at 3:00 PM, Richard
 Bairrichard.b...@oracle.comwrote:

 The default implementation (for Observable) would look like this:

 public default void ensureListener(InvalidationListener listener) {
  removeListener(listener);
  addListener(listener);
 }

 subclasses might do something more effective. The same would 
 apply to ObservableValue and ChangeListener and 
 Observable[List|Set|Map] and [List|Set|Map]ChangeListener.
 Well this would destroy the order! I expect listeners to be 
 called in the correct order not?
 That's a good point :-(

 Why doing a remove and not simply check if the
 listener has already been added?
 Because there is no way to check, except in the implementation.
  From the
 Observable interface level, there is no way to a) force all
 implementations
 of the interface to implement the method correctly (without
 breaking source
 compatibility anyway), or b) to provide a reasonable default
 implementation.

 Maybe

RE: Move to JIRA [was: Re: [8u] API Request: RT-25613, ObservableValue should have a hasListener(listener) method]

2014-01-23 Thread Seeon Birger
Steve,

I wonder if we could take advantage of available plug-ins for JIRA.

I particular I found this one which enables threaded comments for JIRA:
https://marketplace.atlassian.com/plugins/com.atlassian.jira.threadedcomments.threaded-comments

Also interesting is the following which make it easy to put JIRA updates on 
mailing lists in a flexible and customizable way:
https://marketplace.atlassian.com/plugins/com.metainf.jira.plugin.emailissue

What do you think?

Seeon



-Original Message-
From: Stephen F Northover 
Sent: Thursday, January 23, 2014 12:45 AM
To: John Hendrikx; openjfx-dev@openjdk.java.net
Subject: Re: Move to JIRA [was: Re: [8u] API Request: RT-25613, ObservableValue 
should have a hasListener(listener) method]

Hi John,

The goal is not to end the discussion!

It's a trade off.  Mailing lists are good because they provide a threaded 
discussion.  JIRA is bad because it is not threaded.  JIRA has the advantage 
that it captures data in a single place and provides a good history of why a 
decision was made.

There's no right answer here but the policy that the FX committers is using is 
to try to capture as much as possible in JIRA.

Steve

On 2014-01-22 5:29 PM, John Hendrikx wrote:
 Unfortunately, discussing things in JIRA works very poorly and is a 
 good way to end a productive discussion IMHO.  Mailinglists are much 
 better suited to the task, as thousands of interesting mailinglists 
 accross many developer communities will atest to.

 Keeping a record is good, aren't these mailinglists archived?

 --John

 On 22/01/2014 18:47, Daniel Blaukopf wrote:
 Hi Martin, Randahl, Tom, Richard, Tomas and Ali,

 This is a productive discussion, but once we get to this level of 
 detail JIRA is the place to have it, so that we don't lose our record 
 of it. Would you continue the discussion on
 https://javafx-jira.kenai.com/browse/RT-25613 ?

 See
 https://wiki.openjdk.java.net/display/OpenJFX/Code+Reviews#CodeReview
 s-TechnicalDiscussionsandCodeReviews

 Thanks,
 Daniel

 On Jan 22, 2014, at 7:23 PM, Stephen F 
 Northoversteve.x.northo...@oracle.com  wrote:

 If we add this API, I like addListener(InvalidationListener,
 boolean) better than ensureListener().

 Steve

 On 2014-01-22 8:20 AM, Ali Ebrahimi wrote:
 I suggest adding another overload for addListener method taking 
 boolean parameter  duplicateAllowed or duplicateNotAllowed.


 On Wed, Jan 22, 2014 at 3:00 PM, Richard 
 Bairrichard.b...@oracle.comwrote:

 The default implementation (for Observable) would look like this:

 public default void ensureListener(InvalidationListener listener) {
 removeListener(listener);
 addListener(listener);
 }

 subclasses might do something more effective. The same would 
 apply to
 ObservableValue and ChangeListener and Observable[List|Set|Map] and
 [List|Set|Map]ChangeListener.
 Well this would destroy the order! I expect listeners to be 
 called in
 the correct order not?
 That's a good point :-(

 Why doing a remove and not simply check if the
 listener has already been added?
 Because there is no way to check, except in the implementation. 
 From the
 Observable interface level, there is no way to a) force all 
 implementations
 of the interface to implement the method correctly (without 
 breaking source
 compatibility anyway), or b) to provide a reasonable default 
 implementation.

 Maybe this is one of those things we can't fix on the Observable 
 interface
 and just have to provide implementations of on our concrete 
 properties.

 Richard




Post commit notification: RT-34632: Lens: VK preload

2013-12-03 Thread Seeon Birger
JIRA:

HYPERLINK https://javafx-jira.kenai.com/browse/RT-34632RT-34632 - Lens: VK 
preload

 

Fixed in commit: b9e39db1ecbe

 

Regards,

Seeon

 


[8] Review request for RT-34632: Lens: VK preload

2013-12-02 Thread Seeon Birger
Jonathan, Daniel,

 

Please review in time for ZBB, a fix for 
https://javafx-jira.kenai.com/browse/RT-34632 - Lens: VK preload

(sub-task of https://javafx-jira.kenai.com/browse/RT-24685 - Lens: Virtual 
keyboard initialization is slow)

 

The patch moves VK initialization including pre-rendering to initialization of 
first TextInputControl.

 

Preloading is disabled by default. To Enable use:

-Dcom.sun.javafx.virtualKeyboard.preload=PRERENDERER

 

Regards,

Seeon

 


Post commit notification: RT-33336: Virtual keyboard buttons has incorrect ids

2013-11-20 Thread Seeon Birger
JIRA:

HYPERLINK https://javafx-jira.kenai.com/browse/RT-6RT-6 - FB: Virtual 
keyboard buttons has incorrect ids

 

Fixed in commit: 4d018e4ca9e4

 

Seeon


Post commit notification: RT-33336: Strip '.' from ids to support keys like '.com'

2013-11-20 Thread Seeon Birger
JIRA:

HYPERLINK https://javafx-jira.kenai.com/browse/RT-6RT-6 - FB: Virtual 
keyboard buttons has incorrect ids

 

Fixed in commit: b681690f12bd

 

Seeon

 


RE: discussion about touch events

2013-11-13 Thread Seeon Birger
Hi Pavel,

Your example of 'child over child' is an interesting case which raises some 
design aspects of the desired picking algorithm:
1. Which node to pick when one node has a 'strict containership' over the touch 
center and the other node only has a fuzzy containership (the position falls in 
the fuzzy area).
2. Accounting for z-order for extended capture zone area.
3. Accounting for parent-child relationship.

Referring to your 'child over child' example:
http://i.imgur.com/e92qEJA.jpg

The conflict would arise were touch point center position falls in the capture 
zone area of child2 but also clearly falls in the strict bounds of child1.
Generally, when two control nodes compete on same touch event (e.g. child1  
child2 in Daniel's diagram), it seems that we would like to give priority to 
strict containership over fuzzy containership.
But in your case it's probably not the desired behavior.

Also note that in the general case there's almost always exists come 
container/background node that strictly contains the touch point, but it would 
probably be an ancestor of the child node, so the usual parent-child 
relationship order will give preference to the child.

One way out it is to honor the usual z-order for the extended area of child2, 
so when a touch center hits the fuzzy area of child2, then child2 would be 
picked.

But is not ideal for Daniel's example:
http://i.imgur.com/ELWamYp.png

where the 2 nodes don't strictly overlap, but their capture zones do. 
Preferring one child by z-order (which matches the order of children in the 
parent) is not natural here. And we might better choose the node which is 
closer
 To the touch point.

So to summarize I suggest this rough picking algorithm:
1. Choose all uppermost nodes which are not transparent to mouse events and 
contain the touch point center either strictly or by their capture zone.
2. Remove all nodes that is strictly overlapped by another node and is below 
that node by z-order.
3. Out of those left choose the closest node. (the concept of closet should 
employ some calculation which might not be trivial in the general case).
4. Once a node has been picked, we follow the usual node chain list for event 
processing.

Care must be taken so we not break the current model for event processing. For 
example, if a node is picked by its capture zone, it means that the position 
does not fall in the boundaries of the node, so existing event handling code 
that relies on that would break. So I think the capture zone feature should be 
selectively enabled for certain type of nodes such buttons or other classic 
controls.

Regards,
Seeon





-Original Message-
From: Pavel Safrata 
Sent: Tuesday, November 12, 2013 1:11 PM
To: Daniel Blaukopf
Cc: OpenJFX
Subject: Re: discussion about touch events

(Now my answer using external link)

Hello Daniel,
this is quite similar to my idea described earlier. The major difference is the 
fair division of capture zones among siblings. It's an interesting idea, 
let's explore it. What pops first is that children can also overlap. So I think 
it would behave like this (green capture zones
omitted):

Child in parent vs. Child over child: http://i.imgur.com/e92qEJA.jpg

..wouldn't it? From user's point of view this seems confusing, both cases look 
the same but behave differently. Note that in the case on the right, the parent 
may be still the same, developer only adds a fancy background as a new child 
and suddenly the red child can't be hit that easily. What do you think? Is it 
an issue? Or would it not behave this way?

Regards,
Pavel

On 12.11.2013 12:06, Daniel Blaukopf wrote:
 (My original message didn't get through to openjfx-dev because I used 
 inline images. I've replaced those images with external links)

 On Nov 11, 2013, at 11:30 PM, Pavel Safrata pavel.safr...@oracle.com 
 mailto:pavel.safr...@oracle.com wrote:

 On 11.11.2013 17:49, Tomas Mikula wrote:
 On Mon, Nov 11, 2013 at 1:28 PM, Philipp Dörfler 
 phdoerf...@gmail.com mailto:phdoerf...@gmail.com wrote:
 I see the need to be aware of the area that is covered by fingers 
 rather than just considering that area's center point.
 I'd guess that this adds a new layer of complexity, though. For
 instance:
 Say we have a button on some background and both the background and 
 the button do have an onClick listener attached. If you tap the 
 button in a way that the touched area's center point is outside of 
 the buttons boundaries - what event will be fired? Will both the 
 background and the button receive a click event? Or just either the 
 background or the button exclusively? Will there be a new event 
 type which gets fired in case of such area-based taps?

 My suggestion would therefore be to have an additional area tap 
 event which gives precise information about diameter and center of 
 the tap. Besides that there should be some kind of priority for 
 choosing which node's onClick will be called.
 What about picking the one that is