Fix controls bar calculation

Controls bar calculation needs to take the sidebar visibility into
account.

Recalculation is now triggered when sidebar is toggled, using a new
app-content event "appresized".
This commit is contained in:
Vincent Petry 2015-08-28 12:23:57 +02:00
parent d3fc28a6ba
commit 7303b68577
2 changed files with 12 additions and 6 deletions

View File

@ -27,8 +27,8 @@
*/
exports.Apps.showAppSidebar = function($el) {
var $appSidebar = $el || $('#app-sidebar');
$appSidebar.removeClass('disappear')
$('#app-content').addClass('with-app-sidebar');
$appSidebar.removeClass('disappear');
$('#app-content').addClass('with-app-sidebar').trigger(new $.Event('appresized'));
};
@ -41,7 +41,7 @@
exports.Apps.hideAppSidebar = function($el) {
var $appSidebar = $el || $('#app-sidebar');
$appSidebar.addClass('disappear');
$('#app-content').removeClass('with-app-sidebar');
$('#app-content').removeClass('with-app-sidebar').trigger(new $.Event('appresized'));
};
/**

View File

@ -1393,13 +1393,19 @@ function initCore() {
// if there is a scrollbar …
if($('#app-content').get(0).scrollHeight > $('#app-content').height()) {
if($(window).width() > 768) {
controlsWidth = $('#content').width() - $('#app-navigation').width() - $('#app-sidebar').width() - getScrollBarWidth();
controlsWidth = $('#content').width() - $('#app-navigation').width() - getScrollBarWidth();
if (!$('#app-sidebar').hasClass('hidden') && !$('#app-sidebar').hasClass('disappear')) {
controlsWidth -= $('#app-sidebar').width();
}
} else {
controlsWidth = $('#content').width() - getScrollBarWidth();
}
} else { // if there is none
if($(window).width() > 768) {
controlsWidth = $('#content').width() - $('#app-navigation').width() - $('#app-sidebar').width();
controlsWidth = $('#content').width() - $('#app-navigation').width();
if (!$('#app-sidebar').hasClass('hidden') && !$('#app-sidebar').hasClass('disappear')) {
controlsWidth -= $('#app-sidebar').width();
}
} else {
controlsWidth = $('#content').width();
}
@ -1411,7 +1417,7 @@ function initCore() {
$(window).resize(_.debounce(adjustControlsWidth, 250));
$('body').delegate('#app-content', 'apprendered', adjustControlsWidth);
$('body').delegate('#app-content', 'apprendered appresized', adjustControlsWidth);
}