call gc before focus/blur to remove elements from focus stack that are no longer around
This commit is contained in:
parent
05b4d0cf82
commit
e51c4aa847
2 changed files with 9 additions and 4 deletions
|
@ -19,6 +19,7 @@ Ox.Focus = (function() {
|
|||
(id) -> <u> blur element by id
|
||||
@*/
|
||||
blur: function(id) {
|
||||
Ox.GarbageCollection();
|
||||
var index = stack.indexOf(id);
|
||||
if (index > -1 && index == stack.length - 1) {
|
||||
stack.length == 1
|
||||
|
@ -40,6 +41,7 @@ Ox.Focus = (function() {
|
|||
(id) -> <u> focus element by id
|
||||
@*/
|
||||
focus: function(id) {
|
||||
Ox.GarbageCollection();
|
||||
var index = stack.indexOf(id);
|
||||
if (index == -1 || index < stack.length - 1) {
|
||||
index > -1 && stack.splice(index, 1);
|
||||
|
@ -47,7 +49,7 @@ Ox.Focus = (function() {
|
|||
if (stack.length > 1) {
|
||||
Ox.UI.elements[stack[stack.length - 2]]
|
||||
.removeClass('OxFocus')
|
||||
.triggerEvent('losefocus')
|
||||
.triggerEvent('losefocus');
|
||||
}
|
||||
Ox.UI.elements[id]
|
||||
.addClass('OxFocus')
|
||||
|
|
|
@ -3,10 +3,11 @@
|
|||
Ox.GarbageCollection = (function() {
|
||||
|
||||
var that = function() {
|
||||
collect();
|
||||
};
|
||||
collect();
|
||||
},
|
||||
timeout;
|
||||
|
||||
setInterval(collect, 60000);
|
||||
collect();
|
||||
|
||||
function collect() {
|
||||
var len = Ox.len(Ox.UI.elements);
|
||||
|
@ -19,6 +20,8 @@ Ox.GarbageCollection = (function() {
|
|||
delete Ox.UI.elements[id];
|
||||
}
|
||||
});
|
||||
timeout && clearTimeout(timeout);
|
||||
timeout = setTimeout(collect, 60000);
|
||||
Ox.Log('GC', len, '-->', Ox.len(Ox.UI.elements));
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue