Fix nicklist swipe behaviour for buffers without a nicklist
We shouldn't update the swipe state if the active doesn't have a nicklist. The (previously) required double-right-swipe to get to the sidebar was confusing and a bug
This commit is contained in:
parent
5be2f027e4
commit
66c8c53b41
1 changed files with 15 additions and 9 deletions
|
@ -356,7 +356,9 @@ weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout',
|
|||
} else if ($scope.swipeStatus === 0) {
|
||||
// show nicklist
|
||||
$scope.swipeStatus = -1;
|
||||
$scope.updateShowNicklist();
|
||||
if (!$scope.updateShowNicklist()) {
|
||||
$scope.swipeStatus = 0;
|
||||
}
|
||||
} else if ($scope.swipeStatus === -1) {
|
||||
/* do nothing */
|
||||
} else {
|
||||
|
@ -761,26 +763,30 @@ weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout',
|
|||
$scope.updateShowNicklist();
|
||||
});
|
||||
$scope.showNicklist = false;
|
||||
// Utility function that template can use to check if nicklist should
|
||||
// be displayed for current buffer or not
|
||||
// is called on buffer switch and certain swipe actions
|
||||
// Utility function that template can use to check if nicklist should be
|
||||
// displayed for current buffer or not is called on buffer switch and
|
||||
// certain swipe actions. Sets $scope.showNicklist accordingly and returns
|
||||
// whether the buffer even has a nicklist to show.
|
||||
$scope.updateShowNicklist = function() {
|
||||
$scope.showNicklist = (function() {
|
||||
// returns array of booleans: [show nicklist, buffer has nicklist]
|
||||
var result = (function() {
|
||||
var ab = models.getActiveBuffer();
|
||||
// Check whether buffer exists and nicklist is non-empty
|
||||
if (!ab || ab.isNicklistEmpty()) {
|
||||
return false;
|
||||
return [false, false];
|
||||
}
|
||||
// Check if nicklist is disabled in settings (ignored on mobile)
|
||||
if (!utils.isMobileUi() && settings.nonicklist) {
|
||||
return false;
|
||||
return [false, true];
|
||||
}
|
||||
// mobile: hide nicklist unless overriden by setting or swipe action
|
||||
if (utils.isMobileUi() && !settings.alwaysnicklist && $scope.swipeStatus !== -1) {
|
||||
return false;
|
||||
return [false, true];
|
||||
}
|
||||
return true;
|
||||
return [true, true];
|
||||
})();
|
||||
$scope.showNicklist = result[0];
|
||||
return result[1];
|
||||
};
|
||||
|
||||
//XXX not sure whether this belongs here
|
||||
|
|
Loading…
Reference in a new issue