about summary refs log tree commit diff
path: root/pkgs/tools/audio/pasystray
diff options
context:
space:
mode:
authorJaka Hudoklin <jaka@x-truder.net>2020-04-12 13:18:00 +0700
committerJaka Hudoklin <jaka@x-truder.net>2020-04-14 13:18:55 +0700
commitcf3b322a64367803a9d4adb385e5d2165bd1084a (patch)
tree6c9bc48814a1c390b9d6a5aaebb3c32b2781e472 /pkgs/tools/audio/pasystray
parentef8ea1e55629e65b2ab3609b332b221075e1aab1 (diff)
downloadnixlib-cf3b322a64367803a9d4adb385e5d2165bd1084a.tar
nixlib-cf3b322a64367803a9d4adb385e5d2165bd1084a.tar.gz
nixlib-cf3b322a64367803a9d4adb385e5d2165bd1084a.tar.bz2
nixlib-cf3b322a64367803a9d4adb385e5d2165bd1084a.tar.lz
nixlib-cf3b322a64367803a9d4adb385e5d2165bd1084a.tar.xz
nixlib-cf3b322a64367803a9d4adb385e5d2165bd1084a.tar.zst
nixlib-cf3b322a64367803a9d4adb385e5d2165bd1084a.zip
pasystray: add patch to fix crash when running under wayland
Diffstat (limited to 'pkgs/tools/audio/pasystray')
-rw-r--r--pkgs/tools/audio/pasystray/default.nix5
-rw-r--r--pkgs/tools/audio/pasystray/fix-wayland.patch34
2 files changed, 39 insertions, 0 deletions
diff --git a/pkgs/tools/audio/pasystray/default.nix b/pkgs/tools/audio/pasystray/default.nix
index 648dcad42bad..8b0580ba98c4 100644
--- a/pkgs/tools/audio/pasystray/default.nix
+++ b/pkgs/tools/audio/pasystray/default.nix
@@ -14,6 +14,11 @@ stdenv.mkDerivation rec {
     sha256 = "0xx1bm9kimgq11a359ikabdndqg5q54pn1d1dyyjnrj0s41168fk";
   };
 
+  patches = [
+    # https://github.com/christophgysin/pasystray/issues/90#issuecomment-306190701
+    ./fix-wayland.patch
+  ];
+
   nativeBuildInputs = [ pkgconfig autoreconfHook wrapGAppsHook ];
   buildInputs = [
     gnome3.adwaita-icon-theme
diff --git a/pkgs/tools/audio/pasystray/fix-wayland.patch b/pkgs/tools/audio/pasystray/fix-wayland.patch
new file mode 100644
index 000000000000..17c4e2e6d658
--- /dev/null
+++ b/pkgs/tools/audio/pasystray/fix-wayland.patch
@@ -0,0 +1,34 @@
+--- a/src/x11-property.c
++++ b/src/x11-property.c
+@@ -43,11 +43,15 @@ static Window window;
+ void x11_property_init()
+ {
+     display = gdk_x11_get_default_xdisplay();
++    if (!GDK_IS_X11_DISPLAY(display)) return;
++    Screen* scr = ScreenOfDisplay(display, 0);
++
+     window = RootWindow(display, 0);
+ }
+ 
+ void x11_property_set(const char* key, const char* value)
+ {
++    if (!GDK_IS_X11_DISPLAY(display)) return;
+     g_debug("[x11-property] setting '%s' to '%s'", key, value);
+ 
+     Atom atom = XInternAtom(display, key, False);
+@@ -57,6 +61,7 @@ void x11_property_set(const char* key, c
+ 
+ void x11_property_del(const char* key)
+ {
++    if (!GDK_IS_X11_DISPLAY(display)) return;
+     g_debug("[x11-property] deleting '%s'", key);
+ 
+     Atom atom = XInternAtom(display, key, False);
+@@ -65,6 +70,7 @@ void x11_property_del(const char* key)
+ 
+ char* x11_property_get(const char* key)
+ {
++    if (!GDK_IS_X11_DISPLAY(display)) return NULL;
+     Atom property = XInternAtom(display, key, False);
+     Atom actual_type;
+     int actual_format;