mirror of
https://github.com/donovanglover/nix-config.git
synced 2024-11-25 01:33:17 +01:00
overlays(kitty): Patch wlroots copying bug
This fixes an issue where copying text would break until changing
workspaces and consequently windows.
This *was* fixed in 0.32.0 as a result of [1], however kitty 0.33.1 with
the recent fontconfig workaround patch[2] ends up showing CJK characters
with a very thin weight, causing them to be inconsistent relative to the
surrounding text and more difficult to read.
[1]: https://github.com/kovidgoyal/kitty/issues/6890
[2]: d2c21ee297
This commit is contained in:
parent
3374dde006
commit
491e0aca38
@ -16,6 +16,10 @@
|
||||
inherit src version;
|
||||
vendorHash = "sha256-OyZAWefSIiLQO0icxMIHWH3BKgNas8HIxLcse/qWKcU=";
|
||||
}).goModules;
|
||||
|
||||
patches = (oldAttrs.patches or [ ]) ++ [
|
||||
../patches/kitty-wlroots-copying-fix.patch
|
||||
];
|
||||
});
|
||||
})
|
||||
];
|
||||
|
55
patches/kitty-wlroots-copying-fix.patch
Normal file
55
patches/kitty-wlroots-copying-fix.patch
Normal file
@ -0,0 +1,55 @@
|
||||
From 69a5c7e3b232ab050a6eb1a2b40c235f5a0d9ccf Mon Sep 17 00:00:00 2001
|
||||
From: Kovid Goyal <kovid@kovidgoyal.net>
|
||||
Date: Fri, 8 Dec 2023 08:38:08 +0530
|
||||
Subject: [PATCH] Wayland: Fix a regression in the previous release that broke
|
||||
copying to clipboard under wl-roots based compositors in some circumstances
|
||||
|
||||
As is usual in Wayland land, utter chaos. Divergent implementations,
|
||||
incorrect interpretations of the spec, bla bla.
|
||||
|
||||
Fixes #6890
|
||||
---
|
||||
docs/changelog.rst | 3 +++
|
||||
glfw/wl_window.c | 14 ++++++++++++--
|
||||
2 files changed, 15 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/docs/changelog.rst b/docs/changelog.rst
|
||||
index 2a8295c5aef..0193b12c4c8 100644
|
||||
--- a/docs/changelog.rst
|
||||
+++ b/docs/changelog.rst
|
||||
@@ -54,6 +54,9 @@ Detailed list of changes
|
||||
|
||||
- A new action :ac:`send_key` to simplify mapping key presses to other keys without needing :ac:`send_text`
|
||||
|
||||
+- Wayland: Fix a regression in the previous release that broke copying to clipboard under wl-roots based compositors in some circumstances
|
||||
+ (:iss:`6890`)
|
||||
+
|
||||
|
||||
0.31.0 [2023-11-08]
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
diff --git a/glfw/wl_window.c b/glfw/wl_window.c
|
||||
index 0dcc868e3c9..b64a29ca62d 100644
|
||||
--- a/glfw/wl_window.c
|
||||
+++ b/glfw/wl_window.c
|
||||
@@ -2034,9 +2034,19 @@ _glfwPlatformSetClipboard(GLFWClipboardType t) {
|
||||
f(data_source, cd->mime_types[i]);
|
||||
}
|
||||
if (t == GLFW_CLIPBOARD) {
|
||||
- // According to the Wayland spec only the application that has keyboard focus can set the clipboard.
|
||||
+ // According to some interpretations of the Wayland spec only the application that has keyboard focus can set the clipboard.
|
||||
// Hurray for the Wayland nanny state!
|
||||
- wl_data_device_set_selection(_glfw.wl.dataDevice, _glfw.wl.dataSourceForClipboard, _glfw.wl.keyboard_enter_serial);
|
||||
+ //
|
||||
+ // However in wl-roots based compositors, using the serial from the keyboard enter event doesn't work. No clue what
|
||||
+ // the correct serial to use here is. Given this Wayland there probably isn't one. What a joke.
|
||||
+ // Bug report: https://github.com/kovidgoyal/kitty/issues/6890
|
||||
+ // Ironically one of the contributors to wl_roots claims the keyboard enter serial is the correct one to use:
|
||||
+ // https://emersion.fr/blog/2020/wayland-clipboard-drag-and-drop/
|
||||
+ // The Wayland spec itself says "serial number of the event that triggered this request"
|
||||
+ // https://wayland.freedesktop.org/docs/html/apa.html#protocol-spec-wl_data_device
|
||||
+ // So who the fuck knows. Just use the latest received serial and ask anybody that uses Wayland
|
||||
+ // to get their head examined.
|
||||
+ wl_data_device_set_selection(_glfw.wl.dataDevice, _glfw.wl.dataSourceForClipboard, _glfw.wl.serial);
|
||||
} else {
|
||||
// According to the Wayland spec we can only set the primary selection in response to a pointer button event
|
||||
// Hurray for the Wayland nanny state!
|
Loading…
Reference in New Issue
Block a user