Skip to content

add/remove break windows on display change#160

Draft
AllanChain wants to merge 2 commits into
mainfrom
display-change
Draft

add/remove break windows on display change#160
AllanChain wants to merge 2 commits into
mainfrom
display-change

Conversation

@AllanChain

Copy link
Copy Markdown
Owner

No description provided.

The progress bar was driven by a long-running QPropertyAnimation started
in the constructor, which was then scrubbed via setCurrentTime() in
setTime(). This design was fragile: setCurrentTime() does not update the
animated property when the animation is Stopped, and the animation stops
when it reaches its end. During initial break window creation,
remainingTime defaulted to 0, so setTime(0, ...) pushed the animation to
its end, permanently freezing the progress bar at 0 (invisible with
transparent background). Hot-plugged displays worked only because
setTime() was called with a real remaining time while the animation was
still running.

Redesign setTime() as the single source of truth: each call starts a
short 1-second interpolating animation from the bar's current value to
the new target, giving smooth sub-second motion without long-running
state that can desync. Also initialize remainingTime to the full break
duration in create() so freshly created windows don't get setTime(0)
before the real time is set.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant