From 1fcdb0b8f54c7cd844397f438c07a5bff6e10433 Mon Sep 17 00:00:00 2001 From: Alex Alabuzhev Date: Sun, 11 Jul 2021 16:28:16 +0100 Subject: [PATCH] Screen artefacts after updating QView panel --- far/changelog | 5 +++++ far/encoding.hpp | 2 +- far/far.natvis | 20 +++++++++++++++++++- far/filelist.cpp | 12 ++++++------ far/filepanels.cpp | 2 ++ far/qview.cpp | 5 ----- far/vbuild.m4 | 2 +- 7 files changed, 34 insertions(+), 14 deletions(-) diff --git a/far/changelog b/far/changelog index b9db6af03e..9c2406073f 100644 --- a/far/changelog +++ b/far/changelog @@ -1,3 +1,8 @@ +-------------------------------------------------------------------------------- +drkns 11.07.2021 16:27:30 +0100 - build 5846 + +1. Screen artefacts after updating QView panel. + -------------------------------------------------------------------------------- drkns 10.07.2021 15:55:20 +0100 - build 5845 diff --git a/far/encoding.hpp b/far/encoding.hpp index 986a55fb7f..9393b4207a 100644 --- a/far/encoding.hpp +++ b/far/encoding.hpp @@ -178,7 +178,7 @@ namespace encoding public: NONCOPYABLE(memory_writer); explicit memory_writer(uintptr_t Codepage, bool AddSignature = true); - void write(string_view Str, const bool validate=true); + void write(string_view Str, bool validate = true); void flush_to(std::ostream& Stream); diff --git a/far/far.natvis b/far/far.natvis index 18c2db86ba..06988dda66 100644 --- a/far/far.natvis +++ b/far/far.natvis @@ -38,6 +38,21 @@ + + + + + + m_Data + i * m_Rows,[m_Cols]na + ++i + + + + + + + + [{left} {top} {right} {bottom}] @@ -157,6 +172,7 @@ yellow white + short(ForegroundColor & 0xf),xb short(ForegroundRGBA.a) @@ -179,6 +195,7 @@ yellow white + short(BackgroundColor & 0xf),xb short(BackgroundRGBA.a) @@ -194,13 +211,14 @@ bool(Flags & FCF_FG_STRIKEOUT) bool(Flags & FCF_FG_FAINT) bool(Flags & FCF_FG_BLINK) + short((Flags & FCF_RAWATTR_MASK) >> 8),h - {Char} + {&Char,[1]sub} diff --git a/far/filelist.cpp b/far/filelist.cpp index 5b7be62ab5..43813393a9 100644 --- a/far/filelist.cpp +++ b/far/filelist.cpp @@ -7528,6 +7528,12 @@ void FileList::ShowFileList(bool Fast) Parent()->GetAnotherPanel(this)->Update(UPDATE_KEEP_SELECTION | UPDATE_SECONDARY); } + if (!ProcessingPluginCommand && LastCurFile != m_CurFile) + { + LastCurFile = m_CurFile; + UpdateViewPanel(); + } + SetScreen({ m_Where.left + 1, m_Where.top + 1, m_Where.right - 1, m_Where.bottom - 1 }, L' ', colors::PaletteColorToFarColor(COL_PANELTEXT)); Box(m_Where, colors::PaletteColorToFarColor(COL_PANELBOX), DOUBLE_BOX); @@ -7787,12 +7793,6 @@ void FileList::ShowFileList(bool Fast) ShowScreensCount(); - if (!ProcessingPluginCommand && LastCurFile!=m_CurFile) - { - LastCurFile=m_CurFile; - UpdateViewPanel(); - } - if (m_PanelMode == panel_mode::PLUGIN_PANEL) Parent()->RedrawKeyBar(); } diff --git a/far/filepanels.cpp b/far/filepanels.cpp index 245fc218a0..0eaf3d2d5d 100644 --- a/far/filepanels.cpp +++ b/far/filepanels.cpp @@ -530,6 +530,8 @@ bool FilePanels::ProcessKey(const Manager::Key& Key) AnotherPanel->Update(UPDATE_KEEP_SELECTION); AnotherPanel->Show(); + + ActivePanel()->Show(); } } break; diff --git a/far/qview.cpp b/far/qview.cpp index a71375e665..276e7140ad 100644 --- a/far/qview.cpp +++ b/far/qview.cpp @@ -489,11 +489,6 @@ void QuickView::ShowFile(string_view const FileName, const UserDataItem* const U const auto ExitCode = GetDirInfo(strCurFileName, Data, nullptr, DirInfoCallback, GETDIRINFO_ENHBREAK | GETDIRINFO_SCANSYMLINKDEF); m_DirectoryScanStatus = ExitCode == -1? scan_status::real_fail : scan_status::real_ok; // ExitCode: 1=done; 0=Esc,CtrlBreak; -1=Other uncomplete_dirscan = ExitCode != 1; - - if (const auto Window = m_Owner.lock()) - { - Window->Redraw(); - } } } else diff --git a/far/vbuild.m4 b/far/vbuild.m4 index 1b067f73b2..f76fa92abd 100644 --- a/far/vbuild.m4 +++ b/far/vbuild.m4 @@ -1 +1 @@ -5845 +5846