You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2013/04/26 17:24:54 UTC
git commit: WICKET-5154 Positioning of autocomplete popup does not
take into account borders
Updated Branches:
refs/heads/master 5a316d37b -> 958730846
WICKET-5154 Positioning of autocomplete popup does not take into account borders
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/95873084
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/95873084
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/95873084
Branch: refs/heads/master
Commit: 95873084637d96908a5df08343b37846d3e38174
Parents: 5a316d3
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Fri Apr 26 17:24:33 2013 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Fri Apr 26 17:24:33 2013 +0200
----------------------------------------------------------------------
.../autocomplete/AbstractAutoCompleteBehavior.java | 1 +
.../html/autocomplete/AutoCompleteSettings.java | 28 +++++++++++++++
.../html/autocomplete/wicket-autocomplete.js | 11 ++++++
3 files changed, 40 insertions(+), 0 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/95873084/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java
index 1d754dc..9105f73 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java
@@ -152,6 +152,7 @@ public abstract class AbstractAutoCompleteBehavior extends AbstractDefaultAjaxBe
sb.append(",useSmartPositioning: ").append(settings.getUseSmartPositioning());
sb.append(",useHideShowCoveredIEFix: ").append(settings.getUseHideShowCoveredIEFix());
sb.append(",showListOnEmptyInput: ").append(settings.getShowListOnEmptyInput());
+ sb.append(",ignoreBordersWhenPositioning: ").append(settings.getIgnoreBordersWhenPositioning());
sb.append(",showListOnFocusGain: ").append(settings.getShowListOnFocusGain());
sb.append(",throttleDelay: ").append(settings.getThrottleDelay());
sb.append(",parameterName: '").append(settings.getParameterName()).append('\'');
http://git-wip-us.apache.org/repos/asf/wicket/blob/95873084/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AutoCompleteSettings.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AutoCompleteSettings.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AutoCompleteSettings.java
index 4709ee7..8f784ad 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AutoCompleteSettings.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AutoCompleteSettings.java
@@ -57,6 +57,8 @@ public final class AutoCompleteSettings implements IClusterable
private boolean useSmartPositioning = false;
+ private boolean ignoreBordersWhenPositioning = true;
+
private boolean useHideShowCoveredIEFix = true;
private String cssClassName = null;
@@ -156,6 +158,32 @@ public final class AutoCompleteSettings implements IClusterable
}
/**
+ * Indicates whether the popup positioning will take into account the borders of the input
+ * element and its ancestors.
+ *
+ * @return true if borders are ignored, false otherwise.
+ */
+ public boolean getIgnoreBordersWhenPositioning()
+ {
+ return ignoreBordersWhenPositioning;
+ }
+
+ /**
+ * Sets whether the popup positioning will take into account the borders of the input element
+ * and its ancestors (by including the <code>clientLeft</code> and <code>clientTop</code> DOM
+ * properties in the computation).
+ *
+ * @param ignoreBordersWhenPositioning
+ * the flag
+ * @return this {@link AutoCompleteSettings}.
+ */
+ public AutoCompleteSettings setIgnoreBordersWhenPositioning(final boolean ignoreBordersWhenPositioning)
+ {
+ this.ignoreBordersWhenPositioning = ignoreBordersWhenPositioning;
+ return this;
+ }
+
+ /**
* Indicates whether the popup positioning will take into account browser window visible area or
* not. (so always show popup bottom-right or not)
*
http://git-wip-us.apache.org/repos/asf/wicket/blob/95873084/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
index 5678e39..3301a19 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
@@ -570,12 +570,23 @@
function getPosition(obj) {
var leftPosition = obj.offsetLeft || 0;
var topPosition = obj.offsetTop || 0;
+ if (!cfg.ignoreBordersWhenPositioning) {
+ topPosition += obj.clientTop || 0;
+ leftPosition += obj.clientLeft || 0;
+ }
+
obj = obj.offsetParent;
while (obj && obj !== document.documentElement && obj !== document.body) {
topPosition += obj.offsetTop || 0;
topPosition -= obj.scrollTop || 0;
+ if (!cfg.ignoreBordersWhenPositioning) {
+ topPosition += obj.clientTop || 0;
+ }
leftPosition += obj.offsetLeft || 0;
leftPosition -= obj.scrollLeft || 0;
+ if (!cfg.ignoreBordersWhenPositioning) {
+ leftPosition += obj.clientLeft || 0;
+ }
obj = obj.offsetParent;
}