Comments (6)
I understand. No worries. Would you mind opening a ticket to track that so we don't forget?
from fyne.
Hmm, I'm actually not sure there's a way to avoid allocation without the possibly worse tradeoff of invoking MinSize() twice per cell instead of once per cell. (Remembering that MinSize can be user code for a custom widget that may not be efficient). It could possibly be turned into a 1D slice of row heights that is allocated. And might be a candidate for using a sync.Pool since there are instances where MinSize and Layout will be called very frequently (eg user resizing a window or split container)
from fyne.
Using a pool would likely be a big improvement given how often it can be called. I'd need to look at the code more but I feel like there should be a better way to refactor the algorithm to not need that table. Maybe use some modulo operation into the object slice?
from fyne.
It seems to me (and initial prints seem to show the same thing) that the table is just a slice of the two exact same widths with only the height potentially differing.
from fyne.
@dweymouth Did you intend to land the stack-allocated change code that you talked about?
from fyne.
Not for 2.5.0 at least, maybe I'll get around to it at some point but I am busy enough trying to push Supersonic toward a new release and closing out my draft/open PRs for Fyne 2.5
from fyne.
Related Issues (20)
- Error dialogs should be auto capitalized HOT 4
- Entry in HBox can't set size HOT 1
- AppTabs OnSelected callback fires too early HOT 1
- Buttons with ThemedResouce icons don't theme anymore HOT 1
- Incorrect window scaling in Gnome Boxes VMs HOT 11
- [Linux:Gnome] wrong window size after setting label.Wrapping value. HOT 1
- Domain entry special cases HOT 1
- Rework MinSize implementation for richtext with wrapping HOT 2
- Draggable widget's event listener areas don't move along when a label is present HOT 2
- Pannable canvas HOT 4
- Add support for changing device orientation using mobile simulator HOT 2
- Incorrect scaling on Steam Deck screen HOT 1
- Feature Request: Entry responding to mouse events HOT 3
- How do I delete the default "Quit" in the system tray? HOT 1
- FormLayout calls MinSize twice
- Possible deadlocks around BaseWidget.Theme access
- Memory leak in widget.Table due to constantly creating cells to cache.Renderer(impl) while table.Refresh() HOT 8
- [develop - android build] error while building to android
- Custom fonts use memory that is never freed HOT 1
- Sometimes the last list row that should be visible doesn't show
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 fyne.