Comments (3)
The color picker stores the color alongside with some caches in the overlay state and those don't react to color changes from the outside
Here's a dirty fix which is recreating the overlay state when show_picker
is false, the problem is that show_picker
will be false for most of the time, and Widget::overlay()
is called on every update and draw, multiple times even, meaning that it's a waste of computation to update the overlay state this often
A better solution would be to update the overlay state exactly when show_picker
changes, like maybe on click or on hover, but this is a limitation of the color picker that it hands the show_picker
flag over to the lib users, it has no idea when show_picker
will change and the lib users have no way to update the overlay state by themselves
fn overlay<'b>(
&'b mut self,
state: &'b mut Tree,
layout: Layout<'_>,
renderer: &Renderer<B, Theme>,
) -> Option<overlay::Element<'b, Message, Renderer<B, Theme>>> {
let picker_state: &mut State = state.state.downcast_mut();
if !self.show_picker {
// new lines begin
let overlay_state = super::overlay::color_picker::State::new(self.color);
picker_state.overlay_state = overlay_state;
// new lines end
return self
.underlay
.as_widget_mut()
.overlay(&mut state.children[0], layout, renderer);
}
...
from iced_aw.
yeah I do think there is a way to fix this but it probably requires an additional function to update internals to let the system know to redraw it. currently been pondering this.
from iced_aw.
The dirty fix works. Doesn't seem to impact performance too badly. Let me know if I can help with a more permanent fix.
from iced_aw.
Related Issues (20)
- Grid is not scrolled together with scrollable content HOT 1
- [BUG] `tabs` panic if placed at application root HOT 3
- Numberinput requires mouse hover for keyboard input HOT 4
- number_input, unable to type non-integer numbers. HOT 6
- Number input doesn't prevent overflow and underflow of the contained value
- Is there anyway to move add margins around a modal's overlay? HOT 3
- Dependabot update to 0.9.1 fails HOT 5
- font_loading example display error
- color_picker、date_picker cannot show button icon HOT 3
- Performance of rust-analyzer HOT 4
- Floating element is drawn higher than main menu HOT 2
- card head_text_color doesn't seem to change color HOT 3
- [Feature Request] Transition animations when switching between tabs HOT 1
- Why does Grid insert spaces between narrow columns to the right of a wider column? (and how to avoid) HOT 1
- Port iced_aw to iced 0.13 HOT 1
- Trouble implementing menus
- Trouble implementing menus HOT 2
- Picklist doesn't show options when embedded in a menu HOT 8
- Icons not properly rendered HOT 4
- Keyboard not working with NumberInput HOT 11
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from iced_aw.