Say why a terminal and an egui toast do not fade
43bdbff7 point 3. quasi-webview draws Motion::Fade as of 0.81.0 and these
two remove at Dismiss, which is a decision rather than the unfinished half
of one. Written into both headers so the next reader finds the answer
instead of filing it again.
- Co-Authored-By
- Claude Opus 5 (1M context) <noreply@anthropic.com>
- Claude-Session
- https://claude.ai/code/session_0136sbU8F6i9WrcvA3wn4Lgk
2 files changed,
+30 insertions,
-0 deletions
| 13 |
13 |
|
//!
|
| 14 |
14 |
|
//! The spellings match the other two renderers' on purpose. A screen described
|
| 15 |
15 |
|
//! once and drawn three times should not read as three different facts.
|
|
16 |
+ |
//!
|
|
17 |
+ |
//! # A notice is removed at Dismiss here, with no leaving
|
|
18 |
+ |
//!
|
|
19 |
+ |
//! `43bdbff7`, and it is a decision rather than the unfinished half of one.
|
|
20 |
+ |
//! `makeover-timing` says `Intent::Dismiss` is how long a notice lives *before
|
|
21 |
+ |
//! it starts to leave* and that the leaving is `Motion::Fade`, and
|
|
22 |
+ |
//! quasi-webview draws that fade as of 0.81.0. This renderer does not, because
|
|
23 |
+ |
//! there is no transition to run: egui could fade a widget, and the toast is not
|
|
24 |
+ |
//! a widget this renderer owns a frame of. It is drawn and gone between two
|
|
25 |
+ |
//! paints, and an alpha ramp would be this renderer inventing a transition the
|
|
26 |
+ |
//! description did not ask any host for.
|
|
27 |
+ |
//!
|
|
28 |
+ |
//! Adding the duration anyway would keep the message on screen 300ms longer
|
|
29 |
+ |
//! and change nothing about how it goes, which is a longer message rather than
|
|
30 |
+ |
//! a softer one. Written down so the next reader finds the answer instead of
|
|
31 |
+ |
//! filing it again.
|
| 16 |
32 |
|
|
| 17 |
33 |
|
use std::time::{Duration, SystemTime};
|
| 18 |
34 |
|
|
| 9 |
9 |
|
//! drawn twice should not read as two different facts, and nothing about a
|
| 10 |
10 |
|
//! terminal makes `1:04:05` the wrong width -- the entitlement to differ is
|
| 11 |
11 |
|
//! kept for the renderer that needs it rather than spent because it exists.
|
|
12 |
+ |
//!
|
|
13 |
+ |
//! # A notice is removed at Dismiss here, with no leaving
|
|
14 |
+ |
//!
|
|
15 |
+ |
//! `43bdbff7`, and it is a decision rather than the unfinished half of one.
|
|
16 |
+ |
//! `makeover-timing` says `Intent::Dismiss` is how long a notice lives *before
|
|
17 |
+ |
//! it starts to leave* and that the leaving is `Motion::Fade`, and
|
|
18 |
+ |
//! quasi-webview draws that fade as of 0.81.0. This renderer does not, because
|
|
19 |
+ |
//! there is no transition to run: a terminal repaints, and a character cell is
|
|
20 |
+ |
//! either painted or it is not -- there is no opacity to move through.
|
|
21 |
+ |
//!
|
|
22 |
+ |
//! Adding the duration anyway would keep the message on screen 300ms longer
|
|
23 |
+ |
//! and change nothing about how it goes, which is a longer message rather than
|
|
24 |
+ |
//! a softer one. Written down so the next reader finds the answer instead of
|
|
25 |
+ |
//! filing it again.
|
| 12 |
26 |
|
|
| 13 |
27 |
|
use std::time::{Duration, SystemTime};
|
| 14 |
28 |
|
|