-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix!: Lazily activate Unix adapters #324
Conversation
d3c8d72
to
954faf9
Compare
I just did a first pass through the changes, and the biggest problem that I see is that the implementation of I know that doing a correct implementation of |
I wanted to get rid of it as well. I'll make the changes. |
Likewise in the C SDL example, we should drop |
954faf9
to
ecddbd7
Compare
What happens if there's no D-Bus session bus running? It looks to me like the program would crash, though I haven't yet verified this. While a full-featured desktop environment will always have a D-Bus session bus, some developers will want their GUI applications to run in a stripped-down environment without D-Bus, while also supporting accessibility for those who need it. So can we handle the lack of a session bus more gracefully? |
My assumption was that the session bus would indeed always be there. I'm not even sure if it exists a desktop environment that doesn't require D-Bus. I'll see what I can do though. |
I wonder if @federicomenaquintero and @zeenix would have time to review this PR, to ensure it's implementing AT-SPI correctly and making the best possible use of zbus and the async Rust ecosystem. They might notice things that aren't obvious to me. |
…tivating adapters
ecddbd7
to
c8bf388
Compare
@DataTriny Based on the results of your testing, I'm willing to go ahead and merge this without further review from Federico or Zeeshan. If any bugs or suboptimal implementations are found, those can be fixed later. I'm satisfied that this PR doesn't introduce any regression from what we already have. |
I'm terribly sorry but I just didn't have time. :( I did have a very quick look and nothing looked bad. |
@zeenix Thanks for giving it a quick look. |
Fixes #314
When a Unix adapter is created, we now start monitoring the D-Bus session bus for property change signals, which indicate if assistive technologies are currently running. If this becomes true, all currently registered adapters will be initialized. If for some reason the AT-SPI bus disappear, tree updates will still happen but nothing will be sent through D-Bus. If the AT-SPI bus is launched again, the connection will be re-established, the D-Bus object server will be populated and signals will be emitted like before.