redox-os / orbtk

The Rust UI-Toolkit.
MIT License
3.78k stars 192 forks source link

Desktop animations not working while an orbtk application is open #454

Open Ayush1325 opened 2 years ago

Ayush1325 commented 2 years ago

Whenever I launch an orbtk application or any of the examples, my normal desktop applications seem to stop working. And everything is fine as soon as I close the application

Steps to reproduce the behavior:

  1. Run an orbtk example.
  2. Switch virtual desktop or open the menu.

Expected behavior

See my beautiful desktop animation.

System Information

Additional context

It seems that orbtk application somehow conflicts with the KDE compositor. There is no unusual CPU and GPU utilization, in fact, the application itself runs quite well, so I am not sure what the problem is. Can anyone else confirm or deny this issue?

adi-g15 commented 2 years ago

Yes, it stops transparency and animations (both tasks of the compositor ig) on my arch+KDE system too.

System Information

This is the screen recording of the same:

https://user-images.githubusercontent.com/37269665/132528241-a6df6e2a-a6b3-46b2-adf2-e71232f3a98e.mp4

adi-g15 commented 2 years ago

An Update on this: It works fine with Wayland

Plasma + Wayland

Ayush1325 commented 2 years ago

@adi-g15 Cool. Will just have to wait till Wayland starts working well with Nvidia.

XakepSDK commented 2 years ago

It disables compositor as if it was a game. This is handled by SDL2. I think OrbTk should tell SDL that app is not a game.

trickypr commented 2 years ago

It disables compositor as if it was a game. This is handled by SDL2. I think OrbTk should tell SDL that app is not a game.

It seems that SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR would have to be set to "0" using sdl2::hint::set. I suspect that this would have to be changed in orbclient on the Redox gitlab, so I am not able to create a merge request.

Also see this issue.

trickypr commented 2 years ago

As mentioned in #471, you can disable compositor blocking for development purposes, however this is not ideal for a production application:

Screenshot_20211227_184016