It's been that way ever since:

"keydown" with allowDefault=false -> not character input

Sven

On 05/22/2013 12:07 PM, Martin Grigorov wrote:
The quickstart in the ticket is very simple, there is no usage of
throttling.
It's just:

textField.add(new AjaxEventBehavior("keydown") {
  @Override
protected void onEvent(AjaxRequestTarget target) {
System.err.println("event");
  }
});

Without explicitly allowing the default behavior the user cannot enter a
single character in the <input type=text>.


On Wed, May 22, 2013 at 1:01 PM, Sven Meier <s...@meiers.net> wrote:

AFAICS this is a problem only for behaviors which are throttled.
AjaxFormValidatingBehavior is the only one in Wicket, we can simple set
allowDefault=true for that one. And I don't think this is so urgent to
require a 6.8.1 release.

Anyone else using ThrottlingSettings can easily set allowDefault=true in
their own behavior.

Changing the default for allowDefault might break many other places in
user's code :(.

Sven



On 05/22/2013 09:04 AM, Martin Grigorov wrote:

Hi,

I think we need 6.8.1 because of the problem in
https://issues.apache.org/**jira/browse/WICKET-5194<https://issues.apache.org/jira/browse/WICKET-5194>
.
The quickstart shows that textField.add(new AjaxEventBehavior("keydown"))
doesn't work because the event' default behavior is prevented.

org.apache.wicket.ajax.**attributes.**AjaxRequestAttributes#**
allowDefault
default value was 'false' since 6.0.0 but it seems it was not used at all
in many cases before the changes in WICKET-5093:

https://git-wip-us.apache.org/**repos/asf/wicket/repo?p=**
wicket.git;a=commitdiff;h=**a11ce8a7e3b575385d8f03db621305**17a2b80d09<https://git-wip-us.apache.org/repos/asf/wicket/repo?p=wicket.git;a=commitdiff;h=a11ce8a7e3b575385d8f03db62130517a2b80d09>
https://git-wip-us.apache.org/**repos/asf/wicket/repo?p=**
wicket.git;a=commitdiff;h=**6eec04b135a60c31fac7b74b866d9f**dcc862ef30<https://git-wip-us.apache.org/repos/asf/wicket/repo?p=wicket.git;a=commitdiff;h=6eec04b135a60c31fac7b74b866d9fdcc862ef30>

I suggest to change the default value of 'allowDefault' to 'true'.

Do you see any use cases where the value should be 'false' ?
The 'false' value was because AjaxFallbackLink should not execute it
default behavior - following its href location. But here really the
effective JS event property is 'stopPropagation' which has been extracted
to its own property in AjaxRequestAttributes.

A workaround is to use:

getAjaxRequestTargetListeners(**).add(new AjaxRequestTarget.**
AbstractListener()
{
   @Override
public void updateAjaxAttributes(**AjaxRequestAttributes attributes)
{
   super.updateAjaxAttributes(**attributes);

attributes.setAllowDefault(**true);
}
   });

in YourApp#init(). But we cannot ask all users to do this until 6.9.0 is
released.

What do you think ? Should we fix this and release 6.8.1 as soon as
possible ?



Reply via email to