Comments (4)
This would take a lot more work and be more controversial, but it would allow for seamless integration with zbus.
zbus is a really poor argument to all of that, since it's the most complicated and bizarre library I've ever used. But generally allowing inserting sources into winit's event loop is a desired solution.
I'd also say that winit should be the one controlling the loop on all the platforms in one way or another, thus it should allow registration of sources on all of them. Otherwise it should be left to a specific backend.
from winit.
Unfortunately for what we want to do here, zbus doesn't let you get a file descriptor for the connection and drive the I/O yourself; it can only use async-io or tokio. But I've come to appreciate the calloop style of event handling and async I/O in Rust, where the application controls the event loop and maintains sole ownership of mutable state. So ideally I'd like a pure-Rust D-Bus implementation that integrates easily with calloop, without necessarily being coupled to it, just as wayland-rs isn't tightly coupled to calloop. But that would be too much of a distraction from my current work. Anyway, I think winit's support for FD event sources should be designed such that it would work well with such a D-Bus implementation.
from winit.
The current state of winit allows you to plug its fd into your own event loop and poll it on demand, however I'd also like to have some kind of executor eventually, so you can plug things into winit itself.
from winit.
Yes, plugging things into winit is what I'd prefer, because that way AccessKit could handle D-Bus events on the main thread, possibly with access to the same mutable application state as the regular winit event handler, without requiring the application to replace its event loop.
from winit.
Related Issues (20)
- window example crash on x11 HOT 2
- Set the cursor to be inherited or any other global value HOT 3
- Not receiving `RedrawRequested` events for all windows that `.request_redraw()` HOT 2
- Minimal window example HOT 2
- Web: Setting `CursorIcon::Default` should remove `cursor` `style`
- Android - wrong physical size
- Customize titlebar
- Cursor icons other than standard pointer stopped showing up on wayland HOT 2
- winit 0.30 panics on exit on macOS HOT 1
- Custom cursor (from_rgba) set in response to non-CursorMoved event leads to "already borrowed" panic when resizing HOT 1
- Reintroduce ability to query use of X11 or Wayland as backend on raw `EventLoop` HOT 1
- SSH X11 forwarding seemed to be unsupported HOT 2
- Window does not close under specific conditions.
- MacOS scaled resolution possibly increases memory usage
- Application panics when reading `Window::inner_size` after X server has terminated (e.g.: on user log-out)
- Rapid cursor movement causes frame loss HOT 3
- Semantics of getters/setters and events? HOT 4
- Keys leak through on window focus change (alt+tab) HOT 2
- Error handling on `ApplicationHandler` HOT 7
- Possible solution to keep created surface valid to user
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 winit.