Comments (16)
I had a quick look and there is nothing obvious unfortunately so I will have to dig into this further. I will work through old states of the code and see if I can find what broke Windows :(
from fyne.
It looks like you’re missing the vector graphics module in efl - which version did you manage to install?
from fyne.
The buttons not working issue is a new one on me though! What version of Windows is this?
from fyne.
This was run on Windows 10 Home 1809 - Build 17763.1
And I installed the latest EFL, according to Win-Builds.
from fyne.
Oh dear, I had not realised how far behind winbuilds was. EFL current release is 1.21.1 and Fyne requires 1.19 for the vector graphics to appear. I guess we will have to push forward with the custom build of EFL to bootstrap Fyne with all the features.
I will try to replicate the buttons issues locally. It did work earlier but there may be a strange recent issue - I noticed that macOS does not always register presses correctly either :(
If you are interested in investigating further then adding some logging to the mouse down callbacks within desktop/canvas.go may be a help.
Apologies!
from fyne.
I am not really sure how to update my EFL installation, msys's pacman doesn't know of efl either.
Anyway, I will try to figure out the window opening issue for now.
from fyne.
Right so I added some basic logging to console, the issue wasn't button down event.
Rather it seems to be something with C.ecore_thread_main_loop_begin:
$ go run main.go
2018/10/18 12:27:54 create window Examples
2018/10/18 12:27:54 engine software_gdi
2018/10/18 12:27:54 main loop begin
2018/10/18 12:27:54 window init
2018/10/18 12:27:54 canvas thingy
2018/10/18 12:27:54 main loop end
2018/10/18 12:27:54 window &{0x426be30 0xc0000c8100 false false false <nil>}
2018/10/18 12:27:54 callbacks done...
2018/10/18 12:27:59 Form clicked...
2018/10/18 12:27:59 create window Form
2018/10/18 12:27:59 engine software_gdi
main loop begin
should have followed after engine line but it doesn't and so that function never returns, problematic line being 263 in desktop/window.go
, that is of course not the problematic line, something, somewhere, is never releasing the lock (which I am guessing is the purpose of C.ecore_thread_main_loop_end
call), I tried looking at other references of this C call but none look problematic either, so I am lost as to why this is happening... but I bet this is tied to EFL version being old af.
from fyne.
Yes I think you’re on to something there. Can you possibly print the return of the main_loop_begin call and also the result of C.eina_main_loop_is? That should tell us more about the context. I’d guess that either there is a weird behaviour with those methods or that the threading model changed and so we should be using a different arrangement of safety checks.
from fyne.
Seems like for the first window main_loop_is reports 1, anything after that returns 0.
2018/10/18 18:07:57 create window Examples
2018/10/18 18:07:57 engine software_gdi
2018/10/18 18:07:57 main_loop_is 1
2018/10/18 18:07:57 main loop begin 1
2018/10/18 18:07:57 window init
2018/10/18 18:07:57 canvas thingy
2018/10/18 18:07:57 main loop end
2018/10/18 18:07:57 window &{0xdfbe30 0xc0000c8100 false false false <nil>}
2018/10/18 18:07:57 callbacks done...
2018/10/18 18:08:13 Form clicked...
2018/10/18 18:08:13 create window Form
2018/10/18 18:08:13 engine software_gdi
2018/10/18 18:08:13 main_loop_is 0
Though I am not sure the order I am making the calls in is correct...
func CreateWindowWithEngine(engine string) fyne.Window {
// ...
log.Println("main_loop_is", C.eina_main_loop_is())
log.Println("main loop begin", C.ecore_thread_main_loop_begin())
// ...
from fyne.
It's worth noting main_loop_begin only returns for the first window, and never afterwards.
from fyne.
Thanks for all of that.
I have pushed an update to Fyne that refactors this a little to only request a thread change if needed.
Can you please update and let me know how, if at all, this changes things?
It could fix it - or could make it worse...
from fyne.
Well I tried the latest changes and all that did for me is themes stopped working, ie. Light/Dark doesn't do anything. I did put log message into the function to check if it was being called and it does indeed log but the settings either don't re-apply or don't change, not sure which. Nothing else seems to have changed.
from fyne.
Ok thanks. I guess that’s at least consistent..? I will get my Windows machine updated this weekend and see if I can replicate.
from fyne.
While unrelated now to this issue, I do still wonder how one would go about getting latest or at least minimal required version of EFL for windows now.
from fyne.
This threading issue is now fixed :)
from fyne.
Yep, working for me now, thanks!
from fyne.
Related Issues (20)
- Support Software Rendering for X11 by allowing to disable GLX HOT 13
- Issue with SetSystemTrayIcon when using jpg format
- Licence has self conflicting wording, possible typo HOT 3
- What means MinSize() of Entry? HOT 5
- Is there a separate window.Run function HOT 2
- Production app running a test app when importing Appearance Screen HOT 4
- SetIcon don't work HOT 1
- App freezes when rapidly modifying content of container HOT 5
- fyne package does not work with main package not in the current directory HOT 2
- Android packaging fails: could not determine kind of name for C.ALooper_pollAll HOT 6
- binding.Untyped crashes when set to nil HOT 1
- AppTab does not display blue indicator line if you create it empty and then Append items to it later. HOT 1
- Automatically remove focus from a widget that is no longer in the object tree HOT 6
- Internal support for custom colored fyne.Resource theming. HOT 10
- widget not have Date Picker HOT 2
- blured scaled zoom gui HOT 1
- Form layout allocates a new 2d slice on each MinSize and Layout call HOT 3
- Add an API to get the "min" width of text widgets with wrapping that would be needed to show the text without wrapping HOT 6
- App Crash on IOS Simulator HOT 3
- Add SizeName property to Hyperlink widget
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.