diff options
| author | 2024-04-05 23:59:21 +0200 | |
|---|---|---|
| committer | 2024-04-05 23:59:21 +0200 | |
| commit | 6d3e1d835e1688fbc58622a03a784ed25ed3f0e1 (patch) | |
| tree | b1a14b0ec7b2da4368d5c98850fe9e9eebc5490a /widget | |
| parent | 4a356cfc16f3b45d64826732009d9feeac016b28 (diff) | |
| download | iced-6d3e1d835e1688fbc58622a03a784ed25ed3f0e1.tar.gz iced-6d3e1d835e1688fbc58622a03a784ed25ed3f0e1.tar.bz2 iced-6d3e1d835e1688fbc58622a03a784ed25ed3f0e1.zip | |
Decouple caching from layering and simplify everything
Diffstat (limited to '')
| -rw-r--r-- | widget/src/text_input.rs | 9 | 
1 files changed, 5 insertions, 4 deletions
| diff --git a/widget/src/text_input.rs b/widget/src/text_input.rs index 8cfb0408..05dd87b1 100644 --- a/widget/src/text_input.rs +++ b/widget/src/text_input.rs @@ -368,7 +368,7 @@ where          let text = value.to_string(); -        let (cursor, offset) = if let Some(focus) = state +        let (cursor, offset, is_selecting) = if let Some(focus) = state              .is_focused              .as_ref()              .filter(|focus| focus.is_window_focused) @@ -406,7 +406,7 @@ where                          None                      }; -                    (cursor, offset) +                    (cursor, offset, false)                  }                  cursor::State::Selection { start, end } => {                      let left = start.min(end); @@ -446,11 +446,12 @@ where                          } else {                              left_offset                          }, +                        true,                      )                  }              }          } else { -            (None, 0.0) +            (None, 0.0, false)          };          let draw = |renderer: &mut Renderer, viewport| { @@ -482,7 +483,7 @@ where              );          }; -        if cursor.is_some() { +        if is_selecting {              renderer                  .with_layer(text_bounds, |renderer| draw(renderer, *viewport));          } else { | 
