[TabBox] Remember current model index on SwitcherItem model set

In case we need to set the SwitcherItem model in
`TabBoxHandlerPrivate::show()`, remember the current index row,
otherwise it gets reset to the first item.

Reviewers: #kwin, graesslin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D4162

BUG: 333511
This commit is contained in:
Roman Gilg 2017-01-16 19:11:07 +01:00
parent 4d3809f8e3
commit e019c9f61e

View file

@ -323,6 +323,9 @@ void TabBoxHandlerPrivate::show()
}
}
if (SwitcherItem *item = switcherItem()) {
// In case the model isn't yet set (see below), index will be reset and therefore we
// need to save the current index row (https://bugs.kde.org/show_bug.cgi?id=333511).
int indexRow = index.row();
if (!item->model()) {
QAbstractItemModel *model = nullptr;
if (desktopMode) {
@ -333,7 +336,7 @@ void TabBoxHandlerPrivate::show()
item->setModel(model);
}
item->setAllDesktops(config.clientDesktopMode() == TabBoxConfig::AllDesktopsClients);
item->setCurrentIndex(index.row());
item->setCurrentIndex(indexRow);
// everything is prepared, so let's make the whole thing visible
item->setVisible(true);
}