From c5bf4410a936a59f0abf002f1002fc9e5898234c Mon Sep 17 00:00:00 2001 From: lsv Date: Wed, 18 Feb 2026 16:04:23 +0500 Subject: [PATCH] fix flickering of the Activity window for linux. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Окно Activity теперь использует при создании стиль wxBG_STYLE_TRANSPARENT. (только linux) Мерцание устроняется, но начинается повышенная нагрузка на CPU. Также в режиме показа только раскрашенных строк отключается пользовательский ввод. По причине аварийного завершения приложений при обработке нажатий мыши по строкам которые буду удалены при обновлении данных. --- ctl/ctlListView.cpp | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/ctl/ctlListView.cpp b/ctl/ctlListView.cpp index 421517c..0781217 100644 --- a/ctl/ctlListView.cpp +++ b/ctl/ctlListView.cpp @@ -32,14 +32,31 @@ MyCompareFunction(wxIntPtr item1, wxIntPtr item2, wxIntPtr WXUNUSED(sortData)) } ctlListView::ctlListView(wxWindow* p, int id, wxPoint pos, wxSize siz, long attr) - : wxListView(p, id, pos, siz, attr | wxLC_REPORT) +// : wxListView(p, id, pos, siz, attr | wxLC_REPORT) { nosort = false; autohint=false; order = 1; prev_col = -1; storelongstring = false; - Connect(wxID_ANY, wxEVT_LIST_COL_CLICK, wxListEventHandler(ctlListView::OnSortGrid)); +#ifdef __WXGTK__ + if (id==CTL_STATUSLIST) { + SetBackgroundStyle(wxBG_STYLE_TRANSPARENT); + //SetBackgroundColour(wxTRANSPARENT); + //SetBackgroundStyle(wxBG_STYLE_PAINT); + + + } +#endif + Create(p, id, pos, siz, attr | wxLC_REPORT); + + if (id!=CTL_STATUSLIST) + Connect(wxID_ANY, wxEVT_LIST_COL_CLICK, wxListEventHandler(ctlListView::OnSortGrid)); + else { +// SetDoubleBuffered(true); +// SetBackgroundStyle(wxBG_STYLE_PAINT); +// Bind(wxEVT_ERASE_BACKGROUND, [] (wxEraseEvent&) {} ); + } } #include bool ctlListView::IsNumberColumn(const wxString& columnlabel) {