aboutsummaryrefslogtreecommitdiffstats
path: root/library/jquery-textcomplete/jquery.textcomplete.js
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2015-01-26 18:27:03 -0800
committerfriendica <info@friendica.com>2015-01-26 18:27:03 -0800
commitac594183c6fdc6cf4d5a2a29ade7478a17336397 (patch)
treed38f73727da4d8697b00d2102ae10b501d1909ce /library/jquery-textcomplete/jquery.textcomplete.js
parente6bfe3f2c10e851ed5ba49886ec8d0a9a9de2296 (diff)
parent9f5bfca28dde23893156ad36682e20ca2fc0dd45 (diff)
downloadvolse-hubzilla-ac594183c6fdc6cf4d5a2a29ade7478a17336397.tar.gz
volse-hubzilla-ac594183c6fdc6cf4d5a2a29ade7478a17336397.tar.bz2
volse-hubzilla-ac594183c6fdc6cf4d5a2a29ade7478a17336397.zip
Merge branch 'master' into tres and add some work on the item_deleted flag refactor
Conflicts: include/attach.php include/onedirsync.php include/zot.php mod/locs.php
Diffstat (limited to 'library/jquery-textcomplete/jquery.textcomplete.js')
-rw-r--r--library/jquery-textcomplete/jquery.textcomplete.js19
1 files changed, 17 insertions, 2 deletions
diff --git a/library/jquery-textcomplete/jquery.textcomplete.js b/library/jquery-textcomplete/jquery.textcomplete.js
index c8303eaa0..3df84f3b4 100644
--- a/library/jquery-textcomplete/jquery.textcomplete.js
+++ b/library/jquery-textcomplete/jquery.textcomplete.js
@@ -124,9 +124,8 @@ if (typeof jQuery === 'undefined') {
this.views = [];
this.option = $.extend({}, Completer._getDefaults(), option);
-
if (!this.$el.is('input[type=text]') && !this.$el.is('textarea') && !element.isContentEditable && element.contentEditable != 'true') {
- throw new Error('textcomplete must be called on a input[type=text], Textarea or a ContentEditable.');
+ throw new Error('textcomplete must be called on a Textarea or a ContentEditable.');
}
if (element === document.activeElement) {
@@ -414,6 +413,22 @@ if (typeof jQuery === 'undefined') {
setPosition: function (position) {
this.$el.css(this._applyPlacement(position));
+
+ // Make the dropdown fixed if the input is also fixed
+ // This can't be done during init, as textcomplete may be used on multiple elements on the same page
+ // Because the same dropdown is reused behind the scenes, we need to recheck every time the dropdown is showed
+ var position = 'absolute';
+ // Check if input or one of its parents has positioning we need to care about
+ this.$inputEl.add(this.$inputEl.parents()).each(function() {
+ if($(this).css('position') === 'absolute') // The element has absolute positioning, so it's all OK
+ return false;
+ if($(this).css('position') === 'fixed') {
+ position = 'fixed';
+ return false;
+ }
+ });
+ this.$el.css({ position: position }); // Update positioning
+
return this;
},