Date: Friday, January 26, 2018 @ 20:12:16 Author: bgyorgy Revision: 287270
upgpkg: syncthing-gtk 1:0.9.2.7-4 Apply some fixes Added: syncthing-gtk/trunk/fix-icon.patch syncthing-gtk/trunk/fix-statusicon.patch syncthing-gtk/trunk/kde-statusicon.patch Modified: syncthing-gtk/trunk/PKGBUILD ----------------------+ PKGBUILD | 25 ++++++++++++++++++++++--- fix-icon.patch | 32 ++++++++++++++++++++++++++++++++ fix-statusicon.patch | 23 +++++++++++++++++++++++ kde-statusicon.patch | 44 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 121 insertions(+), 3 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2018-01-26 19:32:10 UTC (rev 287269) +++ PKGBUILD 2018-01-26 20:12:16 UTC (rev 287270) @@ -5,7 +5,7 @@ pkgname=syncthing-gtk pkgver=0.9.2.7 -pkgrel=3 +pkgrel=4 epoch=1 pkgdesc='GTK3 based GUI and notification area icon for Syncthing' arch=('any') @@ -17,9 +17,28 @@ optdepends=('python2-caja: file manager integration for Caja' 'python2-nautilus: file manager integration for Nautilus' 'nemo-python: file manager integration for Nemo') -source=($pkgname-$pkgver.tar.gz::https://github.com/syncthing/$pkgname/archive/v$pkgver.tar.gz) -sha256sums=('a500665ce2ebd04cf0f51e0b65690dddc258bc495a74b6311604fefe9f3e16ef') +source=($pkgname-$pkgver.tar.gz::https://github.com/syncthing/$pkgname/archive/v$pkgver.tar.gz + fix-statusicon.patch + kde-statusicon.patch + fix-icon.patch) +sha256sums=('a500665ce2ebd04cf0f51e0b65690dddc258bc495a74b6311604fefe9f3e16ef' + '5e9d4f89fb503d8761f435ebd03dbb126c0d5df8f00e4fd405fbdd8e5fb4a47c' + '109d8c970045e60251fc64865f05322b23a0995ee6725be02905941cb3a1ae0d' + 'cbfcfe6e2dabb9ac374f3bddbabbfe866529ea63d6e428c01e9c2eb88d7fb2c1') +prepare() { + cd $pkgname-$pkgver + + # Fix invisible tray icon + patch -Np1 -i ../fix-statusicon.patch + + # Enable Gtk.StatusIcon in KDE + patch -Np1 -i ../kde-statusicon.patch + + # Fix icon on about dialog + patch -Np1 -i ../fix-icon.patch +} + build() { cd $pkgname-$pkgver python2 setup.py build Added: fix-icon.patch =================================================================== --- fix-icon.patch (rev 0) +++ fix-icon.patch 2018-01-26 20:12:16 UTC (rev 287270) @@ -0,0 +1,32 @@ +From a798e2e41dc71951175749a6ac34a07a068871a1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ball=C3=B3=20Gy=C3=B6rgy?= <ballog...@gmail.com> +Date: Fri, 26 Jan 2018 20:53:23 +0100 +Subject: [PATCH] Fix icon on about dialog + +--- + about.glade | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/about.glade b/about.glade +index 85cad9d..d0d02ae 100644 +--- a/about.glade ++++ b/about.glade +@@ -5,7 +5,7 @@ + <object class="GtkDialog" id="dialog"> + <property name="can_focus">False</property> + <property name="title" translatable="yes">About Syncthing-GTK</property> +- <property name="icon">icons/st-gtk-logo.png</property> ++ <property name="icon_name">syncthing-gtk</property> + <property name="type_hint">dialog</property> + <signal name="response" handler="on_dialog_response" swapped="no"/> + <child internal-child="vbox"> +@@ -53,7 +53,8 @@ + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="margin_bottom">10</property> +- <property name="pixbuf">icons/st-gtk-logo.png</property> ++ <property name="pixel_size">128</property> ++ <property name="icon_name">syncthing-gtk</property> + </object> + <packing> + <property name="expand">False</property> Added: fix-statusicon.patch =================================================================== --- fix-statusicon.patch (rev 0) +++ fix-statusicon.patch 2018-01-26 20:12:16 UTC (rev 287270) @@ -0,0 +1,23 @@ +From a6f6d11d42de34d0f6519c349f19217e269f6f56 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ball=C3=B3=20Gy=C3=B6rgy?= <ballog...@gmail.com> +Date: Fri, 26 Jan 2018 11:40:06 +0100 +Subject: [PATCH] Fix invisible tray icon + +It should call set_from_icon_name() instead of set_from_file(), otherwise it tries to set the icon from an invalid path. +--- + syncthing_gtk/statusicon.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/syncthing_gtk/statusicon.py b/syncthing_gtk/statusicon.py +index dc784ea..5f19ee9 100644 +--- a/syncthing_gtk/statusicon.py ++++ b/syncthing_gtk/statusicon.py +@@ -240,7 +240,7 @@ def set(self, icon=None, text=None): + def _on_embedded_change(self, *args): + # Without an icon update at this point GTK might consider the icon embedded and visible even through + # it can't actually be seen... +- self._tray.set_from_file(self._get_icon()) ++ self._tray.set_from_icon_name(self._get_icon()) + + # An invisible tray icon will never be embedded but it also should not be replaced + # by a fallback icon Added: kde-statusicon.patch =================================================================== --- kde-statusicon.patch (rev 0) +++ kde-statusicon.patch 2018-01-26 20:12:16 UTC (rev 287270) @@ -0,0 +1,44 @@ +From be3d197db4c7f7b06c88fa7457f27bb7741cd016 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ball=C3=B3=20Gy=C3=B6rgy?= <ballog...@gmail.com> +Date: Fri, 26 Jan 2018 19:18:34 +0100 +Subject: [PATCH] Enable Gtk.StatusIcon in KDE + +--- + syncthing_gtk/statusicon.py | 10 ++-------- + 1 file changed, 2 insertions(+), 8 deletions(-) + +diff --git a/syncthing_gtk/statusicon.py b/syncthing_gtk/statusicon.py +index 5f19ee9..b4f7d10 100644 +--- a/syncthing_gtk/statusicon.py ++++ b/syncthing_gtk/statusicon.py +@@ -26,7 +26,7 @@ + # StatusIconKDE4 | excellent | usable³ | very good⁵ | usable³ | usable³ | excellent | excellent | + # StatusIconQt5 | very good (KF5) | - | - | - | - | - | - | + # StatusIconAppI | good² | none | excellent | none | none | excellent | good² | +-# StatusIconGTK3 | none | excellent | none | very good¹ | very good¹ | none | good⁴ | ++# StatusIconGTK3 | good | excellent | none | very good¹ | very good¹ | none | good⁴ | + # + # Notes: + # - StatusIconQt5: +@@ -211,12 +211,6 @@ def __init__(self, *args, **kwargs): + # Unity fakes SysTray support but actually hides all icons... + raise NotImplementedError + +- if IS_KDE: +- # While the GTK backend works fine on KDE 4, the StatusIconKDE4 backend will achieve better +- # results and should be available on any standard KDE 4 installation +- # (since several KDE applications depend on it) +- raise NotImplementedError +- + self._tray = Gtk.StatusIcon() + + self._tray.connect("activate", self._on_click) +@@ -246,7 +240,7 @@ def _on_embedded_change(self, *args): + # by a fallback icon + is_embedded = self._tray.is_embedded() or not self._tray.get_visible() + # On some desktops, above check fails but tray is always visible +- is_embedded = is_embedded or IS_LXQT or IS_CINNAMON ++ is_embedded = is_embedded or IS_KDE or IS_LXQT or IS_CINNAMON + if is_embedded != self.get_property("active"): + self.set_property("active", is_embedded) +