ui: Refresh UI state only after every style refresh in each view finished (#917)

Separated UI refresh into 'style' and 'state' refresh to avoid race condition between task scheduler thread and UI thread that affected code view state.
fixes #916
This commit is contained in:
Eberhard Gräther
2020-02-11 01:19:44 +01:00
committed by GitHub
parent 9fc0a05c3b
commit 08f43173c0
11 changed files with 36 additions and 20 deletions
@@ -632,16 +632,6 @@ void QtCodeNavigator::setModeSingle()
}
}
void QtCodeNavigator::handleMessage(MessageIndexingFinished* message)
{
m_onQtThread([=]() { clearCache(); });
}
void QtCodeNavigator::handleMessage(MessageSwitchColorScheme* message)
{
m_onQtThread([=]() { clearCache(); });
}
void QtCodeNavigator::handleMessage(MessageWindowFocus* message)
{
if (message->focusIn)
@@ -5,9 +5,7 @@
#include "ErrorInfo.h"
#include "LocationType.h"
#include "MessageIndexingFinished.h"
#include "MessageListener.h"
#include "MessageSwitchColorScheme.h"
#include "MessageWindowFocus.h"
#include "QtCodeFileList.h"
#include "QtCodeFileSingle.h"
@@ -21,8 +19,6 @@ class SourceLocationFile;
class QtCodeNavigator
: public QWidget
, public MessageListener<MessageIndexingFinished>
, public MessageListener<MessageSwitchColorScheme>
, public MessageListener<MessageWindowFocus>
{
Q_OBJECT
@@ -117,8 +113,6 @@ private slots:
void setModeSingle();
private:
void handleMessage(MessageIndexingFinished* message) override;
void handleMessage(MessageSwitchColorScheme* message) override;
void handleMessage(MessageWindowFocus* message) override;
QtThreadedLambdaFunctor m_onQtThread;