mirror of https://github.com/zulip/zulip.git
Use CachedValue objects for viewport height and width
(imported from commit f61cca77651b5e9a66db6c2a9749fe7a1e958fac)
This commit is contained in:
parent
3ce318e9a1
commit
1c4a608b40
|
@ -158,15 +158,17 @@ exports.scrollTop = function viewport_scrollTop () {
|
||||||
};
|
};
|
||||||
|
|
||||||
function make_dimen_wrapper(dimen_name, dimen_func) {
|
function make_dimen_wrapper(dimen_name, dimen_func) {
|
||||||
|
dimensions[dimen_name] = new util.CachedValue({
|
||||||
|
compute_value: function () {
|
||||||
|
return dimen_func.call(jwindow);
|
||||||
|
}
|
||||||
|
});
|
||||||
return function viewport_dimension_wrapper() {
|
return function viewport_dimension_wrapper() {
|
||||||
if (arguments.length !== 0) {
|
if (arguments.length !== 0) {
|
||||||
delete dimensions[dimen_name];
|
dimensions[dimen_name].reset();
|
||||||
return dimen_func.apply(jwindow, arguments);
|
return dimen_func.apply(jwindow, arguments);
|
||||||
}
|
}
|
||||||
if (! dimensions.hasOwnProperty(dimen_name)) {
|
return dimensions[dimen_name].get();
|
||||||
dimensions[dimen_name] = dimen_func.call(jwindow);
|
|
||||||
}
|
|
||||||
return dimensions[dimen_name];
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -208,7 +210,8 @@ $(function () {
|
||||||
jwindow = $(window);
|
jwindow = $(window);
|
||||||
// This handler must be placed before all resize handlers in our application
|
// This handler must be placed before all resize handlers in our application
|
||||||
jwindow.resize(function () {
|
jwindow.resize(function () {
|
||||||
dimensions = {};
|
dimensions.height.reset();
|
||||||
|
dimensions.width.reset();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue