North Carolina
Freelance engineer working to make portable GUIs easy and pleasant.
I'm one of Gio's two maintainers, and I focus on making the text and widget APIs great.
Some other fun projects:
If you get value out of my work, please consider sponsoring me on Liberapay or GitHub.
I am also available for hire.
on ~eliasnaur/gio
~whereswaldon maintains gio-x, but I have to ask what you hope to achieve by moving the giowidgets calendar to gio-x? With Go modules, there's no difference between using gio-x vs other modules. Perhaps you want the calender to be maintained better? That's probably not going to happen unless the maintainer of giowidgets, or someone else, agree to co-maintain gio-x with Chris.
Comment by ~whereswaldon on ~eliasnaur/gio
REPORTED
RESOLVED FIXEDComment by ~whereswaldon on ~eliasnaur/gio
zjzhang referenced this ticket in commit adaace8.
Comment by ~whereswaldon on ~eliasnaur/gio
I'd certainly love to see packages enabling this, but I agree with ~eliasnaur that it seems unlikely to require anything Gio-specific, and as a result we should avoid locking it down into gio-specific packages.
Comment by ~whereswaldon on ~eliasnaur/gio
Thank you for the report. I do believe this is a bug in
richtext
, but I don't have the bandwidth to dig into that at the moment. I'm actually hoping to entirely replace therichtext
package in the near future with equivalent features in core Gio's text widgets (widget.Editor and widget.Selectable, maybe also widget.Label). Once core has the needed API, therichtext
package will be entirely deprecated. The implementation that works in tandem with the text shaper is much smarter and more efficient.I would accept a patch to fix this bug, but otherwise I'd recommend waiting for rich text support in core Gio.
Comment by ~whereswaldon on ~eliasnaur/gio
Done!
REPORTED
RESOLVED IMPLEMENTEDComment by ~whereswaldon on ~eliasnaur/gio
This will be resolved soon by the merge of https://github.com/gioui/gio/pull/145
Comment by ~whereswaldon on ~eliasnaur/gio
Your monitor isn't able to display 1000 frames per second, so it isn't realistically possible to display every timestamp. To display high-resolution time, you can modify your code to:
func run(window *app.Window) { var result string var ops op.Ops start := time.Now() for { switch e := window.Event().(type) { case app.DestroyEvent: return case app.FrameEvent: result = strconv.FormatInt(time.Now().Sub(start).Milliseconds(), 10) gtx := app.NewContext(&ops, e) layout.Center.Layout(gtx, material.Label(material.NewTheme(), 10, result).Layout) // Schedule another frame as soon as possible. gtx.Execute(op.InvalidateCmd{}) e.Frame(gtx.Ops) } } }This will draw frames as fast as the system supports, and will present a timestamp that is at most the render latency old.
Comment by ~whereswaldon on ~eliasnaur/gio
I will let you know what we see once we have a build using the updated version in the hands of real users. Since we can't reproduce this on demand, we have to wait until it crops up at scale. Certainly we see it pretty often right now, so there will be a sharp drop if it's really fixed.
Comment by ~whereswaldon on ~eliasnaur/gio
Thanks for the reports. I will try to investigate soon.