diff --git a/qutebrowser/utils/completion.py b/qutebrowser/utils/completion.py index 7cd42b811..acd8907d1 100644 --- a/qutebrowser/utils/completion.py +++ b/qutebrowser/utils/completion.py @@ -314,10 +314,7 @@ class CompletionFilterModel(QSortFilterProxyModel): srcmodel.sort(sortcol) except NotImplementedError: self.sort(sortcol) - # FIXME we should call self.invalidate() here so sorting actually works. - # However, this seems to provoke a lot of weird problems, like - # random race condition segfaults :( - # self.invalidate() + self.invalidate() def filterAcceptsRow(self, row, parent): """Custom filter implementation. diff --git a/qutebrowser/widgets/completion.py b/qutebrowser/widgets/completion.py index 0453b145a..3b3856ace 100644 --- a/qutebrowser/widgets/completion.py +++ b/qutebrowser/widgets/completion.py @@ -80,6 +80,12 @@ class CompletionView(QTreeView): self.setHeaderHidden(True) self.setIndentation(0) self.setItemsExpandable(False) + # FIXME This is a workaround for weird race conditions with invalid + # item indexes leading to segfaults in Qt. + # + # Some background: http://bugs.quassel-irc.org/issues/663 + # The proposed fix there was later reverted because it didn't help. + self.setUniformRowHeights(True) self.hide() # FIXME set elidemode