This was being used to pass the X11 atoms all over the place, but I
realize this is no longer necessary - we can just pass them directly to
our RealConnection when creating it.
Seems some applications don't expect their popups to be unmapped without
their consent, so they make act strangely, but at least it doesn't
crash.
Fixes#117
Before, every time the clipboard selection changed, satellite would copy
everything on it and force itself to be the clipboard owner, regardless
of X11 or Wayland. Now, satellite is only the owner when the clipboard
owner comes from Wayland, and uses the XFixes extension to watch for
changes in clipboard ownership X11 side. Satellite also now avoids
copying all of the clipboard contents into memory every time, instead
copying directly on request. This is a pretty big change, but should
hopefully help make the clipboard more stable.
Also added some misc test cleanup/using helper functions where possible.
Using the XFixes extension may also end up being necessary for
implementing drag and drop, so it's good the infrastructure is there
now.
* Refactor flake for overridability, conditional service install, version formatting
* Disable default cargo features for the flake package
Co-authored-by: sodiboo <37938646+sodiboo@users.noreply.github.com>
* Replace deprecated `--replace` with `--replace-fail` in the flake package
Co-authored-by: sodiboo <37938646+sodiboo@users.noreply.github.com>
* Remove `unstable` from flake package version
Co-authored-by: sodiboo <37938646+sodiboo@users.noreply.github.com>
* Refactor flake to enable dependency overridability
* Pass lib explicitly in flake package
* Fix incorrect package path in flake package dependency
* Replace makeWrapper with makeBinaryWrapper
* Enhance build by separating substitution, service install, and wrapping
* Remove redundant arguments from package call
---------
Co-authored-by: sodiboo <37938646+sodiboo@users.noreply.github.com>
The ICCCM claims this is a "required" target for selection owners,
however several GTK clients (zenity, winecfg) don't seem to support it.
(So much for required.) Just manually grab all the supported targets
individually from the selection owner instead.
Fix for #50
Wine windows had WM_HINTS.input set to False, and expected use of the
WM_TAKE_FOCUS protocol, but Wayland input is much more absolute, so this
protocol is useless to us. Always focusing windows seems to be fine, so
just do that.
Should fix#35.