diff -Nru xfdesktop4-4.8.3/debian/changelog xfdesktop4-4.8.3/debian/changelog
--- xfdesktop4-4.8.3/debian/changelog 2012-01-25 19:24:25.000000000 +0000
+++ xfdesktop4-4.8.3/debian/changelog 2012-02-07 19:49:49.000000000 +0000
@@ -1,3 +1,24 @@
+xfdesktop4 (4.8.3-1ubuntu9) precise; urgency=low
+
+ * debian/patches:
+ - xubuntu_single-click-option.patch: clean up autogenerated .h file.
+ - xubuntu_use-tumbler.patch: refreshed, based on the latest version
+ from upstream bug report.
+ - xubuntu_refreshed-translations.patch: refreshed, new translations taken
+ from Thunar as the added string to show thumbnails is also used there.
+ * debian/rules:
+ - regenerate and clean autogenerated settings/*ui.h.
+ - drop obsolete configure option.
+ - use debhelper 9 hardening support.
+ * debian/compat bumped to 9.
+ * debian/control:
+ - b-dep on exo-utils for exo-csource.
+ - drop hardening-includes build-dep.
+ - update debhelper build-dep to 9 for hardening support.
+ - add dpkg-dev 1.16.1 build-dep for hardening support.
+
+ -- Lionel Le Folgoc Tue, 07 Feb 2012 20:49:46 +0100
+
xfdesktop4 (4.8.3-1ubuntu8) precise; urgency=low
* debian/rules, debian/xfdesktop4-data.install: keep xfce-stripes.png, it's
diff -Nru xfdesktop4-4.8.3/debian/compat xfdesktop4-4.8.3/debian/compat
--- xfdesktop4-4.8.3/debian/compat 2009-03-15 14:58:31.000000000 +0000
+++ xfdesktop4-4.8.3/debian/compat 2012-02-07 19:47:12.000000000 +0000
@@ -1 +1 @@
-7
+9
diff -Nru xfdesktop4-4.8.3/debian/control xfdesktop4-4.8.3/debian/control
--- xfdesktop4-4.8.3/debian/control 2012-01-24 21:28:44.000000000 +0000
+++ xfdesktop4-4.8.3/debian/control 2012-02-07 19:48:03.000000000 +0000
@@ -5,11 +5,12 @@
XSBC-Original-Maintainer: Debian Xfce Maintainers
Uploaders: Yves-Alexis Perez ,
Lionel Le Folgoc
-Build-Depends: debhelper (>= 7.0.50~), libglib2.0-dev (>= 2.18.0),
+Build-Depends: debhelper (>= 9), libglib2.0-dev (>= 2.18.0),
libgtk2.0-dev (>= 2.14.0), libxfce4util-dev (>= 4.8.0), libxfce4ui-1-dev (>= 4.8.0),
libwnck-dev (>= 2.22), libxfconf-0-dev (>= 4.8.0), intltool, libdbus-glib-1-dev,
libthunarx-2-dev (>= 1.2.0), libexo-1-dev (>= 0.6.0), libgarcon-1-0-dev (>= 0.1.2),
- libnotify-dev, xfce4-dev-tools, autoconf, automake, libtool, chrpath, hardening-includes
+ libnotify-dev, chrpath, dpkg-dev (>= 1.16.1), xfce4-dev-tools, autoconf, automake,
+ libtool, exo-utils
Standards-Version: 3.9.2
Homepage: http://www.xfce.org/
Vcs-Svn: svn://svn.debian.org/pkg-xfce/desktop/trunk/xfdesktop4/
diff -Nru xfdesktop4-4.8.3/debian/patches/xubuntu_refreshed-translations.patch xfdesktop4-4.8.3/debian/patches/xubuntu_refreshed-translations.patch
--- xfdesktop4-4.8.3/debian/patches/xubuntu_refreshed-translations.patch 2012-01-24 21:16:17.000000000 +0000
+++ xfdesktop4-4.8.3/debian/patches/xubuntu_refreshed-translations.patch 2012-02-07 19:29:16.000000000 +0000
@@ -1,481 +1,638 @@
-Description: Translations for the string added by xubuntu_single-click-option.patch
- Taken from Thunar, as it contains the same string.
+Description: Translations for the string added by xubuntu_* patches
+ Taken from Thunar, as it contains the same strings.
Obtained with:
$ cd po
$ for i in *.po; do \
grep -C 1 '_Single click to activate items' /path/to/thunar-1.2.3/po/$i >> $i; \
+ grep -C 1 '_Show thumbnails' /path/to/thunar-1.2.3/po/$i >> $i; \
done
-
Author: Lionel Le Folgoc
Forwarded: not-needed
-Last-Update: 2012-01-24
+Last-Update: 2012-02-07
---- xfdesktop4-4.8.3.orig/po/pt.po
-+++ xfdesktop4-4.8.3/po/pt.po
-@@ -1812,3 +1812,6 @@ msgstr "_Montar volume"
+--- xfdesktop4-4.8.3.orig/po/ca.po
++++ xfdesktop4-4.8.3/po/ca.po
+@@ -1929,3 +1929,9 @@ msgstr "_Munta el volum"
- #~ msgid "Scientific software"
- #~ msgstr "Software científico"
+ #~ msgid "_Desktop Properties..."
+ #~ msgstr "Propietats _de l’escriptori"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "_Clique único para activar itens"
---- xfdesktop4-4.8.3.orig/po/kk.po
-+++ xfdesktop4-4.8.3/po/kk.po
-@@ -1448,3 +1448,6 @@ msgstr "Бө_лімді тіркеу"
++msgstr "Només un _clic per activar els elements"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "Mo_stra miniatures"
+--- xfdesktop4-4.8.3.orig/po/sk.po
++++ xfdesktop4-4.8.3/po/sk.po
+@@ -1793,3 +1793,9 @@ msgstr "_Pripojiť zväzok"
- #~ msgid "gtk-help"
- #~ msgstr "gtk-help"
+ #~ msgid "Scientific software"
+ #~ msgstr "Vedecký softvér"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "Э_лементерді белсенді қылу үшін бір шертуді қолдану"
++msgstr "_Aktivovať položky jednoduchým kliknutím"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "Zobraziť _miniatúry"
--- xfdesktop4-4.8.3.orig/po/nb.po
+++ xfdesktop4-4.8.3/po/nb.po
-@@ -981,3 +981,6 @@ msgstr "_Monter dataområde"
+@@ -981,3 +981,9 @@ msgstr "_Monter dataområde"
#~ msgstr ""
#~ "Sørg for at du har en filbehandler installert som støtter Zfce "
#~ "papirkurvtjenesten, for eksempel Thunar."
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
+msgstr "_Enkeltklikk for å aktivere elementer"
---- xfdesktop4-4.8.3.orig/po/et.po
-+++ xfdesktop4-4.8.3/po/et.po
-@@ -1789,3 +1789,6 @@ msgstr "_Liida andmeruum"
- #, fuzzy
- #~ msgid "Scientific software"
- #~ msgstr "Hariduslik tarkvara"
-+#: ../thunar/thunar-preferences-dialog.c:436
-+msgid "_Single click to activate items"
-+msgstr "E_semed aktiveeritakse ühe klõpsuga"
---- xfdesktop4-4.8.3.orig/po/pa.po
-+++ xfdesktop4-4.8.3/po/pa.po
-@@ -1843,3 +1843,6 @@ msgstr "ਵਾਲੀਅਮ ਮਾਊਂ
-
- #~ msgid "Scientific software"
- #~ msgstr "ਸਾਇੰਸ ਸਾਫਟਵੇਅਰ"
-+#: ../thunar/thunar-preferences-dialog.c:436
-+msgid "_Single click to activate items"
-+msgstr "ਆਈਟਮਾਂ ਨੂੰ ਐਕਟੀਵੇਟ ਕਰਨ ਲਈ ਇੱਕ ਵਾਰ ਕਲਿੱਕ(_S)"
---- xfdesktop4-4.8.3.orig/po/lt.po
-+++ xfdesktop4-4.8.3/po/lt.po
-@@ -1548,3 +1548,6 @@ msgstr "_Prijungti tomą"
-
- #~ msgid "Delete the current entry"
- #~ msgstr "Ištrinti šį įrašą"
-+#: ../thunar/thunar-preferences-dialog.c:436
-+msgid "_Single click to activate items"
-+msgstr "Aktyvuoti _vienu pelės mygtuko paspaudimu"
---- xfdesktop4-4.8.3.orig/po/ro.po
-+++ xfdesktop4-4.8.3/po/ro.po
-@@ -941,3 +941,6 @@ msgstr "_Montare volum"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "_Vis miniatyrbilder"
+--- xfdesktop4-4.8.3.orig/po/ja.po
++++ xfdesktop4-4.8.3/po/ja.po
+@@ -1050,3 +1050,9 @@ msgstr "マウント(_M)"
- #~ msgid "Make sure you have a file manager installed that supports the Xfce Trash service, such as Thunar."
- #~ msgstr "Asigurați-vă ca aveți instalat un manager de fișiere cu suport pentru serviciul Xfce Trash (precum Thunar)."
+ #~ msgid "Are you sure that you want to delete \"%s\"?"
+ #~ msgstr "\"%s\" を削除してもよろしいですか?"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "Clic _simplu pentru activarea elementelor"
++msgstr "シングルクリックでアイテムをアクティブにする(_S)"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "サムネイルを表示する(_S)"
--- xfdesktop4-4.8.3.orig/po/pl.po
+++ xfdesktop4-4.8.3/po/pl.po
-@@ -2004,3 +2004,6 @@ msgstr "_Zamontuj"
+@@ -2004,3 +2004,9 @@ msgstr "_Zamontuj"
#, fuzzy
#~ msgid "Scientific software"
#~ msgstr "Oprogramowanie edukacyjne"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
+msgstr "Zaznaczanie _jednokrotnym kliknięciem"
---- xfdesktop4-4.8.3.orig/po/uk.po
-+++ xfdesktop4-4.8.3/po/uk.po
-@@ -1731,3 +1731,6 @@ msgstr "_Підключити том"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "_Miniatury"
+--- xfdesktop4-4.8.3.orig/po/kk.po
++++ xfdesktop4-4.8.3/po/kk.po
+@@ -1448,3 +1448,9 @@ msgstr "Бө_лімді тіркеу"
- #~ msgid "Scientific software"
- #~ msgstr "Навчальні програми"
+ #~ msgid "gtk-help"
+ #~ msgstr "gtk-help"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "Активація елементів _одинарним клацанням"
---- xfdesktop4-4.8.3.orig/po/ms.po
-+++ xfdesktop4-4.8.3/po/ms.po
-@@ -1162,3 +1162,6 @@ msgstr "Lekap Volu_m"
- #, fuzzy
- #~ msgid "Edit"
- #~ msgstr "Edit senarai"
++msgstr "Э_лементерді белсенді қылу үшін бір шертуді қолдану"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "Ү_лгілерін көрсету"
+--- xfdesktop4-4.8.3.orig/po/es.po
++++ xfdesktop4-4.8.3/po/es.po
+@@ -1917,3 +1917,9 @@ msgstr "_Montar volumen"
+
+ #~ msgid "Scientific software"
+ #~ msgstr "Software científico"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr ""
---- xfdesktop4-4.8.3.orig/po/ca.po
-+++ xfdesktop4-4.8.3/po/ca.po
-@@ -1929,3 +1929,6 @@ msgstr "_Munta el volum"
++msgstr "Clic _simple para activar los elementos"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "Mo_strar miniaturas"
+--- xfdesktop4-4.8.3.orig/po/fi.po
++++ xfdesktop4-4.8.3/po/fi.po
+@@ -1762,3 +1762,9 @@ msgstr "_Liitä taltio"
- #~ msgid "_Desktop Properties..."
- #~ msgstr "Propietats _de l’escriptori"
+ #~ msgid "Xfce 4 Menu Editor"
+ #~ msgstr "Xfce 4 valikkoeditori"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "Només un _clic per activar els elements"
---- xfdesktop4-4.8.3.orig/po/ar.po
-+++ xfdesktop4-4.8.3/po/ar.po
-@@ -1868,3 +1868,6 @@ msgstr "ضم الج_زء"
- #, fuzzy
++msgstr "Aktivoi kohteet k_ertanapsautuksella"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "_Näytä pienoiskuvat"
+--- xfdesktop4-4.8.3.orig/po/en_GB.po
++++ xfdesktop4-4.8.3/po/en_GB.po
+@@ -1971,3 +1971,11 @@ msgstr "_Mount Volume"
+
#~ msgid "Scientific software"
- #~ msgstr "برامج تعليمية"
+ #~ msgstr "Educational software"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "_نقرة واحدة لتفعيل العناصر"
---- xfdesktop4-4.8.3.orig/po/ru.po
-+++ xfdesktop4-4.8.3/po/ru.po
-@@ -945,3 +945,6 @@ msgstr "_Извлечь том"
- #: ../src/xfdesktop-volume-icon.c:689
- msgid "_Mount Volume"
- msgstr "_Подключить том"
++msgstr "_Single click to activate items"
++
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "_Show thumbnails"
++
+--- xfdesktop4-4.8.3.orig/po/tr.po
++++ xfdesktop4-4.8.3/po/tr.po
+@@ -1727,3 +1727,9 @@ msgstr "Birim _Bağla"
+
+ #~ msgid "Scientific software"
+ #~ msgstr "Eğitimsel uygulama"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "_Одиночный щелчок активирует объект"
---- xfdesktop4-4.8.3.orig/po/nl.po
-+++ xfdesktop4-4.8.3/po/nl.po
-@@ -1888,3 +1888,6 @@ msgstr "Medium aan_koppelen"
++msgstr "Ögeleri aktif etmek için _tek tıklama"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "Küçük _resimleri göster"
+--- xfdesktop4-4.8.3.orig/po/da.po
++++ xfdesktop4-4.8.3/po/da.po
+@@ -1732,3 +1732,9 @@ msgstr "_Montér arkiv"
#~ msgid "Scientific software"
- #~ msgstr "Wetenschappelijke programma's"
+ #~ msgstr "Videnskabelig software"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "_Onderdelen met enkele klik activeren"
---- xfdesktop4-4.8.3.orig/po/cs.po
-+++ xfdesktop4-4.8.3/po/cs.po
-@@ -2012,3 +2012,6 @@ msgstr "_Připojit svazek"
++msgstr "_Enkeltklik for aktivering af elementer"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "_Vis miniature"
+--- xfdesktop4-4.8.3.orig/po/hr.po
++++ xfdesktop4-4.8.3/po/hr.po
+@@ -1142,3 +1142,9 @@ msgstr "_Montiraj uređaj"
- #~ msgid "Scientific software"
- #~ msgstr "Vědecký software"
+ #~ msgid "_Unmount Volume"
+ #~ msgstr "_Odmontiraj uređaj"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "_Jednoduché kliknutí pro aktivaci položky"
++msgstr "_Jedan klik za aktiviranje stavki"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "_Pokaži sličice"
--- xfdesktop4-4.8.3.orig/po/vi.po
+++ xfdesktop4-4.8.3/po/vi.po
-@@ -1847,3 +1847,6 @@ msgstr "_Gắn ổ"
+@@ -1847,3 +1847,9 @@ msgstr "_Gắn ổ"
#~ msgid "Unknown error."
#~ msgstr "Lỗi không rõ."
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
+msgstr ""
---- xfdesktop4-4.8.3.orig/po/zh_TW.po
-+++ xfdesktop4-4.8.3/po/zh_TW.po
-@@ -1718,3 +1718,6 @@ msgstr "掛載儲存裝置(_M)"
-
- #~ msgid " Bytes)"
- #~ msgstr " 位元組)"
-+#: ../thunar/thunar-preferences-dialog.c:436
-+msgid "_Single click to activate items"
-+msgstr "單點擊以啟用項目(_S)"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr ""
--- xfdesktop4-4.8.3.orig/po/mk.po
+++ xfdesktop4-4.8.3/po/mk.po
-@@ -1815,3 +1815,6 @@ msgstr "_Монтирај партици
+@@ -1815,3 +1815,9 @@ msgstr "_Монтирај партици
#~ msgid "Edit Properties"
#~ msgstr "Уреди ги својствата"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
+msgstr "_Единечен клик за активирање на елементи"
---- xfdesktop4-4.8.3.orig/po/eu.po
-+++ xfdesktop4-4.8.3/po/eu.po
-@@ -1741,3 +1741,6 @@ msgstr "Bolumena _muntatu"
-
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "_Прикажи сликички"
+--- xfdesktop4-4.8.3.orig/po/ar.po
++++ xfdesktop4-4.8.3/po/ar.po
+@@ -1868,3 +1868,9 @@ msgstr "ضم الج_زء"
+ #, fuzzy
#~ msgid "Scientific software"
- #~ msgstr "Zientzi softwarea"
+ #~ msgstr "برامج تعليمية"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "Klik _bakana elementuak aktibatzeko"
++msgstr "_نقرة واحدة لتفعيل العناصر"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "أظهر المص_غارات"
+--- xfdesktop4-4.8.3.orig/po/bn.po
++++ xfdesktop4-4.8.3/po/bn.po
+@@ -1337,3 +1337,9 @@ msgstr "খন্ড মাউন্ট
+
+ #~ msgid "Web Browser"
+ #~ msgstr "ওয়েব ব্রাউজার"
++#: ../thunar/thunar-preferences-dialog.c:436
++msgid "_Single click to activate items"
++msgstr "আইটেম সক্রিয় করতে ক্লিক করুন (_S)"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "থাম্বনেইল প্রদর্শন (_S)"
--- xfdesktop4-4.8.3.orig/po/ur_PK.po
+++ xfdesktop4-4.8.3/po/ur_PK.po
-@@ -1903,3 +1903,6 @@ msgstr "والی_م ماؤنٹ کریں"
+@@ -1903,3 +1903,9 @@ msgstr "والی_م ماؤنٹ کریں"
#, fuzzy
#~ msgid "Scientific software"
#~ msgstr "تعلیمی پروگرام"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
+msgstr "ایک_ کلک پر عناصر کی فعالیت"
---- xfdesktop4-4.8.3.orig/po/he.po
-+++ xfdesktop4-4.8.3/po/he.po
-@@ -1806,3 +1806,6 @@ msgstr "_חבר כרך"
-
- #~ msgid "Edit Properties"
- #~ msgstr "עריכת מאפיינים"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "ت_ھمبنیل دکھائیں"
+--- xfdesktop4-4.8.3.orig/po/be.po
++++ xfdesktop4-4.8.3/po/be.po
+@@ -1973,3 +1973,9 @@ msgstr "Пры_мантаваць пад
+ #, fuzzy
+ #~ msgid "Scientific software"
+ #~ msgstr "Адукацыйныя праграмы"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "לחיצה _אחת כדי להפעיל פריטים"
---- xfdesktop4-4.8.3.orig/po/es.po
-+++ xfdesktop4-4.8.3/po/es.po
-@@ -1917,3 +1917,6 @@ msgstr "_Montar volumen"
-
- #~ msgid "Scientific software"
- #~ msgstr "Software científico"
++msgstr "Задзейнічаць элемэнты _самотнай пстрычкай"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "Паказваць _мініятуры"
+--- xfdesktop4-4.8.3.orig/po/te.po
++++ xfdesktop4-4.8.3/po/te.po
+@@ -939,3 +939,9 @@ msgstr "సంపుటమును న
+ #: ../src/xfdesktop-volume-icon.c:689
+ msgid "_Mount Volume"
+ msgstr "సంపుటమును అధిరోహించు (_M)"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "Clic _simple para activar los elementos"
---- xfdesktop4-4.8.3.orig/po/id.po
-+++ xfdesktop4-4.8.3/po/id.po
-@@ -1889,3 +1889,6 @@ msgstr "_Mount Volume"
++msgstr "ఒకే నొక్కుతో అంశాలను క్రియాత్మకం చేయి (_S)"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "చిరుచిత్రాలను చూపించు (_S)"
+--- xfdesktop4-4.8.3.orig/po/ug.po
++++ xfdesktop4-4.8.3/po/ug.po
+@@ -1516,3 +1516,9 @@ msgstr "Volume نى Mount قىل(_M)"
- #~ msgid "Scientific software"
- #~ msgstr "Peranti lunak pendidikan"
+ #~ msgid "gtk-help"
+ #~ msgstr "ヘルプ"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "_Klik tunggal untk mengaktivasi item"
---- xfdesktop4-4.8.3.orig/po/sq.po
-+++ xfdesktop4-4.8.3/po/sq.po
-@@ -1804,3 +1804,6 @@ msgstr "_Monto Vëllimin"
- #, fuzzy
++msgstr "تۈرلەرنى بىرلا چېكىپ ئاكتىپلاش(_S)"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "thumbnails كۆرسەت(_S)"
+--- xfdesktop4-4.8.3.orig/po/pa.po
++++ xfdesktop4-4.8.3/po/pa.po
+@@ -1843,3 +1843,9 @@ msgstr "ਵਾਲੀਅਮ ਮਾਊਂ
+
#~ msgid "Scientific software"
- #~ msgstr "Programe edukimi"
+ #~ msgstr "ਸਾਇੰਸ ਸਾਫਟਵੇਅਰ"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "Klikim _njësh për aktivizim elementësh"
---- xfdesktop4-4.8.3.orig/po/gl.po
-+++ xfdesktop4-4.8.3/po/gl.po
-@@ -1504,3 +1504,6 @@ msgstr "_Montar volume"
++msgstr "ਆਈਟਮਾਂ ਨੂੰ ਐਕਟੀਵੇਟ ਕਰਨ ਲਈ ਇੱਕ ਵਾਰ ਕਲਿੱਕ(_S)"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "ਥੰਮਨੇਲ ਵੇਖਾਓ(_S)"
+--- xfdesktop4-4.8.3.orig/po/sv.po
++++ xfdesktop4-4.8.3/po/sv.po
+@@ -1855,3 +1855,9 @@ msgstr "_Montera volym"
#~ msgid "Scientific software"
- #~ msgstr "Software científico"
+ #~ msgstr "Vetenskaplig programvara"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "Unha _soa pulsación para activar os elementos"
---- xfdesktop4-4.8.3.orig/po/ja.po
-+++ xfdesktop4-4.8.3/po/ja.po
-@@ -1050,3 +1050,6 @@ msgstr "マウント(_M)"
++msgstr "_Enkelklicka för att aktivera ett objekt"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "Visa _miniatyrbilder"
+--- xfdesktop4-4.8.3.orig/po/ur.po
++++ xfdesktop4-4.8.3/po/ur.po
+@@ -1927,3 +1927,9 @@ msgstr "والی_م ماؤنٹ کریں"
- #~ msgid "Are you sure that you want to delete \"%s\"?"
- #~ msgstr "\"%s\" を削除してもよろしいですか?"
+ #~ msgid "Show windows on each workspace in sub_menus"
+ #~ msgstr "ہر مقام کار میں ونڈوز _ذیلی مینیو میں ظاہر کریں"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "シングルクリックでアイテムをアクティブにする(_S)"
---- xfdesktop4-4.8.3.orig/po/it.po
-+++ xfdesktop4-4.8.3/po/it.po
-@@ -1175,3 +1175,6 @@ msgstr "_Monta volume"
++msgstr "ایک_ کلک پر عناصر کی فعالیت"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "ت_ھمبنیل دکھائیں"
+--- xfdesktop4-4.8.3.orig/po/zh_CN.po
++++ xfdesktop4-4.8.3/po/zh_CN.po
+@@ -1838,3 +1838,9 @@ msgstr "挂载卷(_M)"
- #~ msgid "Unable to create folder named \"%s\":"
- #~ msgstr "Impossibile creare la cartella chiamata \"%s\":"
+ #~ msgid "Scientific software"
+ #~ msgstr "科学软件"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "_Singolo clic per attivare gli elementi"
++msgstr "单击激活项目(_S)"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "显示缩略图(_S)"
--- xfdesktop4-4.8.3.orig/po/de.po
+++ xfdesktop4-4.8.3/po/de.po
-@@ -1516,3 +1516,6 @@ msgstr "Datenträger _einhängen"
+@@ -1516,3 +1516,9 @@ msgstr "Datenträger _einhängen"
#~ msgid "Scientific software"
#~ msgstr "Bildungsprogramme"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
+msgstr "_Einfacher Klick zum Aktivieren von Objekten"
---- xfdesktop4-4.8.3.orig/po/en_GB.po
-+++ xfdesktop4-4.8.3/po/en_GB.po
-@@ -1971,3 +1971,7 @@ msgstr "_Mount Volume"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "_Miniatur-Vorschaubilder anzeigen"
+--- xfdesktop4-4.8.3.orig/po/zh_TW.po
++++ xfdesktop4-4.8.3/po/zh_TW.po
+@@ -1718,3 +1718,9 @@ msgstr "掛載儲存裝置(_M)"
- #~ msgid "Scientific software"
- #~ msgstr "Educational software"
+ #~ msgid " Bytes)"
+ #~ msgstr " 位元組)"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "_Single click to activate items"
-+
---- xfdesktop4-4.8.3.orig/po/fr.po
-+++ xfdesktop4-4.8.3/po/fr.po
-@@ -1769,3 +1769,6 @@ msgstr "_Monter le périphérique"
++msgstr "單點擊以啟用項目(_S)"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "顯示縮圖(_S)"
+--- xfdesktop4-4.8.3.orig/po/he.po
++++ xfdesktop4-4.8.3/po/he.po
+@@ -1806,3 +1806,9 @@ msgstr "_חבר כרך"
- #~ msgid "Scientific software"
- #~ msgstr "Logiciels éducatifs"
+ #~ msgid "Edit Properties"
+ #~ msgstr "עריכת מאפיינים"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "_Simple clic pour activer les éléments"
---- xfdesktop4-4.8.3.orig/po/sk.po
-+++ xfdesktop4-4.8.3/po/sk.po
-@@ -1793,3 +1793,6 @@ msgstr "_Pripojiť zväzok"
++msgstr "לחיצה _אחת כדי להפעיל פריטים"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "הצגת _תמונות מוקטנות"
+--- xfdesktop4-4.8.3.orig/po/eo.po
++++ xfdesktop4-4.8.3/po/eo.po
+@@ -1720,3 +1720,9 @@ msgstr ""
- #~ msgid "Scientific software"
- #~ msgstr "Vedecký softvér"
+ #~ msgid "Delete the current entry"
+ #~ msgstr "Forigu la kurantan elementon"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "_Aktivovať položky jednoduchým kliknutím"
---- xfdesktop4-4.8.3.orig/po/ka.po
-+++ xfdesktop4-4.8.3/po/ka.po
-@@ -949,3 +949,6 @@ msgstr ""
-
- #~ msgid "Style:"
- #~ msgstr "სტილი:"
++msgstr "_Unuopa klako por aktivigi erojn"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "_Montru bildetojn"
+--- xfdesktop4-4.8.3.orig/po/ms.po
++++ xfdesktop4-4.8.3/po/ms.po
+@@ -1162,3 +1162,9 @@ msgstr "Lekap Volu_m"
+ #, fuzzy
+ #~ msgid "Edit"
+ #~ msgstr "Edit senarai"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
+msgstr ""
---- xfdesktop4-4.8.3.orig/po/da.po
-+++ xfdesktop4-4.8.3/po/da.po
-@@ -1732,3 +1732,6 @@ msgstr "_Montér arkiv"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr ""
+--- xfdesktop4-4.8.3.orig/po/id.po
++++ xfdesktop4-4.8.3/po/id.po
+@@ -1889,3 +1889,9 @@ msgstr "_Mount Volume"
#~ msgid "Scientific software"
- #~ msgstr "Videnskabelig software"
-+#: ../thunar/thunar-preferences-dialog.c:436
-+msgid "_Single click to activate items"
-+msgstr "_Enkeltklik for aktivering af elementer"
---- xfdesktop4-4.8.3.orig/po/el.po
-+++ xfdesktop4-4.8.3/po/el.po
-@@ -1006,3 +1006,6 @@ msgstr "Προ_σάρτηση τόμου
-
- #~ msgid "Whether or not the app supports startup notification"
- #~ msgstr "Αν η εφαρμογή υποστηρίζει ενημέρωση εκκίνησης"
+ #~ msgstr "Peranti lunak pendidikan"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "_Μονό κλικ για την ενεργοποίηση αντικειμένων"
---- xfdesktop4-4.8.3.orig/po/ug.po
-+++ xfdesktop4-4.8.3/po/ug.po
-@@ -1516,3 +1516,6 @@ msgstr "Volume نى Mount قىل(_M)"
-
- #~ msgid "gtk-help"
- #~ msgstr "ヘルプ"
++msgstr "_Klik tunggal untk mengaktivasi item"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "_Tampilkan miniatur"
+--- xfdesktop4-4.8.3.orig/po/et.po
++++ xfdesktop4-4.8.3/po/et.po
+@@ -1789,3 +1789,9 @@ msgstr "_Liida andmeruum"
+ #, fuzzy
+ #~ msgid "Scientific software"
+ #~ msgstr "Hariduslik tarkvara"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "تۈرلەرنى بىرلا چېكىپ ئاكتىپلاش(_S)"
---- xfdesktop4-4.8.3.orig/po/hr.po
-+++ xfdesktop4-4.8.3/po/hr.po
-@@ -1142,3 +1142,6 @@ msgstr "_Montiraj uređaj"
++msgstr "E_semed aktiveeritakse ühe klõpsuga"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "Näidata pi_sipilte"
+--- xfdesktop4-4.8.3.orig/po/nl.po
++++ xfdesktop4-4.8.3/po/nl.po
+@@ -1888,3 +1888,9 @@ msgstr "Medium aan_koppelen"
- #~ msgid "_Unmount Volume"
- #~ msgstr "_Odmontiraj uređaj"
+ #~ msgid "Scientific software"
+ #~ msgstr "Wetenschappelijke programma's"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "_Jedan klik za aktiviranje stavki"
---- xfdesktop4-4.8.3.orig/po/zh_CN.po
-+++ xfdesktop4-4.8.3/po/zh_CN.po
-@@ -1838,3 +1838,6 @@ msgstr "挂载卷(_M)"
++msgstr "_Onderdelen met enkele klik activeren"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "Miniaturen _weergeven"
+--- xfdesktop4-4.8.3.orig/po/pt.po
++++ xfdesktop4-4.8.3/po/pt.po
+@@ -1812,3 +1812,9 @@ msgstr "_Montar volume"
#~ msgid "Scientific software"
- #~ msgstr "科学软件"
+ #~ msgstr "Software científico"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "单击激活项目(_S)"
---- xfdesktop4-4.8.3.orig/po/fi.po
-+++ xfdesktop4-4.8.3/po/fi.po
-@@ -1762,3 +1762,6 @@ msgstr "_Liitä taltio"
++msgstr "_Clique único para activar itens"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "_Mostar miniaturas"
+--- xfdesktop4-4.8.3.orig/po/ast.po
++++ xfdesktop4-4.8.3/po/ast.po
+@@ -1499,3 +1499,9 @@ msgstr "_Montar volume"
- #~ msgid "Xfce 4 Menu Editor"
- #~ msgstr "Xfce 4 valikkoeditori"
+ #~ msgid "Scientific software"
+ #~ msgstr "Software de ciencia"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "Aktivoi kohteet k_ertanapsautuksella"
---- xfdesktop4-4.8.3.orig/po/si.po
-+++ xfdesktop4-4.8.3/po/si.po
-@@ -1328,3 +1328,6 @@ msgstr "පරිමාව _Mount කර
++msgstr "Clic _simple p'activar los elementos"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "Am_osar miniatures"
+--- xfdesktop4-4.8.3.orig/po/ka.po
++++ xfdesktop4-4.8.3/po/ka.po
+@@ -949,3 +949,9 @@ msgstr ""
- #~ msgid "Scientific software"
- #~ msgstr "විද්යාත්මක මෘදුකාංග"
+ #~ msgid "Style:"
+ #~ msgstr "სტილი:"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
+msgstr ""
---- xfdesktop4-4.8.3.orig/po/te.po
-+++ xfdesktop4-4.8.3/po/te.po
-@@ -939,3 +939,6 @@ msgstr "సంపుటమును న
- #: ../src/xfdesktop-volume-icon.c:689
- msgid "_Mount Volume"
- msgstr "సంపుటమును అధిరోహించు (_M)"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr ""
+--- xfdesktop4-4.8.3.orig/po/it.po
++++ xfdesktop4-4.8.3/po/it.po
+@@ -1175,3 +1175,9 @@ msgstr "_Monta volume"
+
+ #~ msgid "Unable to create folder named \"%s\":"
+ #~ msgstr "Impossibile creare la cartella chiamata \"%s\":"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "ఒకే నొక్కుతో అంశాలను క్రియాత్మకం చేయి (_S)"
++msgstr "_Singolo clic per attivare gli elementi"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "Mostra _miniature"
--- xfdesktop4-4.8.3.orig/po/dz.po
+++ xfdesktop4-4.8.3/po/dz.po
-@@ -1824,3 +1824,6 @@ msgstr "སྐད་ཤུགས་ས
+@@ -1824,3 +1824,9 @@ msgstr "སྐད་ཤུགས་ས
#~ msgid "Edit Properties"
#~ msgstr "རྒྱུ་དངོས་ཚུ་ཞུན་དག་རྐྱབས།"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
+msgstr "རྣམ་གྲངས་ཚུ་ཤུགས་ལྡན་བཟོ་ནི་ལུ་ ཨེབ་གཏང་རྐྱང་པ།(_S)"
---- xfdesktop4-4.8.3.orig/po/ast.po
-+++ xfdesktop4-4.8.3/po/ast.po
-@@ -1499,3 +1499,6 @@ msgstr "_Montar volume"
-
- #~ msgid "Scientific software"
- #~ msgstr "Software de ciencia"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "མཐེ་གཟེར་ཚུ་སྟོན།(_S)"
+--- xfdesktop4-4.8.3.orig/po/ru.po
++++ xfdesktop4-4.8.3/po/ru.po
+@@ -945,3 +945,9 @@ msgstr "_Извлечь том"
+ #: ../src/xfdesktop-volume-icon.c:689
+ msgid "_Mount Volume"
+ msgstr "_Подключить том"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "Clic _simple p'activar los elementos"
---- xfdesktop4-4.8.3.orig/po/lv.po
-+++ xfdesktop4-4.8.3/po/lv.po
-@@ -1927,3 +1927,6 @@ msgstr "_Montēt sējumu"
++msgstr "_Одиночный щелчок активирует объект"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "Показывать _образцы файлов"
+--- xfdesktop4-4.8.3.orig/po/pt_BR.po
++++ xfdesktop4-4.8.3/po/pt_BR.po
+@@ -1949,3 +1949,9 @@ msgstr "_Montar volume"
#~ msgid "Scientific software"
- #~ msgstr "Zinātnes programmatūra"
+ #~ msgstr "Programas científicos"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "_Viens klikšķis, lai aktivizētu vienumus"
---- xfdesktop4-4.8.3.orig/po/tr.po
-+++ xfdesktop4-4.8.3/po/tr.po
-@@ -1727,3 +1727,6 @@ msgstr "Birim _Bağla"
++msgstr "Clique único para ativar iten_s"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "_Mostar miniaturas"
+--- xfdesktop4-4.8.3.orig/po/el.po
++++ xfdesktop4-4.8.3/po/el.po
+@@ -1006,3 +1006,9 @@ msgstr "Προ_σάρτηση τόμου
- #~ msgid "Scientific software"
- #~ msgstr "Eğitimsel uygulama"
+ #~ msgid "Whether or not the app supports startup notification"
+ #~ msgstr "Αν η εφαρμογή υποστηρίζει ενημέρωση εκκίνησης"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "Ögeleri aktif etmek için _tek tıklama"
---- xfdesktop4-4.8.3.orig/po/ur.po
-+++ xfdesktop4-4.8.3/po/ur.po
-@@ -1927,3 +1927,6 @@ msgstr "والی_م ماؤنٹ کریں"
++msgstr "_Μονό κλικ για την ενεργοποίηση αντικειμένων"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "Εμφάνιση _μικρογραφιών:"
+--- xfdesktop4-4.8.3.orig/po/ro.po
++++ xfdesktop4-4.8.3/po/ro.po
+@@ -941,3 +941,9 @@ msgstr "_Montare volum"
- #~ msgid "Show windows on each workspace in sub_menus"
- #~ msgstr "ہر مقام کار میں ونڈوز _ذیلی مینیو میں ظاہر کریں"
+ #~ msgid "Make sure you have a file manager installed that supports the Xfce Trash service, such as Thunar."
+ #~ msgstr "Asigurați-vă ca aveți instalat un manager de fișiere cu suport pentru serviciul Xfce Trash (precum Thunar)."
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "ایک_ کلک پر عناصر کی فعالیت"
++msgstr "Clic _simplu pentru activarea elementelor"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "Arată _miniaturi"
--- xfdesktop4-4.8.3.orig/po/hu.po
+++ xfdesktop4-4.8.3/po/hu.po
-@@ -973,3 +973,6 @@ msgstr "Kötet _csatolása"
+@@ -973,3 +973,9 @@ msgstr "Kötet _csatolása"
#~ msgstr ""
#~ "Győződjön meg, hogy telepítve van az Xfce Kuka szolgáltatást támogató "
#~ "fájlkezelő, például a Thunar."
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
+msgstr "Elemek _aktiválása egy kattintással"
---- xfdesktop4-4.8.3.orig/po/eo.po
-+++ xfdesktop4-4.8.3/po/eo.po
-@@ -1720,3 +1720,6 @@ msgstr ""
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "Bélyegké_pek megjelenítése"
+--- xfdesktop4-4.8.3.orig/po/gl.po
++++ xfdesktop4-4.8.3/po/gl.po
+@@ -1504,3 +1504,9 @@ msgstr "_Montar volume"
- #~ msgid "Delete the current entry"
- #~ msgstr "Forigu la kurantan elementon"
+ #~ msgid "Scientific software"
+ #~ msgstr "Software científico"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "_Unuopa klako por aktivigi erojn"
---- xfdesktop4-4.8.3.orig/po/pt_BR.po
-+++ xfdesktop4-4.8.3/po/pt_BR.po
-@@ -1949,3 +1949,6 @@ msgstr "_Montar volume"
++msgstr "Unha _soa pulsación para activar os elementos"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "Mo_strar miniaturas"
+--- xfdesktop4-4.8.3.orig/po/sq.po
++++ xfdesktop4-4.8.3/po/sq.po
+@@ -1804,3 +1804,9 @@ msgstr "_Monto Vëllimin"
+ #, fuzzy
+ #~ msgid "Scientific software"
+ #~ msgstr "Programe edukimi"
++#: ../thunar/thunar-preferences-dialog.c:436
++msgid "_Single click to activate items"
++msgstr "Klikim _njësh për aktivizim elementësh"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "_Shfaqni miniatura"
+--- xfdesktop4-4.8.3.orig/po/uk.po
++++ xfdesktop4-4.8.3/po/uk.po
+@@ -1731,3 +1731,9 @@ msgstr "_Підключити том"
#~ msgid "Scientific software"
- #~ msgstr "Programas científicos"
+ #~ msgstr "Навчальні програми"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "Clique único para ativar iten_s"
++msgstr "Активація елементів _одинарним клацанням"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "_Показувати мініатюри"
+--- xfdesktop4-4.8.3.orig/po/lv.po
++++ xfdesktop4-4.8.3/po/lv.po
+@@ -1927,3 +1927,9 @@ msgstr "_Montēt sējumu"
+
+ #~ msgid "Scientific software"
+ #~ msgstr "Zinātnes programmatūra"
++#: ../thunar/thunar-preferences-dialog.c:436
++msgid "_Single click to activate items"
++msgstr "_Viens klikšķis, lai aktivizētu vienumus"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "_Rādīt sīktēlus"
--- xfdesktop4-4.8.3.orig/po/ko.po
+++ xfdesktop4-4.8.3/po/ko.po
-@@ -934,3 +934,6 @@ msgstr "볼륨 추출(_j)"
+@@ -934,3 +934,9 @@ msgstr "볼륨 추출(_j)"
msgid "_Mount Volume"
msgstr "볼륨 마운트(_M)"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
+msgstr "싱글클릭으로 아이템 활성화(_S)"
---- xfdesktop4-4.8.3.orig/po/bn.po
-+++ xfdesktop4-4.8.3/po/bn.po
-@@ -1337,3 +1337,6 @@ msgstr "খন্ড মাউন্ট
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "썸네일 보이기(_S)"
+--- xfdesktop4-4.8.3.orig/po/eu.po
++++ xfdesktop4-4.8.3/po/eu.po
+@@ -1741,3 +1741,9 @@ msgstr "Bolumena _muntatu"
- #~ msgid "Web Browser"
- #~ msgstr "ওয়েব ব্রাউজার"
+ #~ msgid "Scientific software"
+ #~ msgstr "Zientzi softwarea"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "আইটেম সক্রিয় করতে ক্লিক করুন (_S)"
---- xfdesktop4-4.8.3.orig/po/sv.po
-+++ xfdesktop4-4.8.3/po/sv.po
-@@ -1855,3 +1855,6 @@ msgstr "_Montera volym"
++msgstr "Klik _bakana elementuak aktibatzeko"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "Argazkitxoak bi_starazi"
+--- xfdesktop4-4.8.3.orig/po/fr.po
++++ xfdesktop4-4.8.3/po/fr.po
+@@ -1769,3 +1769,9 @@ msgstr "_Monter le périphérique"
#~ msgid "Scientific software"
- #~ msgstr "Vetenskaplig programvara"
+ #~ msgstr "Logiciels éducatifs"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "_Enkelklicka för att aktivera ett objekt"
---- xfdesktop4-4.8.3.orig/po/be.po
-+++ xfdesktop4-4.8.3/po/be.po
-@@ -1973,3 +1973,6 @@ msgstr "Пры_мантаваць пад
- #, fuzzy
++msgstr "_Simple clic pour activer les éléments"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "_Montrer les miniatures"
+--- xfdesktop4-4.8.3.orig/po/cs.po
++++ xfdesktop4-4.8.3/po/cs.po
+@@ -2012,3 +2012,9 @@ msgstr "_Připojit svazek"
+
#~ msgid "Scientific software"
- #~ msgstr "Адукацыйныя праграмы"
+ #~ msgstr "Vědecký software"
+#: ../thunar/thunar-preferences-dialog.c:436
+msgid "_Single click to activate items"
-+msgstr "Задзейнічаць элемэнты _самотнай пстрычкай"
++msgstr "_Jednoduché kliknutí pro aktivaci položky"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "Z_obrazovat náhledy"
+--- xfdesktop4-4.8.3.orig/po/si.po
++++ xfdesktop4-4.8.3/po/si.po
+@@ -1328,3 +1328,9 @@ msgstr "පරිමාව _Mount කර
+
+ #~ msgid "Scientific software"
+ #~ msgstr "විද්යාත්මක මෘදුකාංග"
++#: ../thunar/thunar-preferences-dialog.c:436
++msgid "_Single click to activate items"
++msgstr ""
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr ""
+--- xfdesktop4-4.8.3.orig/po/lt.po
++++ xfdesktop4-4.8.3/po/lt.po
+@@ -1548,3 +1548,9 @@ msgstr "_Prijungti tomą"
+
+ #~ msgid "Delete the current entry"
+ #~ msgstr "Ištrinti šį įrašą"
++#: ../thunar/thunar-preferences-dialog.c:436
++msgid "_Single click to activate items"
++msgstr "Aktyvuoti _vienu pelės mygtuko paspaudimu"
++#: ../thunar/thunar-preferences-dialog.c:253
++msgid "_Show thumbnails"
++msgstr "Rodyti _miniatūras"
diff -Nru xfdesktop4-4.8.3/debian/patches/xubuntu_single-click-option.patch xfdesktop4-4.8.3/debian/patches/xubuntu_single-click-option.patch
--- xfdesktop4-4.8.3/debian/patches/xubuntu_single-click-option.patch 2012-01-24 21:34:17.000000000 +0000
+++ xfdesktop4-4.8.3/debian/patches/xubuntu_single-click-option.patch 2012-02-07 19:29:16.000000000 +0000
@@ -11,394 +11,10 @@
has been modified to match the option name in Thunar, so we can reuse
existing translations.
-Last-Update: 2012-01-24
+Last-Update: 2012-02-07
Origin: other, https://bugzilla.xfce.org/attachment.cgi?id=4113
Bug: https://bugzilla.xfce.org/show_bug.cgi?id=1797
---- xfdesktop4-4.8.3.orig/settings/xfdesktop-settings-ui.h
-+++ xfdesktop4-4.8.3/settings/xfdesktop-settings-ui.h
-@@ -651,189 +651,201 @@ static const char xfdesktop_settings_ui[
- "operty name=\"position\">1\n "
- " \n \n "
- " \n
\n True\n \n \n "
-- " False\n "
-- " \n "
-- " \n \n "
-- " \n True\n "
-- " False\n "
-- " True\n "
-- " GDK_POINTER"
-- "_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | G"
-- "DK_BUTTON_RELEASE_MASK\n "
-- " adjustment4\n "
-- " \n "
-- " \n False\n 1\n "
-- " \n \n "
-- " \n "
-- "\n False\n 2\n \n"
-- " \n "
-- " \n \n GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BU"
-- "TTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK\n "
-- " 12\n "
-- " \n "
-- " \n "
-- " True\n "
-- " GDK_POINTER_MOTIO"
-- "N_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUT"
-- "TON_RELEASE_MASK\n Label trans_parency:\n True\n
\n \n "
-- " False\n "
-- " \n "
-- " \n \n "
-- " \n \n "
-+ " True\n "
-+ " True\n "
-+ " GDK_POINTER_"
-+ "MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GD"
-+ "K_BUTTON_RELEASE_MASK\n <"
-+ "property name=\"label\" translatable=\"yes\">_Single click to activate "
-+ "items\n True\n True\n "
-+ "
\n \n "
-+ " \n \n "
-+ " True\n "
-+ " GDK_POINTER_MOTION_MASK | GDK_PO"
-+ "INTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MAS"
-+ "K\n 4\n \n "
-+ " \n True\n "
-+ " True\n "
-+ " GDK_POINTER_MOTION_MASK "
-+ "| GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_REL"
-+ "EASE_MASK\n Use custom _font size:\n"
-+ " True\n True\n "
-- " GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTIO"
-- "N_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK\n Specify the transparency level for the rounded"
-- " label drawn behind the icon text\n "
-- " adjustment5\n "
-- " 0\n GTK_POS_RIGHT\n "
-- "object>\n \n "
-- " 1\n "
-- " \n "
-- " \n \n "
-- " \n "
-- " 3\n "
-- " \n \n "
-- " \n \n \n \n \n "
-- " \n "
-- " True\n "
-- " GDK_POINTER_MOTION_MASK | GDK_POINTER"
-- "_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK\n <b>Appearance</b>\n "
-- " True\n "
-- " \n \n "
-- " \n \n "
-- " False\n "
-- " \n \n \n"
-- " \n "
-- " True\n "
-+ "e=\"draw_indicator\">True\n "
-+ " \n \n "
-+ " False\n \n "
-+ " \n \n \n True\n "
-+ " False\n "
-+ " True"
-+ "\n GDK"
-+ "_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_"
-+ "MASK | GDK_BUTTON_RELEASE_MASK\n "
-+ " adjustment4\n "
-+ "
\n "
-+ " \n False\n "
-+ " 1\n "
-+ " \n \n"
-+ " \n "
-+ " \n False\n 2\n \n \n "
-+ " \n \n GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK"
-+ " | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK\n "
-+ " 12\n "
-+ " \n "
-+ " \n "
-+ " True\n "
-+ " GDK_POIN"
-+ "TER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK "
-+ "| GDK_BUTTON_RELEASE_MASK\n "
-+ " Label trans_parenc"
-+ "y:\n True\n "
-+ "\n \n "
-+ " False"
-+ "\n \n "
-+ " \n \n"
-+ " \n True\n True\n "
-+ " GDK_POINTER_MOTION_MASK | GDK_POINTE"
-+ "R_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK\n Specify the transparency level for the "
-+ "rounded label drawn behind the icon text\n "
-+ " adjustment5\n "
-+ "0\n GTK_POS_RIGHT\n "
-+ " \n \n "
-+ " 1\n \n "
-+ " \n \n \n "
-+ " 3\n "
-+ " \n "
-+ "\n \n "
-+ "\n \n "
-+ "\n \n "
-+ " \n "
-+ " True\n "
- " GDK_POINTER_MOTION_MASK | GDK_"
- "POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_M"
-- "ASK\n 0\n G"
-- "TK_SHADOW_NONE\n \n "
-- " \n "
-- " True\n "
-- " GDK_POINTER_MOTION_M"
-- "ASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON"
-- "_RELEASE_MASK\n 6\n 6\n \n "
-- " \n True\n True\n GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK "
-- "| GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK\n "
-- " GTK_POLICY_"
-- "AUTOMATIC\n GTK_POLICY_AUTOMATIC\n "
-- " GTK_SHADOW_ETCHED_IN\n \n "
-- " "
-- "\n True"
-- "property>\n True\n GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | G"
-- "DK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK\n "
-- " False\n \n "
-- " \n \n "
-- " \n \n "
-- " \n \n \n True\n GDK_POINTE"
-- "R_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | "
-- "GDK_BUTTON_RELEASE_MASK\n <b>Default Icons</b>"
-- "\n "
-- "True\n \n "
-- " \n \n "
-- " \n 1\n \n \n"
-- " \n \n "
-- "\n \n True\n GDK_POINTER_MOTION_MA"
-- "SK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_"
-- "RELEASE_MASK\n _Icons\n True\n \n "
-- " \n 2\n False\n \n \n "
-- " \n \n \n "
-- " \n 1\n "
-- " \n \n \n \n True\n "
-- " GDK_POINTER_MOTION_MASK | GDK_POINT"
-- "ER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK"
-- "property>\n \n \n True\n True\n"
-- " True\n "
-- " GDK_POINTER_MOTION_MASK | GDK_P"
-- "OINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MA"
-- "SK\n gtk-help\n True\n "
-- " \n \n \n "
-- " \n True
\n True\n True\n GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PR"
-- "ESS_MASK | GDK_BUTTON_RELEASE_MASK\n gtk-close\n True\n \n \n 1\n "
-- " \n \n \n "
-- " \n False\n "
-- " GTK_PACK_END\n "
-- " \n \n \n \n \n button2\n button1\n "
-- " \n \n\n"
-+ "ASK\n <b>Appearance</b>\n "
-+ " True\n "
-+ " \n \n "
-+ " \n \n "
-+ " False\n "
-+ " \n \n <"
-+ "child>\n "
-+ "\n True\n "
-+ " GDK_POINTER_MOTION_MAS"
-+ "K | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_R"
-+ "ELEASE_MASK\n 0\n GTK_SHADOW_NONE\n \n "
-+ " \n True\n GDK_POINTER_M"
-+ "OTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK"
-+ "_BUTTON_RELEASE_MASK\n 6\n 6\n \n \n True\n True\n GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HI"
-+ "NT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK\n "
-+ " GTK"
-+ "_POLICY_AUTOMATIC\n GTK_POLICY_AUTOMATIC\n "
-+ " GTK_SHADOW_ETCHED_"
-+ "IN\n \n "
-+ " \n True\n True\n GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_M"
-+ "ASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK\n "
-+ " False"
-+ "\n \n "
-+ " \n
\n "
-+ " \n \n \n \n \n True"
-+ "\n GDK_"
-+ "POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_M"
-+ "ASK | GDK_BUTTON_RELEASE_MASK\n <"
-+ "property name=\"label\" translatable=\"yes\"><b>Default Icons<"
-+ "/b>\n True\n \n "
-+ " \n \n "
-+ " \n 1"
-+ "\n \n \n \n \n "
-+ " \n \n True\n GDK_POINTER_MOT"
-+ "ION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_B"
-+ "UTTON_RELEASE_MASK\n _Icons\n True\n "
-+ "\n \n 2\n F"
-+ "alse\n \n "
-+ "\n \n \n \n "
-+ " \n 1\n \n \n \n \n True\n GDK_POINTER_MOTION_MASK | GD"
-+ "K_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE"
-+ "_MASK\n \n \n T"
-+ "rue\n True\n True\n GDK_POINTER_MOTION_MASK "
-+ "| GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_REL"
-+ "EASE_MASK\n gtk-help"
-+ "\n True\n \n \n \n"
-+ " \n "
-+ " True\n True\n True\n GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUT"
-+ "TON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK\n gtk-close\n True\n
\n "
-+ " \n 1"
-+ "\n \n \n \n"
-+ " \n False\n GTK_PACK_END\n"
-+ " \n \n \n \n"
-+ " \n button2\n button1\n \n \n\n"
- };
-
--static const unsigned xfdesktop_settings_ui_length = 56448u;
-+static const unsigned xfdesktop_settings_ui_length = 57281u;
-
--- xfdesktop4-4.8.3.orig/settings/main.c
+++ xfdesktop4-4.8.3/settings/main.c
@@ -69,6 +69,7 @@
diff -Nru xfdesktop4-4.8.3/debian/patches/xubuntu_use-tumbler.patch xfdesktop4-4.8.3/debian/patches/xubuntu_use-tumbler.patch
--- xfdesktop4-4.8.3/debian/patches/xubuntu_use-tumbler.patch 2012-01-24 21:53:49.000000000 +0000
+++ xfdesktop4-4.8.3/debian/patches/xubuntu_use-tumbler.patch 2012-02-07 19:29:16.000000000 +0000
@@ -1,49 +1,15 @@
-From 671ad508d0e86581f5ac81f777bda27f775ae56e Mon Sep 17 00:00:00 2001
-From: Eric Koegel
-Date: Sat, 14 Jan 2012 19:35:15 +0300
-Subject: [PATCH] Thumbnail desktop icons from tumblerd and display icon
- tooltips
-
-Adds support for drawing thumbnails from the dbus thumbnail
-service. Adds a show-thumbnails xfconf property to toggle showing
-thumbnails. Moves the marshal.list into common to allow
-xfdesktop-settings to use thumbnails as well. It's possible to
-add code to fallback to gdk_pixbuf loading in a worker thread
-in the future should tumblerd not be installed but this isn't
-implemented or needed for this patch to operate. This patch
-also sets it so that xfdesktop will display preview icons on
-the tooltip popup. For bug 4344.
-
-Slightly modified for Xubuntu to apply cleanly, to comment out debug
-statements, to remove the preview icon from the tooltip and to disable
-thumbnails by default.
-
-Last-Update: 2012-01-17
-Origin: other, https://bugzilla.xfce.org/attachment.cgi?id=4102
+Description: use Tumbler to generate thumbnails on desktop
+ Slightly modified for Xubuntu to apply cleanly, comment out debug
+ statements, remove the thumbnail from the icon tooltip and disable
+ thumbnails by default. The added string has been modified to match
+ the option name in Thunar, so we can reuse existing translations
+ (yes, there's a mnemonics conflict, I know).
+Last-Update: 2012-02-07
+Origin: other, https://bugzilla.xfce.org/attachment.cgi?id=4168
Bug: https://bugzilla.xfce.org/show_bug.cgi?id=4344
----
- common/Makefile.am | 37 +++-
- common/xfdesktop-marshal.list | 4 +
- common/xfdesktop-thumbnailer.c | 588 +++++++++++++++++++++++++++++++++++++
- common/xfdesktop-thumbnailer.h | 101 +++++++
- src/Makefile.am | 16 +-
- src/xfdesktop-file-icon-manager.c | 124 ++++++++-
- src/xfdesktop-file-icon-manager.h | 4 +
- src/xfdesktop-icon.c | 31 ++
- src/xfdesktop-icon.h | 6 +
- src/xfdesktop-marshal.list | 2 -
- src/xfdesktop-regular-file-icon.c | 78 +++++-
- 12 files changed, 969 insertions(+), 23 deletions(-)
- create mode 100644 common/xfdesktop-marshal.list
- create mode 100644 common/xfdesktop-thumbnailer.c
- create mode 100644 common/xfdesktop-thumbnailer.h
- delete mode 100644 src/xfdesktop-marshal.list
-
-diff --git a/common/Makefile.am b/common/Makefile.am
-index b6145ba..1af6ac8 100644
---- a/common/Makefile.am
-+++ b/common/Makefile.am
+--- xfdesktop4-4.8.3.orig/common/Makefile.am
++++ xfdesktop4-4.8.3/common/Makefile.am
@@ -2,9 +2,44 @@ noinst_LTLIBRARIES = libxfdesktop.la
libxfdesktop_la_SOURCES = \
@@ -90,22 +56,16 @@
+
+EXTRA_DIST = \
+ xfdesktop-marshal.list
-diff --git a/common/xfdesktop-marshal.list b/common/xfdesktop-marshal.list
-new file mode 100644
-index 0000000..8fe4148
--- /dev/null
-+++ b/common/xfdesktop-marshal.list
++++ xfdesktop4-4.8.3/common/xfdesktop-marshal.list
@@ -0,0 +1,4 @@
+BOOLEAN:VOID
+BOOLEAN:ENUM,INT
+VOID:UINT,BOXED
+VOID:STRING,STRING
-diff --git a/common/xfdesktop-thumbnailer.c b/common/xfdesktop-thumbnailer.c
-new file mode 100644
-index 0000000..20bf489
--- /dev/null
-+++ b/common/xfdesktop-thumbnailer.c
-@@ -0,0 +1,588 @@
++++ xfdesktop4-4.8.3/common/xfdesktop-thumbnailer.c
+@@ -0,0 +1,571 @@
+/*
+ * xfdesktop - xfce4's desktop manager
+ *
@@ -149,42 +109,26 @@
+#include "xfdesktop-thumbnailer.h"
+#include "xfdesktop-marshal.h"
+
-+static void
-+xfdesktop_thumbnailer_init (GObject *);
-+static void
-+xfdesktop_thumbnailer_class_init (GObjectClass *);
++static void xfdesktop_thumbnailer_init(GObject *);
++static void xfdesktop_thumbnailer_class_init(GObjectClass *);
+
-+static void
-+xfdesktop_thumbnailer_dispose (GObject *object);
-+static void
-+xfdesktop_thumbnailer_finalize (GObject *object);
++static void xfdesktop_thumbnailer_dispose(GObject *object);
++static void xfdesktop_thumbnailer_finalize(GObject *object);
+
-+static void
-+xfdesktop_thumbnailer_request_finished_dbus (
-+ DBusGProxy *proxy,
-+ gint handle,
-+ gpointer data);
-+static void
-+xfdesktop_thumbnailer_thumbnail_ready_dbus (
-+ DBusGProxy *proxy,
-+ gint handle,
-+ const gchar **uri,
-+ gpointer data);
++static void xfdesktop_thumbnailer_request_finished_dbus(DBusGProxy *proxy,
++ gint handle,
++ gpointer data);
++
++static void xfdesktop_thumbnailer_thumbnail_ready_dbus(DBusGProxy *proxy,
++ gint handle,
++ const gchar **uri,
++ gpointer data);
+
-+static gboolean
-+xfdesktop_thumbnailer_queue_request_timer (XfdesktopThumbnailer *thumbnailer);
++static gboolean xfdesktop_thumbnailer_queue_request_timer(XfdesktopThumbnailer *thumbnailer);
+
+static GObjectClass *parent_class = NULL;
+static XfdesktopThumbnailer *thumbnailer_object = NULL;
+
-+typedef enum
-+{
-+ XFDESKTOP_NULL_SERVICE,
-+ XFDESKTOP_THUMBNAILER_SERVICE,
-+ XFDESKTOP_GTK_SERVICE,
-+ XFDESKTOP_SERVICE_COUNT
-+} XFDESKTOP_ICON_SERVICE;
-+
+enum
+{
+ THUMBNAIL_READY,
@@ -194,11 +138,11 @@
+static guint thumbnailer_signals[LAST_SIGNAL] = { 0, };
+
+GType
-+xfdesktop_thumbnailer_get_type (void)
++xfdesktop_thumbnailer_get_type(void)
+{
+ static GType xfdesktop_thumbnailer_type = 0;
+
-+ if (!xfdesktop_thumbnailer_type) {
++ if(!xfdesktop_thumbnailer_type) {
+ static const GTypeInfo xfdesktop_thumbnailer_info =
+ {
+ sizeof (XfdesktopThumbnailerClass),
@@ -213,11 +157,11 @@
+ NULL
+ };
+
-+ xfdesktop_thumbnailer_type = g_type_register_static (
-+ G_TYPE_OBJECT,
-+ "XfdesktopThumbnailer",
-+ &xfdesktop_thumbnailer_info,
-+ 0);
++ xfdesktop_thumbnailer_type = g_type_register_static(
++ G_TYPE_OBJECT,
++ "XfdesktopThumbnailer",
++ &xfdesktop_thumbnailer_info,
++ 0);
+ }
+ return xfdesktop_thumbnailer_type;
+}
@@ -229,78 +173,69 @@
+ GSList *queue;
+ gchar **supported_mimetypes;
+ gint handle;
-+ XFDESKTOP_ICON_SERVICE service;
+
-+ gint request_timer_id;
++ gint request_timer_id;
+};
+
+static void
-+xfdesktop_thumbnailer_init (GObject *object)
++xfdesktop_thumbnailer_init(GObject *object)
+{
+ XfdesktopThumbnailer *thumbnailer;
+ DBusGConnection *connection;
+
-+ thumbnailer = XFDESKTOP_THUMBNAILER (object);
++ thumbnailer = XFDESKTOP_THUMBNAILER(object);
+
-+ thumbnailer->priv = g_new0 (XfdesktopThumbnailerPriv, 1);
++ thumbnailer->priv = g_new0(XfdesktopThumbnailerPriv, 1);
+
+ connection = dbus_g_bus_get(DBUS_BUS_SESSION, NULL);
+
-+ if (connection) {
-+ thumbnailer->priv->proxy = dbus_g_proxy_new_for_name (
-+ connection,
-+ "org.freedesktop.thumbnails.Thumbnailer1",
-+ "/org/freedesktop/thumbnails/Thumbnailer1",
-+ "org.freedesktop.thumbnails.Thumbnailer1");
++ if(connection) {
++ thumbnailer->priv->proxy = dbus_g_proxy_new_for_name(
++ connection,
++ "org.freedesktop.thumbnails.Thumbnailer1",
++ "/org/freedesktop/thumbnails/Thumbnailer1",
++ "org.freedesktop.thumbnails.Thumbnailer1");
+
+ if(thumbnailer->priv->proxy) {
+ gchar **supported_uris;
+
-+ /* We have a thumbnail service */
-+ thumbnailer->priv->service = XFDESKTOP_THUMBNAILER_SERVICE;
-+
-+ dbus_g_object_register_marshaller (
++ dbus_g_object_register_marshaller(
+ (GClosureMarshal) xfdesktop_marshal_VOID__UINT_BOXED,
+ G_TYPE_NONE, G_TYPE_UINT,
+ G_TYPE_STRV, G_TYPE_INVALID);
+
-+ dbus_g_proxy_add_signal (
++ dbus_g_proxy_add_signal(
+ thumbnailer->priv->proxy,
+ "Finished", G_TYPE_UINT, G_TYPE_INVALID);
-+ dbus_g_proxy_add_signal (
++ dbus_g_proxy_add_signal(
+ thumbnailer->priv->proxy,
+ "Ready", G_TYPE_UINT, G_TYPE_STRV, G_TYPE_INVALID);
-+
-+ dbus_g_proxy_connect_signal (
++
++ dbus_g_proxy_connect_signal(
+ thumbnailer->priv->proxy,
+ "Finished", G_CALLBACK (xfdesktop_thumbnailer_request_finished_dbus),
+ thumbnailer, NULL);
-+ dbus_g_proxy_connect_signal (
++ dbus_g_proxy_connect_signal(
+ thumbnailer->priv->proxy,
+ "Ready", G_CALLBACK(xfdesktop_thumbnailer_thumbnail_ready_dbus),
+ thumbnailer, NULL);
+
-+ dbus_g_proxy_call (thumbnailer->priv->proxy, "GetSupported", NULL, G_TYPE_INVALID,
-+ G_TYPE_STRV, &supported_uris,
-+ G_TYPE_STRV, &thumbnailer->priv->supported_mimetypes,
-+ G_TYPE_INVALID);
-+
-+ } else {
-+ /* We don't have a thumbnail service, use the GTK one */
-+ thumbnailer->priv->service = XFDESKTOP_GTK_SERVICE;
++ dbus_g_proxy_call(thumbnailer->priv->proxy, "GetSupported", NULL, G_TYPE_INVALID,
++ G_TYPE_STRV, &supported_uris,
++ G_TYPE_STRV, &thumbnailer->priv->supported_mimetypes,
++ G_TYPE_INVALID);
+ }
+
-+ dbus_g_connection_unref (connection);
++ dbus_g_connection_unref(connection);
+ }
+}
+
+static void
+xfdesktop_thumbnailer_class_init (GObjectClass *object_class)
+{
-+ XfdesktopThumbnailerClass *thumbnailer_class = XFDESKTOP_THUMBNAILER_CLASS (
-+ object_class);
++ XfdesktopThumbnailerClass *thumbnailer_class = XFDESKTOP_THUMBNAILER_CLASS(object_class);
+
-+ parent_class = g_type_class_peek_parent (thumbnailer_class);
++ parent_class = g_type_class_peek_parent(thumbnailer_class);
+
+ object_class->dispose = xfdesktop_thumbnailer_dispose;
+ object_class->finalize = xfdesktop_thumbnailer_finalize;
@@ -322,9 +257,9 @@
+ *
+ */
+static void
-+xfdesktop_thumbnailer_dispose (GObject *object)
++xfdesktop_thumbnailer_dispose(GObject *object)
+{
-+ XfdesktopThumbnailer *thumbnailer = XFDESKTOP_THUMBNAILER (object);
++ XfdesktopThumbnailer *thumbnailer = XFDESKTOP_THUMBNAILER(object);
+
+ if(thumbnailer->priv->proxy)
+ g_object_unref(thumbnailer->priv->proxy);
@@ -332,8 +267,8 @@
+ if(thumbnailer->priv->supported_mimetypes)
+ g_free(thumbnailer->priv->supported_mimetypes);
+
-+ if (thumbnailer->priv) {
-+ g_free (thumbnailer->priv);
++ if(thumbnailer->priv) {
++ g_free(thumbnailer->priv);
+ thumbnailer->priv = NULL;
+ }
+
@@ -346,12 +281,10 @@
+ *
+ */
+static void
-+xfdesktop_thumbnailer_finalize (GObject *object)
++xfdesktop_thumbnailer_finalize(GObject *object)
+{
+}
+
-+
-+
+/**
+ * xfdesktop_thumbnailer_new:
+ *
@@ -359,12 +292,12 @@
+ * Singleton
+ */
+XfdesktopThumbnailer *
-+xfdesktop_thumbnailer_new (void)
++xfdesktop_thumbnailer_new(void)
+{
-+ if (thumbnailer_object == NULL) {
-+ thumbnailer_object = g_object_new (XFDESKTOP_TYPE_THUMBNAILER, NULL);
++ if(thumbnailer_object == NULL) {
++ thumbnailer_object = g_object_new(XFDESKTOP_TYPE_THUMBNAILER, NULL);
+ } else {
-+ g_object_ref (thumbnailer_object);
++ g_object_ref(thumbnailer_object);
+ }
+
+ return thumbnailer_object;
@@ -377,50 +310,49 @@
+ GFileInfo *file_info;
+ gchar *mime_type = NULL;
+
-+ g_return_val_if_fail (file != NULL, NULL);
++ g_return_val_if_fail(file != NULL, NULL);
+
-+ temp_file = g_file_new_for_path (file);
-+ file_info = g_file_query_info (temp_file,
-+ "standard::content-type",
-+ 0,
-+ NULL,
-+ NULL);
++ temp_file = g_file_new_for_path(file);
+
-+ mime_type = g_strdup(g_file_info_get_content_type (file_info));
++ g_return_val_if_fail(temp_file != NULL, NULL);
++
++ file_info = g_file_query_info(temp_file,
++ "standard::content-type",
++ 0,
++ NULL,
++ NULL);
++
++ if(file_info != NULL) {
++ mime_type = g_strdup(g_file_info_get_content_type(file_info));
++
++ g_object_unref(file_info);
++ }
+
-+ g_object_unref (file_info);
-+ g_object_unref (temp_file);
++ g_object_unref(temp_file);
+
+ return mime_type;
+}
+
+gboolean
-+xfdesktop_thumbnailer_is_supported (XfdesktopThumbnailer *thumbnailer,
-+ gchar *file)
++xfdesktop_thumbnailer_is_supported(XfdesktopThumbnailer *thumbnailer,
++ gchar *file)
+{
+ guint n;
+ gchar *mime_type = NULL;
+
-+ g_return_val_if_fail (XFDESKTOP_IS_THUMBNAILER (thumbnailer), FALSE);
-+ g_return_val_if_fail (file != NULL, FALSE);
++ g_return_val_if_fail(XFDESKTOP_IS_THUMBNAILER(thumbnailer), FALSE);
++ g_return_val_if_fail(file != NULL, FALSE);
+
-+ mime_type = xfdesktop_get_file_mimetype (file);
++ mime_type = xfdesktop_get_file_mimetype(file);
+
-+ if (!mime_type) {
-+ g_warning ("File has no mime type");
++ if(mime_type == NULL) {
++ g_warning("File has no mime type");
+ return FALSE;
+ }
+
-+ if(thumbnailer->priv->service == XFDESKTOP_GTK_SERVICE) {
-+ /* This is a hack because I don't want to test and hard code
-+ * every mime type gdk supports. */
-+ gboolean ret = g_str_has_prefix(mime_type, "image/");
-+
-+ g_free(mime_type);
-+ return ret;
-+ } else if (thumbnailer->priv->supported_mimetypes != NULL) {
-+ for (n = 0; thumbnailer->priv->supported_mimetypes[n] != NULL; ++n) {
-+ if (g_content_type_is_a (mime_type, thumbnailer->priv->supported_mimetypes[n])) {
++ if(thumbnailer->priv->supported_mimetypes != NULL) {
++ for(n = 0; thumbnailer->priv->supported_mimetypes[n] != NULL; ++n) {
++ if(g_content_type_is_a (mime_type, thumbnailer->priv->supported_mimetypes[n])) {
+ g_free(mime_type);
+ return TRUE;
+ }
@@ -431,95 +363,106 @@
+ return FALSE;
+}
+
++/**
++ * xfdesktop_thumbnailer_queue_thumbnail:
++ *
++ * Queues a file for thumbnail creation.
++ * A "thumbnail-ready" signal will be emitted when the thumbnail is ready.
++ * The signal will pass 2 parameters: a gchar *file which will be file
++ * that's passed in here and a gchar *thumbnail_file which will be the
++ * location of the thumbnail.
++ */
+gboolean
-+xfdesktop_thumbnailer_queue_thumbnail (
-+ XfdesktopThumbnailer *thumbnailer,
-+ gchar *file)
++xfdesktop_thumbnailer_queue_thumbnail(XfdesktopThumbnailer *thumbnailer,
++ gchar *file)
+{
-+ g_return_val_if_fail (XFDESKTOP_IS_THUMBNAILER (thumbnailer), FALSE);
-+ g_return_val_if_fail (file != NULL, FALSE);
++ g_return_val_if_fail(XFDESKTOP_IS_THUMBNAILER(thumbnailer), FALSE);
++ g_return_val_if_fail(file != NULL, FALSE);
+
+ if(!xfdesktop_thumbnailer_is_supported(thumbnailer, file)) {
+ /*g_debug("file: %s not supported", file);*/
+ return FALSE;
+ }
-+ if (thumbnailer->priv->request_timer_id) {
-+ g_source_remove (thumbnailer->priv->request_timer_id);
++ if(thumbnailer->priv->request_timer_id) {
++ g_source_remove(thumbnailer->priv->request_timer_id);
+
-+ if (thumbnailer->priv->handle) {
-+ if(thumbnailer->priv->service == XFDESKTOP_THUMBNAILER_SERVICE) {
-+ if(dbus_g_proxy_call(thumbnailer->priv->proxy,
-+ "Dequeue",
-+ NULL,
-+ G_TYPE_UINT, thumbnailer->priv->handle,
-+ G_TYPE_INVALID) == FALSE)
-+ {
-+ g_warning("Dequeue of thumbnailer->priv->handle: %d failed", thumbnailer->priv->handle);
-+ }
++ if(thumbnailer->priv->handle && thumbnailer->priv->proxy != NULL) {
++ if(dbus_g_proxy_call(thumbnailer->priv->proxy,
++ "Dequeue",
++ NULL,
++ G_TYPE_UINT, thumbnailer->priv->handle,
++ G_TYPE_INVALID) == FALSE)
++ {
++ g_warning("Dequeue of thumbnailer->priv->handle: %d failed",
++ thumbnailer->priv->handle);
+ }
++
+ thumbnailer->priv->handle = 0;
+ }
+ }
+
-+ if (g_slist_find (thumbnailer->priv->queue, file) == NULL) {
-+ thumbnailer->priv->queue = g_slist_prepend (thumbnailer->priv->queue,
-+ file);
++ if(g_slist_find(thumbnailer->priv->queue, file) == NULL) {
++ thumbnailer->priv->queue = g_slist_prepend(thumbnailer->priv->queue,
++ file);
+ }
+
-+ thumbnailer->priv->request_timer_id = g_timeout_add_full (
-+ G_PRIORITY_LOW,
-+ 300,
-+ (GSourceFunc)xfdesktop_thumbnailer_queue_request_timer,
-+ thumbnailer,
-+ NULL);
++ thumbnailer->priv->request_timer_id = g_timeout_add_full(
++ G_PRIORITY_LOW,
++ 300,
++ (GSourceFunc)xfdesktop_thumbnailer_queue_request_timer,
++ thumbnailer,
++ NULL);
+
-+
+ return TRUE;
+}
+
++/**
++ * xfdesktop_thumbnailer_dequeue_thumbnail:
++ *
++ * Removes a file from the list of pending thumbnail creations.
++ * This is not guaranteed to always remove the file, if processing
++ * of that thumbnail has started it won't stop.
++ */
+void
-+xfdesktop_thumbnailer_dequeue_thumbnail (
-+ XfdesktopThumbnailer *thumbnailer,
-+ gchar *file)
++xfdesktop_thumbnailer_dequeue_thumbnail(XfdesktopThumbnailer *thumbnailer,
++ gchar *file)
+{
-+ g_return_if_fail ( XFDESKTOP_IS_THUMBNAILER (thumbnailer) );
-+ g_return_if_fail ( file != NULL );
-+
-+ if (thumbnailer->priv->request_timer_id) {
-+ g_source_remove (thumbnailer->priv->request_timer_id);
++ g_return_if_fail(XFDESKTOP_IS_THUMBNAILER(thumbnailer));
++ g_return_if_fail(file != NULL);
+
-+ if (thumbnailer->priv->handle) {
-+ if(thumbnailer->priv->service == XFDESKTOP_THUMBNAILER_SERVICE) {
-+ if(dbus_g_proxy_call(thumbnailer->priv->proxy,
-+ "Dequeue",
-+ NULL,
-+ G_TYPE_UINT, thumbnailer->priv->handle,
-+ G_TYPE_INVALID) == FALSE)
-+ {
-+ g_warning("Dequeue of thumbnailer->priv->handle: %d failed", thumbnailer->priv->handle);
-+ }
++ if(thumbnailer->priv->request_timer_id) {
++ g_source_remove(thumbnailer->priv->request_timer_id);
++
++ if(thumbnailer->priv->handle && thumbnailer->priv->proxy) {
++ if(dbus_g_proxy_call(thumbnailer->priv->proxy,
++ "Dequeue",
++ NULL,
++ G_TYPE_UINT, thumbnailer->priv->handle,
++ G_TYPE_INVALID) == FALSE)
++ {
++ g_warning("Dequeue of thumbnailer->priv->handle: %d failed",
++ thumbnailer->priv->handle);
+ }
+ }
+ thumbnailer->priv->handle = 0;
+ }
+
-+ if (g_slist_find (thumbnailer->priv->queue, file) != NULL) {
-+ thumbnailer->priv->queue = g_slist_remove_all (
-+ thumbnailer->priv->queue,
-+ file);
++ if(g_slist_find(thumbnailer->priv->queue, file) != NULL) {
++ thumbnailer->priv->queue = g_slist_remove_all(
++ thumbnailer->priv->queue,
++ file);
+ }
+
-+ thumbnailer->priv->request_timer_id = g_timeout_add_full (
-+ G_PRIORITY_LOW,
-+ 300,
-+ (GSourceFunc)xfdesktop_thumbnailer_queue_request_timer,
-+ thumbnailer,
-+ NULL);
++ thumbnailer->priv->request_timer_id = g_timeout_add_full(
++ G_PRIORITY_LOW,
++ 300,
++ (GSourceFunc)xfdesktop_thumbnailer_queue_request_timer,
++ thumbnailer,
++ NULL);
+}
+
+static gboolean
-+xfdesktop_thumbnailer_queue_request_timer (
-+ XfdesktopThumbnailer *thumbnailer)
++xfdesktop_thumbnailer_queue_request_timer(XfdesktopThumbnailer *thumbnailer)
+{
+ gchar **uris;
+ gchar **mimetypes;
@@ -528,46 +471,40 @@
+ GFile *file;
+ GError *error = NULL;
+
-+ g_return_val_if_fail ( XFDESKTOP_IS_THUMBNAILER (thumbnailer), FALSE);
++ g_return_val_if_fail(XFDESKTOP_IS_THUMBNAILER(thumbnailer), FALSE);
+
-+ uris = g_new0 (gchar *,
-+ g_slist_length(thumbnailer->priv->queue) + 1);
-+ mimetypes = g_new0 (gchar *,
-+ g_slist_length (thumbnailer->priv->queue) + 1);
++ uris = g_new0(gchar *,
++ g_slist_length(thumbnailer->priv->queue) + 1);
++ mimetypes = g_new0(gchar *,
++ g_slist_length (thumbnailer->priv->queue) + 1);
+
+ iter = thumbnailer->priv->queue;
-+ while (iter) {
-+ if (iter->data) {
++ while(iter) {
++ if(iter->data) {
+ file = g_file_new_for_path(iter->data);
-+ uris[i] = g_file_get_uri (file);
-+ mimetypes[i] = xfdesktop_get_file_mimetype (iter->data);
++ uris[i] = g_file_get_uri(file);
++ mimetypes[i] = xfdesktop_get_file_mimetype(iter->data);
+ g_object_unref(file);
+ }
+ iter = g_slist_next(iter);
+ i++;
+ }
+
-+ if(thumbnailer->priv->service == XFDESKTOP_THUMBNAILER_SERVICE) {
++ if(thumbnailer->priv->proxy != NULL) {
+ if(dbus_g_proxy_call(thumbnailer->priv->proxy,
-+ "Queue",
-+ &error,
-+ G_TYPE_STRV, uris,
-+ G_TYPE_STRV, mimetypes,
-+ G_TYPE_STRING, "normal",
-+ G_TYPE_STRING, "default",
-+ G_TYPE_UINT, 0,
-+ G_TYPE_INVALID,
-+ G_TYPE_UINT, &thumbnailer->priv->handle,
-+ G_TYPE_INVALID) == FALSE)
++ "Queue",
++ &error,
++ G_TYPE_STRV, uris,
++ G_TYPE_STRV, mimetypes,
++ G_TYPE_STRING, "normal",
++ G_TYPE_STRING, "default",
++ G_TYPE_UINT, 0,
++ G_TYPE_INVALID,
++ G_TYPE_UINT, &thumbnailer->priv->handle,
++ G_TYPE_INVALID) == FALSE)
+ {
-+ if (NULL != error) {
-+ g_warning("DBUS-call failed:%s", error->message);
-+ if ((error->domain == DBUS_GERROR) &&
-+ (error->code == DBUS_GERROR_SERVICE_UNKNOWN))
-+ {
-+ /* TODO: fall back to gtk */
-+ }
-+ }
++ if(error != NULL)
++ g_warning("DBUS-call failed: %s", error->message);
+ }
+ }
+
@@ -583,80 +520,86 @@
+}
+
+static void
-+xfdesktop_thumbnailer_request_finished_dbus (
-+ DBusGProxy *proxy,
-+ gint handle,
-+ gpointer data)
++xfdesktop_thumbnailer_request_finished_dbus(DBusGProxy *proxy,
++ gint handle,
++ gpointer data)
+{
-+ XfdesktopThumbnailer *thumbnailer = XFDESKTOP_THUMBNAILER (data);
++ XfdesktopThumbnailer *thumbnailer = XFDESKTOP_THUMBNAILER(data);
+
-+ g_return_if_fail ( XFDESKTOP_IS_THUMBNAILER (thumbnailer) );
++ g_return_if_fail(XFDESKTOP_IS_THUMBNAILER(thumbnailer));
+
+ thumbnailer->priv->handle = 0;
+}
+
+static void
-+xfdesktop_thumbnailer_thumbnail_ready_dbus (
-+ DBusGProxy *proxy,
-+ gint handle,
-+ const gchar **uri,
-+ gpointer data)
++xfdesktop_thumbnailer_thumbnail_ready_dbus(DBusGProxy *proxy,
++ gint handle,
++ const gchar **uri,
++ gpointer data)
+{
-+ XfdesktopThumbnailer *thumbnailer = XFDESKTOP_THUMBNAILER (data);
++ XfdesktopThumbnailer *thumbnailer = XFDESKTOP_THUMBNAILER(data);
+ gchar *thumbnail_location;
+ GFile *file;
+ GSList *iter = thumbnailer->priv->queue;
+ gchar *f_uri, *f_uri_checksum, *filename;
+ gint x = 0;
+
-+ g_return_if_fail ( XFDESKTOP_IS_THUMBNAILER (thumbnailer) );
++ g_return_if_fail(XFDESKTOP_IS_THUMBNAILER(thumbnailer));
+
-+ while (iter) {
-+ if ((uri[x] == NULL) || (iter->data == NULL)) {
++ while(iter) {
++ if((uri[x] == NULL) || (iter->data == NULL)) {
+ break;
+ }
+
+ file = g_file_new_for_path(iter->data);
-+ f_uri = g_file_get_uri (file);
++ f_uri = g_file_get_uri(file);
+
-+ if (strcmp (uri[x], f_uri) == 0) {
++ if(strcmp (uri[x], f_uri) == 0) {
+ /* The thumbnail is in the format/location
+ * /homedir/.thumbnails/normal/MD5_Hash_Of_URI.png
+ */
-+ f_uri_checksum = g_compute_checksum_for_string (G_CHECKSUM_MD5,
-+ f_uri, strlen (f_uri));
-+ filename = g_strconcat (f_uri_checksum, ".png", NULL);
-+
-+ thumbnail_location = g_build_path ("/", g_get_home_dir(),
-+ ".thumbnails", "normal",
-+ filename, NULL);
++ f_uri_checksum = g_compute_checksum_for_string(G_CHECKSUM_MD5,
++ f_uri, strlen (f_uri));
++ filename = g_strconcat(f_uri_checksum, ".png", NULL);
++
++ thumbnail_location = g_build_path("/", g_get_home_dir(),
++ ".thumbnails", "normal",
++ filename, NULL);
+
+ /*g_debug("thumbnail-ready src: %s thumbnail: %s",
-+ (char*)iter->data,
-+ thumbnail_location);*/
++ (char*)iter->data,
++ thumbnail_location);*/
++
+ g_signal_emit(G_OBJECT(thumbnailer),
+ thumbnailer_signals[THUMBNAIL_READY],
+ 0,
+ iter->data,
+ thumbnail_location);
+
-+ thumbnailer->priv->queue = g_slist_remove (thumbnailer->priv->queue,
-+ iter->data);
++ thumbnailer->priv->queue = g_slist_remove(thumbnailer->priv->queue,
++ iter->data);
+
+ iter = thumbnailer->priv->queue;
+ x++;
+
-+ g_free (filename);
-+ g_free (f_uri_checksum);
++ g_free(filename);
++ g_free(f_uri_checksum);
+ } else {
+ iter = g_slist_next(iter);
+ }
+
-+ g_object_unref (file);
-+ g_free (f_uri);
++ g_object_unref(file);
++ g_free(f_uri);
+ }
+}
+
++/**
++ * xfdesktop_thumbnailer_delete_thumbnail:
++ *
++ * Tells the thumbnail service the src_file will be deleted.
++ * This function should be called when the file is deleted or moved so
++ * the thumbnail file doesn't take up space on the user's drive.
++ */
+void
+xfdesktop_thumbnailer_delete_thumbnail(XfdesktopThumbnailer *thumbnailer, gchar *src_file)
+{
@@ -670,11 +613,11 @@
+ connection = dbus_g_bus_get (DBUS_BUS_SESSION, NULL);
+ if (connection != NULL) {
+ cache = dbus_g_proxy_new_for_name(connection,
-+ "org.freedesktop.thumbnails.Cache1",
-+ "/org/freedesktop/thumbnails/Cache1",
-+ "org.freedesktop.thumbnails.Cache1");
++ "org.freedesktop.thumbnails.Cache1",
++ "/org/freedesktop/thumbnails/Cache1",
++ "org.freedesktop.thumbnails.Cache1");
+
-+ dbus_g_connection_unref (connection);
++ dbus_g_connection_unref(connection);
+ }
+ }
+
@@ -694,12 +637,9 @@
+ if(error)
+ g_error_free(error);
+}
-diff --git a/common/xfdesktop-thumbnailer.h b/common/xfdesktop-thumbnailer.h
-new file mode 100644
-index 0000000..fc16bdb
--- /dev/null
-+++ b/common/xfdesktop-thumbnailer.h
-@@ -0,0 +1,101 @@
++++ xfdesktop4-4.8.3/common/xfdesktop-thumbnailer.h
+@@ -0,0 +1,76 @@
+/*
+ * xfdesktop - xfce4's desktop manager
+ *
@@ -720,7 +660,7 @@
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ *
++ *
+ * xfdesktop-thumbnailer is based on thumbnailer code from Ristretto
+ * Copyright (c) Stephan Arts 2009-2011
+ */
@@ -732,7 +672,6 @@
+
+G_BEGIN_DECLS
+
-+
+#define XFDESKTOP_TYPE_THUMBNAILER (xfdesktop_thumbnailer_get_type())
+#define XFDESKTOP_THUMBNAILER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), XFDESKTOP_TYPE_THUMBNAILER, XfdesktopThumbnailer))
+#define XFDESKTOP_IS_THUMBNAILER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), XFDESKTOP_TYPE_THUMBNAILER))
@@ -759,52 +698,221 @@
+ void (*thumbnail_ready)(gchar *src_file, gchar *thumb_file);
+};
+
-+XfdesktopThumbnailer *
-+xfdesktop_thumbnailer_new (void);
++XfdesktopThumbnailer * xfdesktop_thumbnailer_new(void);
+
-+GType
-+xfdesktop_thumbnailer_get_type (void);
++GType xfdesktop_thumbnailer_get_type(void);
+
-+gboolean
-+xfdesktop_thumbnailer_is_supported (XfdesktopThumbnailer *thumbnailer,
-+ gchar *file);
++gboolean xfdesktop_thumbnailer_is_supported(XfdesktopThumbnailer *thumbnailer,
++ gchar *file);
+
-+/* Queues a file for thumbnail creation.
-+ * A "thumbnail-ready" signal will be emitted when the thumbnail is ready.
-+ * The signal will pass 2 parameters: a gchar *file which will be file
-+ * that's passed in here and a gchar *thumbnail_file which will be the
-+ * location of the thumbnail.
-+ */
-+gboolean
-+xfdesktop_thumbnailer_queue_thumbnail (
-+ XfdesktopThumbnailer *thumbnailer,
-+ gchar *file);
-+
-+/* Removes a file from the list of pending thumbnail creations.
-+ * This is not guaranteed to always remove the file, if processing
-+ * of that thumbnail has started it won't stop.
-+ */
-+void
-+xfdesktop_thumbnailer_dequeue_thumbnail (
-+ XfdesktopThumbnailer *thumbnailer,
-+ gchar *file);
++gboolean xfdesktop_thumbnailer_queue_thumbnail(XfdesktopThumbnailer *thumbnailer,
++ gchar *file);
++void xfdesktop_thumbnailer_dequeue_thumbnail(XfdesktopThumbnailer *thumbnailer,
++ gchar *file);
+
-+/* This function tells the thumbnail service the src_file will be deleted.
-+ * This function should be called when the file is deleted or moved so
-+ * the thumbnail file doesn't take up space on the user's drive.
-+ */
-+void
-+xfdesktop_thumbnailer_delete_thumbnail (
-+ XfdesktopThumbnailer *thumbnailer,
-+ gchar *src_file);
++void xfdesktop_thumbnailer_delete_thumbnail(XfdesktopThumbnailer *thumbnailer,
++ gchar *src_file);
+
+G_END_DECLS
+
+#endif /* __XFDESKTOP_THUMBNAILER_H__ */
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 5d1fd4d..3adb3d2 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
+--- xfdesktop4-4.8.3.orig/settings/xfdesktop-settings-ui.glade
++++ xfdesktop4-4.8.3/settings/xfdesktop-settings-ui.glade
+@@ -695,6 +695,17 @@
+
+
+
++
++ True
++ True
++ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
++ _Show thumbnails
++ Select this option to display preview-able files on the desktop as automatically generated thumbnail icons.
++ True
++ True
++
++
++
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+--- xfdesktop4-4.8.3.orig/settings/main.c
++++ xfdesktop4-4.8.3/settings/main.c
+@@ -71,6 +71,7 @@
+ #define DESKTOP_ICONS_FONT_SIZE_PROP "/desktop-icons/font-size"
+ #define DESKTOP_ICONS_SINGLE_CLICK_PROP "/desktop-icons/single-click"
+ #define DESKTOP_ICONS_CUSTOM_FONT_SIZE_PROP "/desktop-icons/use-custom-font-size"
++#define DESKTOP_ICONS_SHOW_THUMBNAILS_PROP "/desktop-icons/show-thumbnails"
+ #define DESKTOP_ICONS_SHOW_HOME "/desktop-icons/file-icons/show-home"
+ #define DESKTOP_ICONS_SHOW_TRASH "/desktop-icons/file-icons/show-trash"
+ #define DESKTOP_ICONS_SHOW_FILESYSTEM "/desktop-icons/file-icons/show-filesystem"
+@@ -1228,7 +1229,7 @@ xfdesktop_settings_dialog_new(GtkBuilder
+ gint i, j, nmonitors, nscreens;
+ GtkWidget *dialog, *appearance_container, *chk_custom_font_size,
+ *spin_font_size, *color_style_widget, *w, *box,
+- *chk_single_click;
++ *chk_single_click, *chk_show_thumbnails;
+
+ dialog = GTK_WIDGET(gtk_builder_get_object(main_gxml, "prefs_dialog"));
+ appearance_container = GTK_WIDGET(gtk_builder_get_object(main_gxml,
+@@ -1245,6 +1246,9 @@ xfdesktop_settings_dialog_new(GtkBuilder
+ G_CALLBACK(cb_xfdesktop_chk_custom_font_size_toggled),
+ spin_font_size);
+
++ chk_show_thumbnails = GTK_WIDGET(gtk_builder_get_object(main_gxml,
++ "chk_show_thumbnails"));
++
+ nscreens = gdk_display_get_n_screens(gdk_display_get_default());
+
+ for(i = 0; i < nscreens; ++i) {
+@@ -1496,6 +1500,9 @@ xfdesktop_settings_dialog_new(GtkBuilder
+ xfconf_g_property_bind(channel, DESKTOP_ICONS_SINGLE_CLICK_PROP,
+ G_TYPE_BOOLEAN, G_OBJECT(chk_single_click),
+ "active");
++ xfconf_g_property_bind(channel, DESKTOP_ICONS_SHOW_THUMBNAILS_PROP,
++ G_TYPE_BOOLEAN, G_OBJECT(chk_show_thumbnails),
++ "active");
+
+ setup_special_icon_list(main_gxml, channel);
+
+--- xfdesktop4-4.8.3.orig/src/xfdesktop-icon.c
++++ xfdesktop4-4.8.3/src/xfdesktop-icon.c
+@@ -37,7 +37,6 @@ struct _XfdesktopIconPrivate
+ gint16 row;
+ gint16 col;
+
+- gboolean extents_dirty;
+ GdkRectangle pixbuf_extents;
+ GdkRectangle text_extents;
+ GdkRectangle total_extents;
+@@ -116,7 +115,6 @@ xfdesktop_icon_init(XfdesktopIcon *icon)
+ {
+ icon->priv = G_TYPE_INSTANCE_GET_PRIVATE(icon, XFDESKTOP_TYPE_ICON,
+ XfdesktopIconPrivate);
+- icon->priv->extents_dirty = TRUE;
+ }
+
+
+@@ -158,7 +156,6 @@ xfdesktop_icon_set_extents(XfdesktopIcon
+ icon->priv->pixbuf_extents = *pixbuf_extents;
+ icon->priv->text_extents = *text_extents;
+ icon->priv->total_extents = *total_extents;
+- icon->priv->extents_dirty = FALSE;
+ }
+
+ gboolean
+@@ -169,9 +166,6 @@ xfdesktop_icon_get_extents(XfdesktopIcon
+ {
+ g_return_val_if_fail(XFDESKTOP_IS_ICON(icon), FALSE);
+
+- if(icon->priv->extents_dirty)
+- return FALSE;
+-
+ if(pixbuf_extents)
+ *pixbuf_extents = icon->priv->pixbuf_extents;
+ if(text_extents)
+@@ -182,16 +176,6 @@ xfdesktop_icon_get_extents(XfdesktopIcon
+ return TRUE;
+ }
+
+-void
+-xfdesktop_icon_mark_extents_dirty(XfdesktopIcon *icon)
+-{
+- g_return_if_fail(XFDESKTOP_IS_ICON(icon));
+-
+- icon->priv->extents_dirty = TRUE;
+-}
+-
+-
+-
+ /*< required >*/
+ GdkPixbuf *
+ xfdesktop_icon_peek_pixbuf(XfdesktopIcon *icon,
+@@ -283,6 +267,37 @@ xfdesktop_icon_peek_tooltip(XfdesktopIco
+ }
+
+ /*< optional >*/
++void xfdesktop_icon_delete_thumbnail(XfdesktopIcon *icon)
++{
++ XfdesktopIconClass *klass;
++
++ g_return_if_fail(XFDESKTOP_IS_ICON(icon));
++
++ klass = XFDESKTOP_ICON_GET_CLASS(icon);
++
++ if(!klass->delete_thumbnail_file)
++ return;
++
++ klass->delete_thumbnail_file(icon);
++}
++
++/*< optional >*/
++void
++xfdesktop_icon_set_thumbnail_file(XfdesktopIcon *icon, GFile *file)
++{
++ XfdesktopIconClass *klass;
++
++ g_return_if_fail(XFDESKTOP_IS_ICON(icon));
++
++ klass = XFDESKTOP_ICON_GET_CLASS(icon);
++
++ if(!klass->set_thumbnail_file)
++ return;
++
++ klass->set_thumbnail_file(icon, file);
++}
++
++/*< optional >*/
+ gboolean
+ xfdesktop_icon_populate_context_menu(XfdesktopIcon *icon,
+ GtkWidget *menu)
+@@ -312,7 +327,6 @@ void
+ xfdesktop_icon_pixbuf_changed(XfdesktopIcon *icon)
+ {
+ g_return_if_fail(XFDESKTOP_IS_ICON(icon));
+- xfdesktop_icon_mark_extents_dirty(icon);
+ g_signal_emit(icon, __signals[SIG_PIXBUF_CHANGED], 0);
+ }
+
+@@ -320,7 +334,6 @@ void
+ xfdesktop_icon_label_changed(XfdesktopIcon *icon)
+ {
+ g_return_if_fail(XFDESKTOP_IS_ICON(icon));
+- xfdesktop_icon_mark_extents_dirty(icon);
+ g_signal_emit(icon, __signals[SIG_LABEL_CHANGED], 0);
+ }
+
+@@ -328,7 +341,6 @@ void
+ xfdesktop_icon_position_changed(XfdesktopIcon *icon)
+ {
+ g_return_if_fail(XFDESKTOP_IS_ICON(icon));
+- xfdesktop_icon_mark_extents_dirty(icon);
+ g_signal_emit(icon, __signals[SIG_POS_CHANGED], 0);
+ }
+
+@@ -337,7 +349,6 @@ void
+ xfdesktop_icon_selected(XfdesktopIcon *icon)
+ {
+ g_return_if_fail(XFDESKTOP_IS_ICON(icon));
+- xfdesktop_icon_mark_extents_dirty(icon);
+ g_signal_emit(G_OBJECT(icon), __signals[SIG_SELECTED], 0, NULL);
+ }
+
+--- xfdesktop4-4.8.3.orig/src/xfdesktop-file-icon-manager.h
++++ xfdesktop4-4.8.3/src/xfdesktop-file-icon-manager.h
+@@ -64,6 +64,10 @@ void xfdesktop_file_icon_manager_set_sho
+ gboolean show_special_file);
+ gboolean xfdesktop_file_icon_manager_get_show_special_file(XfdesktopFileIconManager *manager,
+ XfdesktopSpecialFileIconType type);
++void xfdesktop_file_icon_manager_set_show_thumbnails(XfdesktopFileIconManager *manager,
++ gboolean show_thumbnails);
++gboolean xfdesktop_file_icon_manager_get_show_thumbnails(XfdesktopFileIconManager *manager);
++
+
+ G_END_DECLS
+
+--- xfdesktop4-4.8.3.orig/src/Makefile.am
++++ xfdesktop4-4.8.3/src/Makefile.am
@@ -4,9 +4,7 @@ bin_PROGRAMS = xfdesktop
xfdesktop_built_sources = \
@@ -841,10 +949,180 @@
- $(desktop_file_icon_sources) \
- xfdesktop-marshal.list
+ $(desktop_file_icon_sources)
-diff --git a/src/xfdesktop-file-icon-manager.c b/src/xfdesktop-file-icon-manager.c
-index d3ca2eb..dc1bc93 100644
---- a/src/xfdesktop-file-icon-manager.c
-+++ b/src/xfdesktop-file-icon-manager.c
+--- xfdesktop4-4.8.3.orig/src/xfdesktop-icon.h
++++ xfdesktop4-4.8.3/src/xfdesktop-icon.h
+@@ -73,6 +73,9 @@ struct _XfdesktopIconClass
+
+ G_CONST_RETURN gchar *(*peek_tooltip)(XfdesktopIcon *icon);
+
++ void (*set_thumbnail_file)(XfdesktopIcon *icon, GFile *file);
++ void (*delete_thumbnail_file)(XfdesktopIcon *icon);
++
+ gboolean (*populate_context_menu)(XfdesktopIcon *icon,
+ GtkWidget *menu);
+ };
+@@ -105,6 +108,9 @@ gboolean xfdesktop_icon_populate_context
+
+ GtkWidget *xfdesktop_icon_peek_icon_view(XfdesktopIcon *icon);
+
++void xfdesktop_icon_set_thumbnail_file(XfdesktopIcon *icon, GFile *file);
++void xfdesktop_icon_delete_thumbnail(XfdesktopIcon *icon);
++
+ /*< signal triggers >*/
+
+ void xfdesktop_icon_pixbuf_changed(XfdesktopIcon *icon);
+@@ -123,7 +129,6 @@ gboolean xfdesktop_icon_get_extents(Xfde
+ GdkRectangle *pixbuf_extents,
+ GdkRectangle *text_extents,
+ GdkRectangle *total_extents);
+-void xfdesktop_icon_mark_extents_dirty(XfdesktopIcon *icon);
+
+ G_END_DECLS
+
+--- xfdesktop4-4.8.3.orig/src/xfdesktop-regular-file-icon.c
++++ xfdesktop4-4.8.3/src/xfdesktop-regular-file-icon.c
+@@ -68,11 +68,15 @@ struct _XfdesktopRegularFileIconPrivate
+ GFileInfo *file_info;
+ GFileInfo *filesystem_info;
+ GFile *file;
++ GFile *thumbnail_file;
+ GdkScreen *gscreen;
+ };
+
+ static void xfdesktop_regular_file_icon_finalize(GObject *obj);
+
++static void xfdesktop_regular_file_icon_set_thumbnail_file(XfdesktopIcon *icon, GFile *file);
++static void xfdesktop_regular_file_icon_delete_thumbnail_file(XfdesktopIcon *icon);
++
+ static GdkPixbuf *xfdesktop_regular_file_icon_peek_pixbuf(XfdesktopIcon *icon,
+ gint size);
+ static G_CONST_RETURN gchar *xfdesktop_regular_file_icon_peek_label(XfdesktopIcon *icon);
+@@ -127,6 +131,8 @@ xfdesktop_regular_file_icon_class_init(X
+ icon_class->get_allowed_drag_actions = xfdesktop_regular_file_icon_get_allowed_drag_actions;
+ icon_class->get_allowed_drop_actions = xfdesktop_regular_file_icon_get_allowed_drop_actions;
+ icon_class->do_drop_dest = xfdesktop_regular_file_icon_do_drop_dest;
++ icon_class->set_thumbnail_file = xfdesktop_regular_file_icon_set_thumbnail_file;
++ icon_class->delete_thumbnail_file = xfdesktop_regular_file_icon_delete_thumbnail_file;
+
+ file_icon_class->peek_file_info = xfdesktop_regular_file_icon_peek_file_info;
+ file_icon_class->peek_filesystem_info = xfdesktop_regular_file_icon_peek_filesystem_info;
+@@ -171,6 +177,9 @@ xfdesktop_regular_file_icon_finalize(GOb
+
+ if(icon->priv->tooltip)
+ g_free(icon->priv->tooltip);
++
++ if(icon->priv->thumbnail_file)
++ g_object_unref(icon->priv->thumbnail_file);
+
+ G_OBJECT_CLASS(xfdesktop_regular_file_icon_parent_class)->finalize(obj);
+ }
+@@ -201,6 +210,43 @@ xfdesktop_regular_file_icon_invalidate_p
+ }
+ }
+
++static void
++xfdesktop_regular_file_icon_delete_thumbnail_file(XfdesktopIcon *icon)
++{
++ XfdesktopRegularFileIcon *file_icon;
++
++ if(!XFDESKTOP_IS_REGULAR_FILE_ICON(icon))
++ return;
++
++ file_icon = XFDESKTOP_REGULAR_FILE_ICON(icon);
++
++ if(file_icon->priv->thumbnail_file) {
++ g_object_unref(file_icon->priv->thumbnail_file);
++ file_icon->priv->thumbnail_file = NULL;
++ }
++
++ xfdesktop_regular_file_icon_invalidate_pixbuf(file_icon);
++ xfdesktop_icon_pixbuf_changed(XFDESKTOP_ICON(icon));
++}
++
++static void
++xfdesktop_regular_file_icon_set_thumbnail_file(XfdesktopIcon *icon, GFile *file)
++{
++ XfdesktopRegularFileIcon *file_icon;
++
++ if(!XFDESKTOP_IS_REGULAR_FILE_ICON(icon))
++ return;
++
++ file_icon = XFDESKTOP_REGULAR_FILE_ICON(icon);
++
++ if(file_icon->priv->thumbnail_file)
++ g_object_unref(file_icon->priv->thumbnail_file);
++
++ file_icon->priv->thumbnail_file = file;
++
++ xfdesktop_regular_file_icon_invalidate_pixbuf(file_icon);
++ xfdesktop_icon_pixbuf_changed(XFDESKTOP_ICON(icon));
++}
+
+ static GdkPixbuf *
+ xfdesktop_regular_file_icon_peek_pixbuf(XfdesktopIcon *icon,
+@@ -224,6 +270,10 @@ xfdesktop_regular_file_icon_peek_pixbuf(
+ if(g_file_has_prefix(file_icon->priv->file, thumbnail_dir)) {
+ /* use the filename as custom icon name for thumbnails */
+ icon_name = g_file_get_path(file_icon->priv->file);
++
++ /* release thumbnail path */
++ g_object_unref(thumbnail_dir);
++ g_free(thumbnail_dir_path);
+ } else if(xfdesktop_file_utils_is_desktop_file(file_icon->priv->file_info)) {
+ gchar *contents;
+ gsize length;
+@@ -248,12 +298,16 @@ xfdesktop_regular_file_icon_peek_pixbuf(
+ g_key_file_free(key_file);
+ g_free(contents);
+ }
++ } else {
++ /* If we have a thumbnail then they are enabled, use it. */
++ if(file_icon->priv->thumbnail_file)
++ {
++ file_icon->priv->pix = gdk_pixbuf_new_from_file_at_scale(g_file_get_path(file_icon->priv->thumbnail_file),
++ size, size,
++ TRUE, NULL);
++ }
+ }
+
+- /* release thumbnail path */
+- g_object_unref(thumbnail_dir);
+- g_free(thumbnail_dir_path);
+-
+ /* load the symlink emblem if necessary */
+ if(g_file_info_get_attribute_boolean(file_icon->priv->file_info,
+ G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK))
+@@ -280,10 +334,24 @@ xfdesktop_regular_file_icon_peek_pixbuf(
+
+ if(file_icon->priv->file_info)
+ gicon = g_file_info_get_icon(file_icon->priv->file_info);
+-
+- file_icon->priv->pix = xfdesktop_file_utils_get_icon(icon_name, gicon,
+- size, emblem_pix,
+- file_icon->priv->pix_opacity);
++
++ if(file_icon->priv->pix) {
++ if(emblem_pix) {
++ gint emblem_pix_size = gdk_pixbuf_get_width(emblem_pix);
++ gint dest_size = size - emblem_pix_size;
++
++ /* We have to add the emblem */
++ gdk_pixbuf_composite(emblem_pix, file_icon->priv->pix,
++ dest_size, dest_size,
++ emblem_pix_size, emblem_pix_size,
++ dest_size, dest_size,
++ 1.0, 1.0, GDK_INTERP_BILINEAR, 255);
++ }
++ } else {
++ file_icon->priv->pix = xfdesktop_file_utils_get_icon(icon_name, gicon,
++ size, emblem_pix,
++ file_icon->priv->pix_opacity);
++ }
+
+ file_icon->priv->cur_pix_size = size;
+
+--- xfdesktop4-4.8.3.orig/src/xfdesktop-file-icon-manager.c
++++ xfdesktop4-4.8.3/src/xfdesktop-file-icon-manager.c
@@ -71,6 +71,7 @@
#include "xfdesktop-special-file-icon.h"
#include "xfdesktop-trash-proxy.h"
@@ -886,15 +1164,18 @@
};
static void xfdesktop_file_icon_manager_set_property(GObject *object,
-@@ -175,6 +181,7 @@ static void xfdesktop_file_icon_manager_remove_removable_media(XfdesktopFileIcon
+@@ -175,6 +181,10 @@ static void xfdesktop_file_icon_manager_
static void xfdesktop_file_icon_position_changed(XfdesktopFileIcon *icon,
gpointer user_data);
-+static void xfdesktop_file_icon_manager_update_image (GtkWidget *widget, gchar *srcfile, gchar *thumbfile, XfdesktopFileIconManager *fmanager);
++static void xfdesktop_file_icon_manager_update_image(GtkWidget *widget,
++ gchar *srcfile,
++ gchar *thumbfile,
++ XfdesktopFileIconManager *fmanager);
G_DEFINE_TYPE_EXTENDED(XfdesktopFileIconManager,
xfdesktop_file_icon_manager,
-@@ -264,6 +271,12 @@ xfdesktop_file_icon_manager_class_init(XfdesktopFileIconManagerClass *klass)
+@@ -264,6 +274,12 @@ xfdesktop_file_icon_manager_class_init(X
"show removable",
TRUE,
XFDESKTOP_PARAM_FLAGS));
@@ -907,7 +1188,7 @@
#undef XFDESKTOP_PARAM_FLAGS
xfdesktop_app_info_quark = g_quark_from_static_string("xfdesktop-app-info-quark");
-@@ -282,6 +295,10 @@ xfdesktop_file_icon_manager_init(XfdesktopFileIconManager *fmanager)
+@@ -282,6 +298,10 @@ xfdesktop_file_icon_manager_init(Xfdeskt
n_drag_targets);
fmanager->priv->drop_targets = gtk_target_list_new(drop_targets,
n_drop_targets);
@@ -918,7 +1199,7 @@
}
static void
-@@ -321,6 +338,11 @@ xfdesktop_file_icon_manager_set_property(GObject *object,
+@@ -321,6 +341,11 @@ xfdesktop_file_icon_manager_set_property
g_value_get_boolean(value));
break;
@@ -930,7 +1211,7 @@
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec);
}
-@@ -357,6 +379,10 @@ xfdesktop_file_icon_manager_get_property(GObject *object,
+@@ -357,6 +382,10 @@ xfdesktop_file_icon_manager_get_property
case PROP_SHOW_REMOVABLE:
g_value_set_boolean(value, fmanager->priv->show_removable_media);
break;
@@ -941,7 +1222,7 @@
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec);
-@@ -377,6 +403,7 @@ xfdesktop_file_icon_manager_finalize(GObject *obj)
+@@ -377,6 +406,7 @@ xfdesktop_file_icon_manager_finalize(GOb
gtk_target_list_unref(fmanager->priv->drop_targets);
g_object_unref(fmanager->priv->folder);
@@ -949,7 +1230,7 @@
G_OBJECT_CLASS(xfdesktop_file_icon_manager_parent_class)->finalize(obj);
}
-@@ -1829,6 +1856,15 @@ xfdesktop_file_icon_manager_add_icon(XfdesktopFileIconManager *fmanager,
+@@ -1842,6 +1872,15 @@ xfdesktop_file_icon_manager_add_icon(Xfd
gint16 row = -1, col = -1;
gboolean do_add = FALSE;
const gchar *name;
@@ -957,7 +1238,7 @@
+
+ file = xfdesktop_file_icon_peek_file(icon);
+
-+ if(fmanager->priv->show_thumbnails) {
++ if(fmanager->priv->show_thumbnails && g_file_get_path(file) != NULL) {
+ xfdesktop_thumbnailer_queue_thumbnail(fmanager->priv->thumbnailer,
+ g_file_get_path(file));
+ }
@@ -965,7 +1246,7 @@
name = xfdesktop_icon_peek_label(XFDESKTOP_ICON(icon));
if(xfdesktop_file_icon_manager_get_cached_icon_position(fmanager, name,
-@@ -1839,7 +1875,6 @@ xfdesktop_file_icon_manager_add_icon(XfdesktopFileIconManager *fmanager,
+@@ -1852,7 +1891,6 @@ xfdesktop_file_icon_manager_add_icon(Xfd
do_add = TRUE;
} else {
if(defer_if_missing) {
@@ -973,7 +1254,7 @@
fmanager->priv->deferred_icons = g_list_prepend(fmanager->priv->deferred_icons,
g_object_ref(file));
} else
-@@ -2195,6 +2230,13 @@ xfdesktop_file_icon_manager_file_changed(GFileMonitor *monitor,
+@@ -2220,6 +2258,13 @@ xfdesktop_file_icon_manager_file_changed
icon = g_hash_table_lookup(fmanager->priv->icons, file);
if(icon) {
@@ -987,7 +1268,7 @@
xfdesktop_icon_view_remove_item(fmanager->priv->icon_view,
XFDESKTOP_ICON(icon));
g_hash_table_remove(fmanager->priv->icons, file);
-@@ -2996,6 +3038,8 @@ xfdesktop_file_icon_manager_new(GFile *folder,
+@@ -3021,6 +3066,8 @@ xfdesktop_file_icon_manager_new(GFile *f
G_OBJECT(fmanager), "show-trash");
xfconf_g_property_bind(channel, SETTING_SHOW_REMOVABLE, G_TYPE_BOOLEAN,
G_OBJECT(fmanager), "show-removable");
@@ -996,7 +1277,7 @@
return XFDESKTOP_ICON_VIEW_MANAGER(fmanager);
}
-@@ -3027,6 +3071,64 @@ xfdesktop_file_icon_manager_get_show_removable_media(XfdesktopFileIconManager *m
+@@ -3052,6 +3099,64 @@ xfdesktop_file_icon_manager_get_show_rem
return manager->priv->show_removable_media;
}
@@ -1043,7 +1324,7 @@
+ manager);
+ } else {
+ /* We have to remove the thumbnails because the regular file
-+ * icons can't check if thumbnails are allowed.
++ * icons can't easily check if thumbnails are allowed.
+ */
+ g_hash_table_foreach(manager->priv->icons,
+ xfdesktop_file_icon_manager_remove_thumbnails,
@@ -1061,13 +1342,16 @@
void
xfdesktop_file_icon_manager_set_show_special_file(XfdesktopFileIconManager *manager,
XfdesktopSpecialFileIconType type,
-@@ -3068,3 +3170,23 @@ xfdesktop_file_icon_manager_get_show_special_file(XfdesktopFileIconManager *mana
+@@ -3093,3 +3198,26 @@ xfdesktop_file_icon_manager_get_show_spe
return manager->priv->show_special[type];
}
+
+static void
-+xfdesktop_file_icon_manager_update_image (GtkWidget *widget, gchar *srcfile, gchar *thumbfile, XfdesktopFileIconManager *manager)
++xfdesktop_file_icon_manager_update_image(GtkWidget *widget,
++ gchar *srcfile,
++ gchar *thumbfile,
++ XfdesktopFileIconManager *manager)
+{
+ GFile *file;
+ XfdesktopIcon *icon;
@@ -1085,236 +1369,86 @@
+ xfdesktop_icon_set_thumbnail_file(icon, file);
+ }
+}
-diff --git a/src/xfdesktop-file-icon-manager.h b/src/xfdesktop-file-icon-manager.h
-index 703a6f4..1c45ecb 100644
---- a/src/xfdesktop-file-icon-manager.h
-+++ b/src/xfdesktop-file-icon-manager.h
-@@ -64,6 +64,10 @@ void xfdesktop_file_icon_manager_set_show_special_file(XfdesktopFileIconManager
- gboolean show_special_file);
- gboolean xfdesktop_file_icon_manager_get_show_special_file(XfdesktopFileIconManager *manager,
- XfdesktopSpecialFileIconType type);
-+void xfdesktop_file_icon_manager_set_show_thumbnails(XfdesktopFileIconManager *manager,
-+ gboolean show_thumbnails);
-+gboolean xfdesktop_file_icon_manager_get_show_thumbnails(XfdesktopFileIconManager *manager);
+--- xfdesktop4-4.8.3.orig/src/xfdesktop-icon-view.c
++++ xfdesktop4-4.8.3/src/xfdesktop-icon-view.c
+@@ -1046,7 +1046,7 @@ xfdesktop_icon_view_show_tooltip(GtkWidg
+ tip_text = xfdesktop_icon_peek_tooltip(icon_view->priv->item_under_pointer);
+ if(!tip_text)
+ return FALSE;
+-
+
+ gtk_tooltip_set_text(tooltip, tip_text);
- G_END_DECLS
-
-diff --git a/src/xfdesktop-icon.c b/src/xfdesktop-icon.c
-index 431ba79..31c082b 100644
---- a/src/xfdesktop-icon.c
-+++ b/src/xfdesktop-icon.c
-@@ -283,6 +283,37 @@ xfdesktop_icon_peek_tooltip(XfdesktopIcon *icon)
- }
-
- /*< optional >*/
-+void xfdesktop_icon_delete_thumbnail(XfdesktopIcon *icon)
-+{
-+ XfdesktopIconClass *klass;
-+
-+ g_return_if_fail(XFDESKTOP_IS_ICON(icon));
-+
-+ klass = XFDESKTOP_ICON_GET_CLASS(icon);
-+
-+ if(!klass->delete_thumbnail_file)
-+ return;
-+
-+ klass->delete_thumbnail_file(icon);
-+}
-+
-+/*< optional >*/
-+void
-+xfdesktop_icon_set_thumbnail_file(XfdesktopIcon *icon, GFile *file)
-+{
-+ XfdesktopIconClass *klass;
-+
-+ g_return_if_fail(XFDESKTOP_IS_ICON(icon));
-+
-+ klass = XFDESKTOP_ICON_GET_CLASS(icon);
-+
-+ if(!klass->set_thumbnail_file)
-+ return;
-+
-+ klass->set_thumbnail_file(icon, file);
-+}
-+
-+/*< optional >*/
- gboolean
- xfdesktop_icon_populate_context_menu(XfdesktopIcon *icon,
- GtkWidget *menu)
-diff --git a/src/xfdesktop-icon.h b/src/xfdesktop-icon.h
-index b838ed5..36e4925 100644
---- a/src/xfdesktop-icon.h
-+++ b/src/xfdesktop-icon.h
-@@ -73,6 +73,9 @@ struct _XfdesktopIconClass
-
- G_CONST_RETURN gchar *(*peek_tooltip)(XfdesktopIcon *icon);
-
-+ void (*set_thumbnail_file)(XfdesktopIcon *icon, GFile *file);
-+ void (*delete_thumbnail_file)(XfdesktopIcon *icon);
-+
- gboolean (*populate_context_menu)(XfdesktopIcon *icon,
- GtkWidget *menu);
- };
-@@ -105,6 +108,9 @@ gboolean xfdesktop_icon_populate_context_menu(XfdesktopIcon *icon,
-
- GtkWidget *xfdesktop_icon_peek_icon_view(XfdesktopIcon *icon);
-
-+void xfdesktop_icon_set_thumbnail_file(XfdesktopIcon *icon, GFile *file);
-+void xfdesktop_icon_delete_thumbnail(XfdesktopIcon *icon);
-+
- /*< signal triggers >*/
-
- void xfdesktop_icon_pixbuf_changed(XfdesktopIcon *icon);
-diff --git a/src/xfdesktop-marshal.list b/src/xfdesktop-marshal.list
-deleted file mode 100644
-index 819c32e..0000000
---- a/src/xfdesktop-marshal.list
-+++ /dev/null
-@@ -1,2 +0,0 @@
--BOOLEAN:VOID
--BOOLEAN:ENUM,INT
-diff --git a/src/xfdesktop-regular-file-icon.c b/src/xfdesktop-regular-file-icon.c
-index e14256a..742a197 100644
---- a/src/xfdesktop-regular-file-icon.c
-+++ b/src/xfdesktop-regular-file-icon.c
-@@ -68,11 +68,15 @@ struct _XfdesktopRegularFileIconPrivate
- GFileInfo *file_info;
- GFileInfo *filesystem_info;
- GFile *file;
-+ GFile *thumbnail_file;
- GdkScreen *gscreen;
- };
-
- static void xfdesktop_regular_file_icon_finalize(GObject *obj);
+ return TRUE;
+@@ -1520,7 +1520,6 @@ xfdesktop_icon_view_drag_drop(GtkWidget
+
+ /* clear out old extents, if any */
+ /* FIXME: is this right? */
+- //xfdesktop_icon_mark_extents_dirty(icon);
+ xfdesktop_icon_view_invalidate_icon(icon_view, icon, TRUE);
+
+ /* Now that we have moved the icon the user selected,
+@@ -2792,29 +2791,17 @@ xfdesktop_icon_view_paint_icon(Xfdesktop
-+static void xfdesktop_regular_file_icon_set_thumbnail_file(XfdesktopIcon *icon, GFile *file);
-+static void xfdesktop_regular_file_icon_delete_thumbnail_file(XfdesktopIcon *icon);
-+
- static GdkPixbuf *xfdesktop_regular_file_icon_peek_pixbuf(XfdesktopIcon *icon,
- gint size);
- static G_CONST_RETURN gchar *xfdesktop_regular_file_icon_peek_label(XfdesktopIcon *icon);
-@@ -127,6 +131,8 @@ xfdesktop_regular_file_icon_class_init(XfdesktopRegularFileIconClass *klass)
- icon_class->get_allowed_drag_actions = xfdesktop_regular_file_icon_get_allowed_drag_actions;
- icon_class->get_allowed_drop_actions = xfdesktop_regular_file_icon_get_allowed_drop_actions;
- icon_class->do_drop_dest = xfdesktop_regular_file_icon_do_drop_dest;
-+ icon_class->set_thumbnail_file = xfdesktop_regular_file_icon_set_thumbnail_file;
-+ icon_class->delete_thumbnail_file = xfdesktop_regular_file_icon_delete_thumbnail_file;
+ playout = icon_view->priv->playout;
- file_icon_class->peek_file_info = xfdesktop_regular_file_icon_peek_file_info;
- file_icon_class->peek_filesystem_info = xfdesktop_regular_file_icon_peek_filesystem_info;
-@@ -171,6 +177,9 @@ xfdesktop_regular_file_icon_finalize(GObject *obj)
-
- if(icon->priv->tooltip)
- g_free(icon->priv->tooltip);
-+
-+ if(icon->priv->thumbnail_file)
-+ g_object_unref(icon->priv->thumbnail_file);
-
- G_OBJECT_CLASS(xfdesktop_regular_file_icon_parent_class)->finalize(obj);
- }
-@@ -201,6 +210,43 @@ xfdesktop_regular_file_icon_invalidate_pixbuf(XfdesktopRegularFileIcon *icon)
+- if(xfdesktop_icon_get_extents(icon, &pixbuf_extents,
+- &text_extents, &total_extents))
++ xfdesktop_icon_get_extents(icon, &pixbuf_extents,
++ &text_extents, &total_extents);
++ xfdesktop_icon_view_setup_pango_layout(icon_view, icon, playout);
++
++ if(!xfdesktop_icon_view_update_icon_extents(icon_view, icon,
++ &pixbuf_extents,
++ &text_extents,
++ &total_extents))
+ {
+- xfdesktop_icon_view_setup_pango_layout(icon_view, icon, playout);
+- } else {
+- /* if we get here, it's likely that the expose area doesn't
+- * include everything we *actually* need to repaint. the
+- * extents should be recalculated before invalidating rects
+- * in the first place. for now just fix it up and re-expose
+- * the correct area. */
+- if(!xfdesktop_icon_view_update_icon_extents(icon_view, icon,
+- &pixbuf_extents,
+- &text_extents,
+- &total_extents))
+- {
+- g_warning("Can't update extents for icon '%s'",
+- xfdesktop_icon_peek_label(icon));
+- } else {
+- gtk_widget_queue_draw_area(GTK_WIDGET(icon_view),
+- total_extents.x, total_extents.y,
+- total_extents.width, total_extents.height);
+- }
+- return;
++ g_warning("Can't update extents for icon '%s'",
++ xfdesktop_icon_peek_label(icon));
}
- }
-
-+static void
-+xfdesktop_regular_file_icon_delete_thumbnail_file(XfdesktopIcon *icon)
-+{
-+ XfdesktopRegularFileIcon *file_icon;
-+
-+ if(!XFDESKTOP_IS_REGULAR_FILE_ICON(icon))
-+ return;
-+
-+ file_icon = XFDESKTOP_REGULAR_FILE_ICON(icon);
-+
-+ if(file_icon->priv->thumbnail_file) {
-+ g_object_unref(file_icon->priv->thumbnail_file);
-+ file_icon->priv->thumbnail_file = NULL;
-+ }
-+
-+ xfdesktop_regular_file_icon_invalidate_pixbuf(file_icon);
-+ xfdesktop_icon_pixbuf_changed(XFDESKTOP_ICON(icon));
-+}
-+
-+static void
-+xfdesktop_regular_file_icon_set_thumbnail_file(XfdesktopIcon *icon, GFile *file)
-+{
-+ XfdesktopRegularFileIcon *file_icon;
-+
-+ if(!XFDESKTOP_IS_REGULAR_FILE_ICON(icon))
-+ return;
-+
-+ file_icon = XFDESKTOP_REGULAR_FILE_ICON(icon);
-+
-+ if(file_icon->priv->thumbnail_file)
-+ g_object_unref(file_icon->priv->thumbnail_file);
-+
-+ file_icon->priv->thumbnail_file = file;
-+
-+ xfdesktop_regular_file_icon_invalidate_pixbuf(file_icon);
-+ xfdesktop_icon_pixbuf_changed(XFDESKTOP_ICON(icon));
-+}
- static GdkPixbuf *
- xfdesktop_regular_file_icon_peek_pixbuf(XfdesktopIcon *icon,
-@@ -224,6 +270,10 @@ xfdesktop_regular_file_icon_peek_pixbuf(XfdesktopIcon *icon,
- if(g_file_has_prefix(file_icon->priv->file, thumbnail_dir)) {
- /* use the filename as custom icon name for thumbnails */
- icon_name = g_file_get_path(file_icon->priv->file);
-+
-+ /* release thumbnail path */
-+ g_object_unref(thumbnail_dir);
-+ g_free(thumbnail_dir_path);
- } else if(xfdesktop_file_utils_is_desktop_file(file_icon->priv->file_info)) {
- gchar *contents;
- gsize length;
-@@ -248,12 +298,16 @@ xfdesktop_regular_file_icon_peek_pixbuf(XfdesktopIcon *icon,
- g_key_file_free(key_file);
- g_free(contents);
- }
-+ } else {
-+ /* If we have a thumbnail then they are enabled, use it. */
-+ if(file_icon->priv->thumbnail_file)
-+ {
-+ file_icon->priv->pix = gdk_pixbuf_new_from_file_at_scale(g_file_get_path(file_icon->priv->thumbnail_file),
-+ size, size,
-+ TRUE, NULL);
-+ }
+ if(g_list_find(icon_view->priv->selected_icons, icon)) {
+@@ -2954,7 +2941,6 @@ xfdesktop_grid_do_resize(XfdesktopIconVi
+
+ /* move all icons into the pending_icons list */
+ for(l = icon_view->priv->icons; l; l = l->next) {
+- xfdesktop_icon_mark_extents_dirty(XFDESKTOP_ICON(l->data));
+ g_signal_handlers_disconnect_by_func(G_OBJECT(l->data),
+ G_CALLBACK(xfdesktop_icon_view_icon_changed),
+ icon_view);
+@@ -3374,7 +3360,6 @@ xfdesktop_icon_view_remove_item(Xfdeskto
+
+ if(xfdesktop_icon_get_position(icon, &row, &col)) {
+ xfdesktop_icon_view_invalidate_icon(icon_view, icon, FALSE);
+- xfdesktop_icon_mark_extents_dirty(icon);
+ xfdesktop_grid_set_position_free(icon_view, row, col);
+ }
+ icon_view->priv->icons = g_list_delete_link(icon_view->priv->icons, l);
+@@ -3422,7 +3407,6 @@ xfdesktop_icon_view_remove_all(Xfdesktop
+ if(xfdesktop_icon_get_position(icon, &row, &col)) {
+ xfdesktop_icon_view_invalidate_icon(icon_view, icon, FALSE);
+ xfdesktop_grid_set_position_free(icon_view, row, col);
+- xfdesktop_icon_mark_extents_dirty(icon);
}
-
-- /* release thumbnail path */
-- g_object_unref(thumbnail_dir);
-- g_free(thumbnail_dir_path);
--
- /* load the symlink emblem if necessary */
- if(g_file_info_get_attribute_boolean(file_icon->priv->file_info,
- G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK))
-@@ -280,10 +334,24 @@ xfdesktop_regular_file_icon_peek_pixbuf(XfdesktopIcon *icon,
-
- if(file_icon->priv->file_info)
- gicon = g_file_info_get_icon(file_icon->priv->file_info);
--
-+
-+ if(file_icon->priv->pix) {
-+ if(emblem_pix) {
-+ gint emblem_pix_size = gdk_pixbuf_get_width(emblem_pix);
-+ gint dest_size = size - emblem_pix_size;
-+
-+ /* We have to add the emblem */
-+ gdk_pixbuf_composite(emblem_pix, file_icon->priv->pix,
-+ dest_size, dest_size,
-+ emblem_pix_size, emblem_pix_size,
-+ dest_size, dest_size,
-+ 1.0, 1.0, GDK_INTERP_BILINEAR, 255);
-+ }
-+ } else {
- file_icon->priv->pix = xfdesktop_file_utils_get_icon(icon_name, gicon,
- size, emblem_pix,
- file_icon->priv->pix_opacity);
-+ }
- file_icon->priv->cur_pix_size = size;
-
---
-1.7.5.4
-
+ g_signal_handlers_disconnect_by_func(G_OBJECT(l->data),
diff -Nru xfdesktop4-4.8.3/debian/rules xfdesktop4-4.8.3/debian/rules
--- xfdesktop4-4.8.3/debian/rules 2012-01-25 19:23:33.000000000 +0000
+++ xfdesktop4-4.8.3/debian/rules 2012-02-07 19:48:21.000000000 +0000
@@ -1,15 +1,11 @@
#!/usr/bin/make -f
-include /usr/share/hardening-includes/hardening.make
-
-CFLAGS=$(shell dpkg-buildflags --get CFLAGS)
-LDFLAGS=$(shell dpkg-buildflags --get LDFLAGS)
-LDFLAGS+=$(HARDENING_LDFLAGS) -Wl,-z,defs -Wl,--as-needed -Wl,-O1
-CFLAGS+=$(HARDENING_CFLAGS)
-
-export CFLAGS LDFLAGS
+export DEB_LDFLAGS_MAINT_APPEND=-Wl,-z,defs -Wl,--as-needed -Wl,-O1
+export DEB_BUILD_MAINT_OPTIONS=hardening=+pie,+bindnow
override_dh_auto_configure:
+ exo-csource --static --name=`basename xfdesktop-settings-ui.glade .glade | sed -e 's/-/_/g'` \
+ $(CURDIR)/settings/xfdesktop-settings-ui.glade >$(CURDIR)/settings/xfdesktop-settings-ui.h
NOCONFIGURE=1 xdt-autogen
find .pc -type f -name '*.c' -exec echo '{}' >> po/POTFILES.skip \;
dh_auto_configure -- --enable-thunarx --enable-exo \
@@ -18,7 +14,8 @@
override_dh_auto_clean:
rm -f po/POTFILES.skip
dh_auto_clean
- rm -f aclocal.m4 common/Makefile.in config.guess config.sub configure ltmain.sh src/Makefile.in
+ rm -f aclocal.m4 config.guess config.sub configure ltmain.sh settings/xfdesktop-settings-ui.h
+ rm -f $$(find -name 'Makefile.in*')
override_dh_install:
chrpath -d -k $(CURDIR)/debian/tmp/usr/bin/*