revery-ui / revery

:zap: Native, high-performance, cross-platform desktop apps - built with Reason!
https://www.outrunlabs.com/revery/
MIT License
8.06k stars 196 forks source link

feat(native): add Gtk APIs for windows/widgets #982

Closed zbaylin closed 4 years ago

zbaylin commented 4 years ago

This should be a better version of #978. This uses Gtk's poll -> flush mechanism rather than using their event loop.

Unfortunately we can't make the Gtk window part of the window struct on Linux it seems, since the Window creation requires some initialization that isn't done by the point at which we create the window, leading to a segfault. In order to try to fix this I made a Hashtbl that maps Sdl windows to Gtk widgets so we don't end up with a bunch of duplicate Gtk widgets in memory.

github-actions[bot] commented 4 years ago

I have updated your lock dirs and formatted the code. Please @zbaylin pull the last commit before pushing any more changes.

bryphe commented 4 years ago

Change looks good to me (pending resolving Glenn's feedback).

Can you please test and verify Onivim 2 builds/runs with the latest changes?

zbaylin commented 4 years ago

@bryphe sure! Will do.

github-actions[bot] commented 4 years ago

I have updated your lock dirs and formatted the code. Please @zbaylin pull the last commit before pushing any more changes.

zbaylin commented 4 years ago

@bryphe sorry for the delay, I've been busy moving into my new apartment. I just tested with Oni and it works, I just had to resolve @opam/base to v0.14.0.

zbaylin commented 4 years ago

/azp run

azure-pipelines[bot] commented 4 years ago
Azure Pipelines successfully started running 1 pipeline(s).