summaryrefslogtreecommitdiffstats
path: root/widget
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--widget/src/button.rs9
-rw-r--r--widget/src/checkbox.rs12
-rw-r--r--widget/src/lazy/component.rs19
-rw-r--r--widget/src/overlay/menu.rs14
-rw-r--r--widget/src/pick_list.rs12
-rw-r--r--widget/src/radio.rs12
-rw-r--r--widget/src/scrollable.rs2
-rw-r--r--widget/src/slider.rs9
-rw-r--r--widget/src/text_editor.rs6
-rw-r--r--widget/src/text_input.rs50
-rw-r--r--widget/src/toggler.rs12
11 files changed, 67 insertions, 90 deletions
diff --git a/widget/src/button.rs b/widget/src/button.rs
index 5850cea0..46fd0e17 100644
--- a/widget/src/button.rs
+++ b/widget/src/button.rs
@@ -366,13 +366,8 @@ where
if let Event::Window(window::Event::RedrawRequested(_now)) = event {
self.status = Some(current_status);
- } else {
- match self.status {
- Some(status) if status != current_status => {
- shell.request_redraw(window::RedrawRequest::NextFrame);
- }
- _ => {}
- }
+ } else if self.status.is_some_and(|status| status != current_status) {
+ shell.request_redraw();
}
update_status
diff --git a/widget/src/checkbox.rs b/widget/src/checkbox.rs
index e5dea3cc..6c5d7d6b 100644
--- a/widget/src/checkbox.rs
+++ b/widget/src/checkbox.rs
@@ -345,13 +345,11 @@ where
if let Event::Window(window::Event::RedrawRequested(_now)) = event {
self.last_status = Some(current_status);
- } else {
- match self.last_status {
- Some(status) if status != current_status => {
- shell.request_redraw(window::RedrawRequest::NextFrame);
- }
- _ => {}
- }
+ } else if self
+ .last_status
+ .is_some_and(|status| status != current_status)
+ {
+ shell.request_redraw();
}
event::Status::Ignored
diff --git a/widget/src/lazy/component.rs b/widget/src/lazy/component.rs
index c7bc1264..e45c24ac 100644
--- a/widget/src/lazy/component.rs
+++ b/widget/src/lazy/component.rs
@@ -7,6 +7,7 @@ use crate::core::overlay;
use crate::core::renderer;
use crate::core::widget;
use crate::core::widget::tree::{self, Tree};
+use crate::core::window;
use crate::core::{
self, Clipboard, Element, Length, Point, Rectangle, Shell, Size, Vector,
Widget,
@@ -342,7 +343,14 @@ where
local_shell.revalidate_layout(|| shell.invalidate_layout());
if let Some(redraw_request) = local_shell.redraw_request() {
- shell.request_redraw(redraw_request);
+ match redraw_request {
+ window::RedrawRequest::NextFrame => {
+ shell.request_redraw();
+ }
+ window::RedrawRequest::At(at) => {
+ shell.request_redraw_at(at);
+ }
+ }
}
if !local_messages.is_empty() {
@@ -620,7 +628,14 @@ where
local_shell.revalidate_layout(|| shell.invalidate_layout());
if let Some(redraw_request) = local_shell.redraw_request() {
- shell.request_redraw(redraw_request);
+ match redraw_request {
+ window::RedrawRequest::NextFrame => {
+ shell.request_redraw();
+ }
+ window::RedrawRequest::At(at) => {
+ shell.request_redraw_at(at);
+ }
+ }
}
if !local_messages.is_empty() {
diff --git a/widget/src/overlay/menu.rs b/widget/src/overlay/menu.rs
index e79bd3da..c1a0a5d8 100644
--- a/widget/src/overlay/menu.rs
+++ b/widget/src/overlay/menu.rs
@@ -435,9 +435,7 @@ where
.publish(on_option_hovered(option.clone()));
}
- shell.request_redraw(
- window::RedrawRequest::NextFrame,
- );
+ shell.request_redraw();
}
}
@@ -472,14 +470,12 @@ where
let state = tree.state.downcast_mut::<ListState>();
- if state.is_hovered.is_some_and(|is_hovered| {
- is_hovered != cursor.is_over(layout.bounds())
- }) {
- shell.request_redraw(window::RedrawRequest::NextFrame);
- }
-
if let Event::Window(window::Event::RedrawRequested(_now)) = event {
state.is_hovered = Some(cursor.is_over(layout.bounds()));
+ } else if state.is_hovered.is_some_and(|is_hovered| {
+ is_hovered != cursor.is_over(layout.bounds())
+ }) {
+ shell.request_redraw();
}
event::Status::Ignored
diff --git a/widget/src/pick_list.rs b/widget/src/pick_list.rs
index ec1c054f..9c9ba9e9 100644
--- a/widget/src/pick_list.rs
+++ b/widget/src/pick_list.rs
@@ -535,13 +535,11 @@ where
if let Event::Window(window::Event::RedrawRequested(_now)) = event {
self.last_status = Some(status);
- } else {
- match self.last_status {
- Some(last_status) if last_status != status => {
- shell.request_redraw(window::RedrawRequest::NextFrame);
- }
- _ => {}
- }
+ } else if self
+ .last_status
+ .is_some_and(|last_status| last_status != status)
+ {
+ shell.request_redraw();
}
event_status
diff --git a/widget/src/radio.rs b/widget/src/radio.rs
index 714d4fb5..ed821532 100644
--- a/widget/src/radio.rs
+++ b/widget/src/radio.rs
@@ -360,13 +360,11 @@ where
if let Event::Window(window::Event::RedrawRequested(_now)) = event {
self.last_status = Some(current_status);
- } else {
- match self.last_status {
- Some(status) if status != current_status => {
- shell.request_redraw(window::RedrawRequest::NextFrame);
- }
- _ => {}
- }
+ } else if self
+ .last_status
+ .is_some_and(|last_status| last_status != current_status)
+ {
+ shell.request_redraw();
}
event::Status::Ignored
diff --git a/widget/src/scrollable.rs b/widget/src/scrollable.rs
index c4350547..abad6ea6 100644
--- a/widget/src/scrollable.rs
+++ b/widget/src/scrollable.rs
@@ -931,7 +931,7 @@ where
.last_status
.is_some_and(|last_status| last_status != status)
{
- shell.request_redraw(window::RedrawRequest::NextFrame);
+ shell.request_redraw();
}
event_status
diff --git a/widget/src/slider.rs b/widget/src/slider.rs
index 25f0d85f..dbdb5f07 100644
--- a/widget/src/slider.rs
+++ b/widget/src/slider.rs
@@ -432,13 +432,8 @@ where
if let Event::Window(window::Event::RedrawRequested(_now)) = event {
self.status = Some(current_status);
- } else {
- match self.status {
- Some(status) if status != current_status => {
- shell.request_redraw(window::RedrawRequest::NextFrame);
- }
- _ => {}
- }
+ } else if self.status.is_some_and(|status| status != current_status) {
+ shell.request_redraw();
}
update_status
diff --git a/widget/src/text_editor.rs b/widget/src/text_editor.rs
index a298252a..3bb45494 100644
--- a/widget/src/text_editor.rs
+++ b/widget/src/text_editor.rs
@@ -624,7 +624,7 @@ where
focus.is_window_focused = true;
focus.updated_at = Instant::now();
- shell.request_redraw(window::RedrawRequest::NextFrame);
+ shell.request_redraw();
}
}
Event::Window(window::Event::RedrawRequested(now)) => {
@@ -637,11 +637,11 @@ where
- (now - focus.updated_at).as_millis()
% Focus::CURSOR_BLINK_INTERVAL_MILLIS;
- shell.request_redraw(window::RedrawRequest::At(
+ shell.request_redraw_at(
now + Duration::from_millis(
millis_until_redraw as u64,
),
- ));
+ );
}
}
}
diff --git a/widget/src/text_input.rs b/widget/src/text_input.rs
index c18009a2..8fa7889f 100644
--- a/widget/src/text_input.rs
+++ b/widget/src/text_input.rs
@@ -751,7 +751,7 @@ where
state.last_click = Some(click);
if cursor_before != state.cursor {
- shell.request_redraw(window::RedrawRequest::NextFrame);
+ shell.request_redraw();
}
return event::Status::Captured;
@@ -806,7 +806,7 @@ where
}
if selection_before != state.cursor.selection(&value) {
- shell.request_redraw(window::RedrawRequest::NextFrame);
+ shell.request_redraw();
}
return event::Status::Captured;
@@ -914,9 +914,7 @@ where
if cursor_before != state.cursor {
focus.updated_at = Instant::now();
- shell.request_redraw(
- window::RedrawRequest::NextFrame,
- );
+ shell.request_redraw();
}
return event::Status::Captured;
@@ -1037,9 +1035,7 @@ where
if cursor_before != state.cursor {
focus.updated_at = Instant::now();
- shell.request_redraw(
- window::RedrawRequest::NextFrame,
- );
+ shell.request_redraw();
}
return event::Status::Captured;
@@ -1059,9 +1055,7 @@ where
if cursor_before != state.cursor {
focus.updated_at = Instant::now();
- shell.request_redraw(
- window::RedrawRequest::NextFrame,
- );
+ shell.request_redraw();
}
return event::Status::Captured;
@@ -1083,9 +1077,7 @@ where
if cursor_before != state.cursor {
focus.updated_at = Instant::now();
- shell.request_redraw(
- window::RedrawRequest::NextFrame,
- );
+ shell.request_redraw();
}
return event::Status::Captured;
@@ -1107,9 +1099,7 @@ where
if cursor_before != state.cursor {
focus.updated_at = Instant::now();
- shell.request_redraw(
- window::RedrawRequest::NextFrame,
- );
+ shell.request_redraw();
}
return event::Status::Captured;
@@ -1136,9 +1126,7 @@ where
if cursor_before != state.cursor {
focus.updated_at = Instant::now();
- shell.request_redraw(
- window::RedrawRequest::NextFrame,
- );
+ shell.request_redraw();
}
return event::Status::Captured;
@@ -1165,9 +1153,7 @@ where
if cursor_before != state.cursor {
focus.updated_at = Instant::now();
- shell.request_redraw(
- window::RedrawRequest::NextFrame,
- );
+ shell.request_redraw();
}
return event::Status::Captured;
@@ -1218,7 +1204,7 @@ where
focus.is_window_focused = true;
focus.updated_at = Instant::now();
- shell.request_redraw(window::RedrawRequest::NextFrame);
+ shell.request_redraw();
}
}
Event::Window(window::Event::RedrawRequested(now)) => {
@@ -1237,11 +1223,11 @@ where
- (*now - focus.updated_at).as_millis()
% CURSOR_BLINK_INTERVAL_MILLIS;
- shell.request_redraw(window::RedrawRequest::At(
+ shell.request_redraw_at(
*now + Duration::from_millis(
millis_until_redraw as u64,
),
- ));
+ );
}
}
}
@@ -1265,13 +1251,11 @@ where
if let Event::Window(window::Event::RedrawRequested(_now)) = event {
self.last_status = Some(status);
- } else {
- match self.last_status {
- Some(last_status) if status != last_status => {
- shell.request_redraw(window::RedrawRequest::NextFrame);
- }
- _ => {}
- }
+ } else if self
+ .last_status
+ .is_some_and(|last_status| status != last_status)
+ {
+ shell.request_redraw();
}
event::Status::Ignored
diff --git a/widget/src/toggler.rs b/widget/src/toggler.rs
index 13244e34..2553a7e4 100644
--- a/widget/src/toggler.rs
+++ b/widget/src/toggler.rs
@@ -352,13 +352,11 @@ where
if let Event::Window(window::Event::RedrawRequested(_now)) = event {
self.last_status = Some(current_status);
- } else {
- match self.last_status {
- Some(status) if status != current_status => {
- shell.request_redraw(window::RedrawRequest::NextFrame);
- }
- _ => {}
- }
+ } else if self
+ .last_status
+ .is_some_and(|status| status != current_status)
+ {
+ shell.request_redraw();
}
event_status