From ccaaeeef87932fdcd53857274f74b1af0db8cfcb Mon Sep 17 00:00:00 2001 From: Le Tan Date: Fri, 4 May 2018 20:37:57 +0800 Subject: [PATCH] bug-fix: VMdTab does not scroll to the correct header in edit mode This is introduced after replacing QStackedLayout with QSplitter. --- src/vmdtab.cpp | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/vmdtab.cpp b/src/vmdtab.cpp index 66c4fb29..47ff070d 100644 --- a/src/vmdtab.cpp +++ b/src/vmdtab.cpp @@ -1383,13 +1383,20 @@ void VMdTab::setCurrentMode(Mode p_mode) m_livePreviewHelper->setLivePreviewEnabled(false); } + m_mode = p_mode; + switch (p_mode) { case Mode::Read: - m_webViewer->show(); if (m_editor) { m_editor->hide(); } + m_webViewer->show(); + + // Fix the bug introduced by 051088be31dbffa3c04e2d382af15beec40d5fdb + // which replace QStackedLayout with QSplitter. + QCoreApplication::sendPostedEvents(); + if (m_readWebViewState.isNull()) { m_readWebViewState.reset(new WebViewState()); m_readWebViewState->m_zoomFactor = factor; @@ -1401,14 +1408,20 @@ void VMdTab::setCurrentMode(Mode p_mode) break; case Mode::Edit: - m_editor->show(); m_webViewer->hide(); + m_editor->show(); + + QCoreApplication::sendPostedEvents(); + break; case Mode::EditPreview: Q_ASSERT(m_editor); - m_editor->show(); m_webViewer->show(); + m_editor->show(); + + QCoreApplication::sendPostedEvents(); + if (m_previewWebViewState.isNull()) { m_previewWebViewState.reset(new WebViewState()); m_previewWebViewState->m_zoomFactor = factor; @@ -1440,8 +1453,6 @@ void VMdTab::setCurrentMode(Mode p_mode) break; } - m_mode = p_mode; - focusChild(); }