diff --git a/dev/External/SquireUI.js b/dev/External/SquireUI.js
index e7f6e5343..04decb19b 100644
--- a/dev/External/SquireUI.js
+++ b/dev/External/SquireUI.js
@@ -14,7 +14,6 @@ const
createElement = name => doc.createElement(name),
tpl = createElement('template'),
- clr = createElement('input'),
trimLines = html => html.trim().replace(/^(
\s*
\s*<\/div>)+/, '').trim(),
htmlToPlain = html => rl.Utils.htmlToPlain(html).trim(),
@@ -61,18 +60,21 @@ const
}
};
-clr.type = "color";
-clr.style.display = 'none';
-doc.body.append(clr);
-
class SquireUI
{
constructor(container) {
const
- doClr = name => () => {
+ clr = createElement('input'),
+ doClr = name => input => {
+ // https://github.com/the-djmaze/snappymail/issues/826
+ var rect = input.getBoundingClientRect();
+ clr.style.top = (rect.bottom - clr.offsetHeight) + 'px';
+ clr.style.left = rect.left + 'px';
+ clr.style.width = (rect.right - rect.left) + 'px';
+
clr.value = '';
clr.onchange = () => squire.setStyle({[name]:clr.value});
- clr.click();
+ setTimeout(()=>clr.click(),1);
},
actions = {
@@ -258,6 +260,11 @@ class SquireUI
browseImage = createElement('input'),
squire = new Squire(wysiwyg, SquireDefaultConfig);
+ clr.type = "color";
+ clr.style.opacity = 0;
+ clr.style.position = 'fixed';
+ container.append(clr);
+
browseImage.type = 'file';
browseImage.accept = 'image/*';
browseImage.style.display = 'none';