Save ui position only once.
I noticed that Chrome deletes empty localStorage keys when closing it. Dragging the QR to the bottom right would save empty top/right keys, resulting in its position reset when restarting the browser.
This commit is contained in:
parent
e9343bff56
commit
716c34aa7c
@ -199,23 +199,25 @@
|
|||||||
};
|
};
|
||||||
ui = {
|
ui = {
|
||||||
dialog: function(id, position, html) {
|
dialog: function(id, position, html) {
|
||||||
var el, left, top, _ref, _ref2;
|
var el, left, saved, top;
|
||||||
el = d.createElement('div');
|
el = d.createElement('div');
|
||||||
el.className = 'reply dialog';
|
el.className = 'reply dialog';
|
||||||
el.innerHTML = html;
|
el.innerHTML = html;
|
||||||
el.id = id;
|
el.id = id;
|
||||||
left = position.left, top = position.top;
|
if (saved = localStorage["" + NAMESPACE + id + ".position"]) {
|
||||||
left = (_ref = localStorage["" + NAMESPACE + id + "Left"]) != null ? _ref : left;
|
el.style.cssText = saved;
|
||||||
top = (_ref2 = localStorage["" + NAMESPACE + id + "Top"]) != null ? _ref2 : top;
|
|
||||||
if (left) {
|
|
||||||
el.style.left = left;
|
|
||||||
} else {
|
} else {
|
||||||
el.style.right = 0;
|
left = position.left, top = position.top;
|
||||||
}
|
if (left) {
|
||||||
if (top) {
|
el.style.left = left;
|
||||||
el.style.top = top;
|
} else {
|
||||||
} else {
|
el.style.right = 0;
|
||||||
el.style.bottom = 0;
|
}
|
||||||
|
if (top) {
|
||||||
|
el.style.top = top;
|
||||||
|
} else {
|
||||||
|
el.style.bottom = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
el.querySelector('div.move').addEventListener('mousedown', ui.dragstart, false);
|
el.querySelector('div.move').addEventListener('mousedown', ui.dragstart, false);
|
||||||
return el;
|
return el;
|
||||||
@ -259,8 +261,7 @@
|
|||||||
var el, id;
|
var el, id;
|
||||||
el = ui.el;
|
el = ui.el;
|
||||||
id = el.id;
|
id = el.id;
|
||||||
localStorage["" + NAMESPACE + id + "Left"] = el.style.left;
|
localStorage["" + NAMESPACE + id + ".position"] = el.style.cssText;
|
||||||
localStorage["" + NAMESPACE + id + "Top"] = el.style.top;
|
|
||||||
d.removeEventListener('mousemove', ui.drag, false);
|
d.removeEventListener('mousemove', ui.drag, false);
|
||||||
return d.removeEventListener('mouseup', ui.dragend, false);
|
return d.removeEventListener('mouseup', ui.dragend, false);
|
||||||
},
|
},
|
||||||
|
|||||||
@ -126,11 +126,12 @@ ui =
|
|||||||
el.className = 'reply dialog'
|
el.className = 'reply dialog'
|
||||||
el.innerHTML = html
|
el.innerHTML = html
|
||||||
el.id = id
|
el.id = id
|
||||||
{left, top} = position
|
if saved = localStorage["#{NAMESPACE}#{id}.position"]
|
||||||
left = localStorage["#{NAMESPACE}#{id}Left"] ? left
|
el.style.cssText = saved
|
||||||
top = localStorage["#{NAMESPACE}#{id}Top"] ? top
|
else
|
||||||
if left then el.style.left = left else el.style.right = 0
|
{left, top} = position
|
||||||
if top then el.style.top = top else el.style.bottom = 0
|
if left then el.style.left = left else el.style.right = 0
|
||||||
|
if top then el.style.top = top else el.style.bottom = 0
|
||||||
el.querySelector('div.move').addEventListener 'mousedown', ui.dragstart, false
|
el.querySelector('div.move').addEventListener 'mousedown', ui.dragstart, false
|
||||||
el
|
el
|
||||||
dragstart: (e) ->
|
dragstart: (e) ->
|
||||||
@ -170,8 +171,7 @@ ui =
|
|||||||
#a = (b = c.b, c).a;
|
#a = (b = c.b, c).a;
|
||||||
{el} = ui
|
{el} = ui
|
||||||
{id} = el
|
{id} = el
|
||||||
localStorage["#{NAMESPACE}#{id}Left"] = el.style.left
|
localStorage["#{NAMESPACE}#{id}.position"] = el.style.cssText
|
||||||
localStorage["#{NAMESPACE}#{id}Top"] = el.style.top
|
|
||||||
d.removeEventListener 'mousemove', ui.drag, false
|
d.removeEventListener 'mousemove', ui.drag, false
|
||||||
d.removeEventListener 'mouseup', ui.dragend, false
|
d.removeEventListener 'mouseup', ui.dragend, false
|
||||||
hover: (e) ->
|
hover: (e) ->
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user