Skip to content
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

Refactor drawer #4230

Closed
wants to merge 89 commits into from
Closed

Refactor drawer #4230

wants to merge 89 commits into from

Conversation

elParaguayo
Copy link
Member

@elParaguayo elParaguayo commented Apr 10, 2023

An attempt to tidy up the Drawer objects.

@m-col this has not been rebased onto the wlroots 0.16 branch.

Draft for now so we can test etc.

Main change is to stop clear from writing to XCBSurface in x11 or ImageSurface in Wayland. Instead, everything is rendered to a single RecordingSurface and the backend then performs specific actions to render it to the window.

@elParaguayo
Copy link
Member Author

@m-col @jwijenbergh - I've done a very ugly job of rebasing this onto #3985. Could you test this in conjunction with this branch of qtile-extras (https://github.com/elParaguayo/qtile-extras/tree/refactor-drawer-decorations) and see if decorations work ok for you.

I'll do some more testing here.

tox.ini Outdated
PyGObject
pytest >= 6.2.1
types-python-dateutil
types-pytz
types-pkg_resources
commands =
<<<<<<< HEAD
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

leftovers from rebase

tox.ini Outdated
pip install -r requirements.txt pywayland>=0.4.14 xkbcommon>=0.3
pip install pywlroots>=0.16.1,<0.17.0
=======
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

leftovers from rebase

tox.ini Outdated
pip install pywlroots>=0.15.24,<0.16.0
>>>>>>> 2b68c3da (cairocffi 1.5.0 build changes)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

leftovers from rebase

m-col added 19 commits May 14, 2023 20:56
This starts work on transferring the wayland backend over to the scene
graph API. While this is a big change, it hands off more of the heavy
lifting (i.e. rendering, damage tracking, client configuring etc) to
wlroots, thus making our own maintainence easier (and improving runtime
performance too).

The changes in this commit add some of the initial setup and get XDG
shell clients working as expected. Internals, wallpapers, layer shell, and XWayland
are upcoming.
And also removes remaining damage-related code.

The scene tree is inspired by dwl's setup, where we have a sequence of
trees roughly corresponding to the layer shell's layers, plus more for
regular windows and drag icons etc.
m-col and others added 27 commits May 14, 2023 21:03
- nests all windows into new window tree, use subtree
  `Core.mid_window_tree` to parent regular window trees. This fixes an
  issue where drag icons were always under the pointer (by design) so
  scanning for nodes under the pointer picked it up instead of what was
  below, which should be recieving pointer motion events to respond to
  the drag icon.
- updates the scene graph diagram
- Changes pytests warning filter (-W flag) to only error upon warnings
  that arise within libqtile. If they arise within our deps then we
  shouldn't error out.
- Moves the warning filter config from the command line (in tox.ini) to
  the configuration in setup.cfg
- re-instate warning filter for py310, which was temporarily disables
  due to an error in pygobject. It seems to only affect -W error
  globally on all warnings
- migrates pytest config from setup.cfg to pyproject.toml per their docs
This method conflicts with `Core.remove_listener`
This lets docs get built by sphinx on systems without wayland system
dependencies.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants