fix: timelapse popup flicker, scroll-row overlap, status text clip - #681
Open
SukiSunYuhang wants to merge 1 commit into
Open
fix: timelapse popup flicker, scroll-row overlap, status text clip#681SukiSunYuhang wants to merge 1 commit into
SukiSunYuhang wants to merge 1 commit into
Conversation
- SetDoubleBuffered on dialog/scrolled-panel/rows for flicker-free repaint, replacing empty EVT_ERASE_BACKGROUND which left row backgrounds uncleared and caused rows to visually overlap when scrolling the list - set_status_text: Layout() before Refresh() so the label window grows to fit longer text; it previously kept the old narrower width and clipped (e.g. "Device disconnected." rendered as "Device" or blank) - set_state: full Refresh() instead of Refresh(false) for a complete repaint - add_tasks: wrap batch row creation in wxWindowUpdateLocker to avoid per-row repaint flicker when adding 30+ files at once
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes three regressions in the timelapse download popup (
TimelapseDownloadPopup) that appeared after the earlier anti-flicker work.1. Rows overlapped when scrolling the list
Suppressing
wxEVT_ERASE_BACKGROUNDon each row stopped the row from clearing its background, so on scroll old pixels persisted and rows visually stacked. Replaced withSetDoubleBuffered(true)on the dialog, the scrolled task panel, and each row — flicker-free and scroll-correct.2. Status text was clipped (
"Device disconnected."→"Device"/ blank)set_status_text(the path used bymark_task_errorfor failure reasons) only calledSetLabel+Refresh(), neverLayout().Label(wxStaticText) updates only its best size onSetLabel; the actual window width is recomputed by the sizer onLayout(). So the label kept its old narrower width and longer text clipped to it — inconsistently per row. Fixed by callingLayout()beforeRefresh().3. Flicker on cancel / batch add
set_state: fullRefresh()instead ofRefresh(false).add_tasks: wrapped batch row creation inwxWindowUpdateLockerfor 30+ file lists.