Hello community, here is the log from the commit of package sushi for openSUSE:Factory checked in at 2016-03-29 14:30:07 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/sushi (Old) and /work/SRC/openSUSE:Factory/.sushi.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sushi" Changes: -------- --- /work/SRC/openSUSE:Factory/sushi/sushi.changes 2015-11-16 18:52:07.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.sushi.new/sushi.changes 2016-03-29 14:30:08.000000000 +0200 @@ -1,0 +2,14 @@ +Fri Mar 4 08:44:02 UTC 2016 - dims...@opensuse.org + +- Update to version 3.19.90: + + Port to ClutterGst 3.0. + + Don't assume X. + + Don't use deprecated style classes. + + Port to GTask. + + Fix toolbar spacing. + + Resync font renderer from gnome-font-viewer. +- Drop sushi-port-to-clutter-gst-3.0.patch: fixed upstream. +- Remove libtool BuildRequires and call to autoreconf, as we no + longer carry any patches. + +------------------------------------------------------------------- Old: ---- sushi-3.18.0.tar.xz sushi-port-to-clutter-gst-3.0.patch New: ---- sushi-3.19.90.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ sushi.spec ++++++ --- /var/tmp/diff_new_pack.ylqSCu/_old 2016-03-29 14:30:09.000000000 +0200 +++ /var/tmp/diff_new_pack.ylqSCu/_new 2016-03-29 14:30:09.000000000 +0200 @@ -1,7 +1,7 @@ # # spec file for package sushi # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,19 +17,15 @@ Name: sushi -Version: 3.18.0 +Version: 3.19.90 Release: 0 Summary: Quick Previewer for Nautilus License: SUSE-GPL-2.0-with-plugin-exception Group: Productivity/File utilities Url: http://www.gnome.org -Source0: http://download.gnome.org/sources/sushi/3.18/%{name}-%{version}.tar.xz -# PATCH-FIX-UPSTREAM sushi-port-to-clutter-gst-3.0.patch bgo#756725 zai...@opensuse.org -- Port to clutter-gst-3.0 -Patch0: sushi-port-to-clutter-gst-3.0.patch +Source0: http://download.gnome.org/sources/sushi/3.19/%{name}-%{version}.tar.xz BuildRequires: gobject-introspection-devel BuildRequires: intltool -# Needed for patch0 -BuildRequires: libtool %ifarch %ix86 x86_64 BuildRequires: unoconv %endif @@ -64,11 +60,8 @@ %lang_package %prep %setup -q -%patch0 -p1 %build -# Needed for patch0 -autoreconf -fiv %configure make %{?_smp_mflags} ++++++ sushi-3.18.0.tar.xz -> sushi-3.19.90.tar.xz ++++++ ++++ 1677 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sushi-3.18.0/NEWS new/sushi-3.19.90/NEWS --- old/sushi-3.18.0/NEWS 2015-09-23 01:04:53.000000000 +0200 +++ new/sushi-3.19.90/NEWS 2016-03-04 05:35:01.000000000 +0100 @@ -1,3 +1,13 @@ +3.19.90 - "Hardcore Chilling" +============================= + +- Port to ClutterGst 3.0 (Lionel Landwerlin) +- Don't assume X (Matthias Clasen) +- Don't use deprecated style classes (Matthias Clasen) +- Port to GTask +- Fix toolbar spacing +- Resync font renderer from gnome-font-viewer + 3.18.0 - "Symbiosis" ==================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sushi-3.18.0/configure.ac new/sushi-3.19.90/configure.ac --- old/sushi-3.18.0/configure.ac 2015-09-23 01:04:59.000000000 +0200 +++ new/sushi-3.19.90/configure.ac 2016-03-04 05:35:10.000000000 +0100 @@ -1,6 +1,6 @@ dnl -*- mode: m4 -*- AC_PREREQ(2.63) -AC_INIT([sushi],[3.18.0],[],[sushi]) +AC_INIT([sushi],[3.19.90],[],[sushi]) AC_CONFIG_HEADERS([config/config.h]) AC_CONFIG_SRCDIR([src/main.c]) @@ -62,7 +62,7 @@ clutter-x11-1.0 >= $CLUTTER_MIN_VERSION gtk+-3.0 >= $GTK_MIN_VERSION clutter-gtk-1.0 >= $CLUTTER_GTK_MIN_VERSION - clutter-gst-2.0 + clutter-gst-3.0 gstreamer-1.0 gstreamer-pbutils-1.0 gstreamer-tag-1.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sushi-3.18.0/po/LINGUAS new/sushi-3.19.90/po/LINGUAS --- old/sushi-3.18.0/po/LINGUAS 2015-06-25 23:12:24.000000000 +0200 +++ new/sushi-3.19.90/po/LINGUAS 2015-11-18 02:36:55.000000000 +0100 @@ -22,6 +22,7 @@ fi fr fur +gd gl gu he @@ -46,6 +47,7 @@ pl pt pt_BR +ro ru sl sk diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sushi-3.18.0/po/gd.po new/sushi-3.19.90/po/gd.po --- old/sushi-3.18.0/po/gd.po 1970-01-01 01:00:00.000000000 +0100 +++ new/sushi-3.19.90/po/gd.po 2015-11-18 02:36:55.000000000 +0100 @@ -0,0 +1,64 @@ +# Scottish Gaelic translation for sushi. +# Copyright (C) 2015 sushi's COPYRIGHT HOLDER +# This file is distributed under the same license as the sushi package. +# GunChleoc <f...@foramnagaidhlig.net>, 2015. +msgid "" +msgstr "" +"Project-Id-Version: sushi master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=sushi&" +"keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2015-11-17 14:29+0000\n" +"PO-Revision-Date: 2015-11-17 17:49+0100\n" +"Last-Translator: GunChleoc <f...@foramnagaidhlig.net>\n" +"Language-Team: Fòram na Gàidhlig\n" +"Language: gd\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : " +"(n > 2 && n < 20) ? 2 : 3;\n" +"X-Generator: Virtaal 0.7.1\n" +"X-Project-Style: gnome\n" + +#: ../src/js/ui/fallbackRenderer.js:119 +msgid "Type" +msgstr "Seòrsa" + +#: ../src/js/ui/fallbackRenderer.js:120 ../src/js/ui/fallbackRenderer.js:129 +#: ../src/js/ui/fallbackRenderer.js:135 ../src/js/ui/spinnerBox.js:56 +msgid "Loading..." +msgstr "'Ga luchdadh..." + +#: ../src/js/ui/fallbackRenderer.js:128 +msgid "Size" +msgstr "Meud" + +#: ../src/js/ui/fallbackRenderer.js:134 +msgid "Modified" +msgstr "Air atharrachadh" + +#: ../src/js/viewers/audio.js:172 +msgid "from" +msgstr "o" + +#: ../src/js/viewers/audio.js:174 +msgid "by" +msgstr "le" + +#: ../src/js/viewers/evince.js:77 +#, javascript-format +msgid "%d of %d" +msgstr "%d à %d" + +#: ../src/libsushi/sushi-file-loader.c:639 +#, c-format +msgid "%d item" +msgid_plural "%d items" +msgstr[0] "%d nì" +msgstr[1] "%d nì" +msgstr[2] "%d nithean" +msgstr[3] "%d nì" + +#: ../src/libsushi/sushi-file-loader.c:651 +msgid "Empty Folder" +msgstr "Pasgan falamh" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sushi-3.18.0/po/oc.po new/sushi-3.19.90/po/oc.po --- old/sushi-3.18.0/po/oc.po 2015-06-25 23:12:24.000000000 +0200 +++ new/sushi-3.19.90/po/oc.po 2016-03-03 22:56:51.000000000 +0100 @@ -1,70 +1,68 @@ # Occitan translation for sushi. # Copyright (C) 2011 sushi's COPYRIGHT HOLDER # This file is distributed under the same license as the sushi package. -# Alexandre Franke <alexandre.fra...@gmail.com>, 2011. -# Cédric Valmary (Tot en Òc) <cvalm...@yahoo.fr>, 2015. +# Cédric Valmary <cvalm...@yahoo.fr>, 2015. +# Cédric Valmary (Tot en òc) <cvalm...@yahoo.fr>, 2015. msgid "" msgstr "" "Project-Id-Version: sushi master\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=sushi&" -"keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2015-05-25 23:38+0000\n" -"PO-Revision-Date: 2015-05-26 09:06+0200\n" -"Last-Translator: Cédric Valmary (Tot en Òc) <cvalm...@yahoo.fr>\n" -"Language-Team: www.totenoc.eu\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=sushi&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2016-02-18 14:43+0000\n" +"PO-Revision-Date: 2015-10-31 08:38+0200\n" +"Last-Translator: Cédric Valmary (Tot en òc) <cvalm...@yahoo.fr>\n" +"Language-Team: Tot en òc (totenoc.eu)\n" "Language: oc\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Virtaal 0.7.0\n" +"X-Generator: Virtaal 0.7.1\n" "X-Project-Style: gnome\n" -#: ../data/org.gnome.sushi.gschema.xml.in.h:1 -msgid "Client decoration" -msgstr "Decoracion del client" - -#: ../data/org.gnome.sushi.gschema.xml.in.h:2 -msgid "Whether the window draws WM decorations itself" -msgstr "Indica se la fenèstra dessenha las decoracions del WM ela-meteissa" - -#: ../src/js/ui/fallbackRenderer.js:121 +#: ../src/js/ui/fallbackRenderer.js:119 msgid "Type" msgstr "Tipe" -#: ../src/js/ui/fallbackRenderer.js:122 ../src/js/ui/fallbackRenderer.js:131 -#: ../src/js/ui/fallbackRenderer.js:137 ../src/js/ui/spinnerBox.js:58 +#: ../src/js/ui/fallbackRenderer.js:120 ../src/js/ui/fallbackRenderer.js:129 +#: ../src/js/ui/fallbackRenderer.js:135 ../src/js/ui/spinnerBox.js:56 msgid "Loading..." msgstr "Cargament..." -#: ../src/js/ui/fallbackRenderer.js:130 +#: ../src/js/ui/fallbackRenderer.js:128 msgid "Size" msgstr "Talha" -#: ../src/js/ui/fallbackRenderer.js:136 +#: ../src/js/ui/fallbackRenderer.js:134 msgid "Modified" msgstr "Modificat" -#: ../src/js/viewers/audio.js:173 +#: ../src/js/viewers/audio.js:172 msgid "from" msgstr "de" -#: ../src/js/viewers/audio.js:175 +#: ../src/js/viewers/audio.js:174 msgid "by" msgstr "per" -#: ../src/js/viewers/evince.js:79 -#, javascript-format +#: ../src/js/viewers/evince.js:77 +#, javascript-format msgid "%d of %d" msgstr "%d sus %d" -#: ../src/libsushi/sushi-file-loader.c:639 -#, c-format +#: ../src/libsushi/sushi-file-loader.c:639 +#, c-format msgid "%d item" msgid_plural "%d items" msgstr[0] "%d element" msgstr[1] "%d elements" -#: ../src/libsushi/sushi-file-loader.c:651 +#: ../src/libsushi/sushi-file-loader.c:651 msgid "Empty Folder" msgstr "Dorsièr void" + +#~ msgid "Client decoration" +#~ msgstr "Decoracion del client" + +#~ msgid "Whether the window draws WM decorations itself" +#~ msgstr "Indica se la fenèstra dessenha las decoracions del WM ela-meteissa" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sushi-3.18.0/po/pt.po new/sushi-3.19.90/po/pt.po --- old/sushi-3.18.0/po/pt.po 2015-07-19 19:43:18.000000000 +0200 +++ new/sushi-3.19.90/po/pt.po 2015-11-14 20:03:46.000000000 +0100 @@ -9,7 +9,7 @@ "Project-Id-Version: 3.8\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=sushi&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2015-06-07 23:40+0000\n" +"POT-Creation-Date: 2015-09-29 00:49+0000\n" "PO-Revision-Date: 2015-06-20 09:03+0100\n" "Last-Translator: Duarte Loreto <happyguy...@hotmail.com>\n" "Language-Team: Portuguese <gnome...@yahoogroups.com>\n" @@ -20,40 +20,32 @@ "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Gtranslator 2.91.6\n" -#: ../data/org.gnome.sushi.gschema.xml.in.h:1 -msgid "Client decoration" -msgstr "Decoração do cliente" - -#: ../data/org.gnome.sushi.gschema.xml.in.h:2 -msgid "Whether the window draws WM decorations itself" -msgstr "Se a própria janela desenha ou não as decorações de Gestor de janelas" - -#: ../src/js/ui/fallbackRenderer.js:121 +#: ../src/js/ui/fallbackRenderer.js:119 msgid "Type" msgstr "Tipo" -#: ../src/js/ui/fallbackRenderer.js:122 ../src/js/ui/fallbackRenderer.js:131 -#: ../src/js/ui/fallbackRenderer.js:137 ../src/js/ui/spinnerBox.js:58 +#: ../src/js/ui/fallbackRenderer.js:120 ../src/js/ui/fallbackRenderer.js:129 +#: ../src/js/ui/fallbackRenderer.js:135 ../src/js/ui/spinnerBox.js:56 msgid "Loading..." msgstr "A carregar..." -#: ../src/js/ui/fallbackRenderer.js:130 +#: ../src/js/ui/fallbackRenderer.js:128 msgid "Size" msgstr "Tamanho" -#: ../src/js/ui/fallbackRenderer.js:136 +#: ../src/js/ui/fallbackRenderer.js:134 msgid "Modified" msgstr "Modificado" -#: ../src/js/viewers/audio.js:173 +#: ../src/js/viewers/audio.js:171 msgid "from" msgstr "de" -#: ../src/js/viewers/audio.js:175 +#: ../src/js/viewers/audio.js:173 msgid "by" msgstr "por" -#: ../src/js/viewers/evince.js:79 +#: ../src/js/viewers/evince.js:77 #, javascript-format msgid "%d of %d" msgstr "%d de %d" @@ -68,3 +60,10 @@ #: ../src/libsushi/sushi-file-loader.c:651 msgid "Empty Folder" msgstr "Pasta vazia" + +#~ msgid "Client decoration" +#~ msgstr "Decoração do cliente" + +#~ msgid "Whether the window draws WM decorations itself" +#~ msgstr "" +#~ "Se a própria janela desenha ou não as decorações de Gestor de janelas" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sushi-3.18.0/po/ro.po new/sushi-3.19.90/po/ro.po --- old/sushi-3.18.0/po/ro.po 1970-01-01 01:00:00.000000000 +0100 +++ new/sushi-3.19.90/po/ro.po 2015-11-14 20:03:46.000000000 +0100 @@ -0,0 +1,64 @@ +# Romanian translation for sushi. +# Copyright (C) 2015 sushi's COPYRIGHT HOLDER +# This file is distributed under the same license as the sushi package. +# Adriannho <raziel_therip...@yahoo.com>, 2015. +# Daniel Șerbănescu <daniel [at] serbanescu [dot] dk>, 2015. +msgid "" +msgstr "" +"Project-Id-Version: sushi master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=sushi&k" +"eywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2015-10-11 12:44+0000\n" +"PO-Revision-Date: 2015-10-15 18:49+0200\n" +"Last-Translator: Daniel Șerbănescu <daniel [at] serbanescu [dot] dk>\n" +"Language-Team: Gnome Romanian Translation Team\n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);;\n" +"X-Generator: Virtaal 0.7.1\n" +"X-Project-Style: gnome\n" + +#: ../src/js/ui/fallbackRenderer.js:119 +msgid "Type" +msgstr "Tip" + +#: ../src/js/ui/fallbackRenderer.js:120 ../src/js/ui/fallbackRenderer.js:129 +#: ../src/js/ui/fallbackRenderer.js:135 ../src/js/ui/spinnerBox.js:56 +msgid "Loading..." +msgstr "Se încarcă..." + +#: ../src/js/ui/fallbackRenderer.js:128 +msgid "Size" +msgstr "Mărime" + +#: ../src/js/ui/fallbackRenderer.js:134 +msgid "Modified" +msgstr "Modificat" + +#: ../src/js/viewers/audio.js:171 +msgid "from" +msgstr "din" + +#: ../src/js/viewers/audio.js:173 +msgid "by" +msgstr "de către" + +#: ../src/js/viewers/evince.js:77 +#, javascript-format +msgid "%d of %d" +msgstr "%d din %d" + +#: ../src/libsushi/sushi-file-loader.c:639 +#, c-format +msgid "%d item" +msgid_plural "%d items" +msgstr[0] "%d element" +msgstr[1] "%d elemente" +msgstr[2] "%d de elemente" + +#: ../src/libsushi/sushi-file-loader.c:651 +msgid "Empty Folder" +msgstr "Dosar gol" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sushi-3.18.0/po/sv.po new/sushi-3.19.90/po/sv.po --- old/sushi-3.18.0/po/sv.po 2014-11-20 18:17:19.000000000 +0100 +++ new/sushi-3.19.90/po/sv.po 2016-03-03 22:56:51.000000000 +0100 @@ -1,46 +1,37 @@ # Swedish translation for sushi. -# Copyright (C) 2011, 2012 Free Software Foundation, Inc. +# Copyright © 2011, 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the sushi package. # Daniel Nylander <p...@danielnylander.se>, 2011, 2012. # msgid "" msgstr "" "Project-Id-Version: sushi\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-02 10:41+0200\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=sushi&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2016-02-17 14:46+0000\n" "PO-Revision-Date: 2012-09-02 10:42+0100\n" "Last-Translator: Daniel Nylander <p...@danielnylander.se>\n" "Language-Team: Swedish <tp...@listor.tp-sv.se>\n" -"Language: \n" +"Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../data/org.gnome.sushi.gschema.xml.in.h:1 -msgid "Client decoration" -msgstr "Klientdekoration" - -#: ../data/org.gnome.sushi.gschema.xml.in.h:2 -msgid "Whether the window draws WM decorations itself" -msgstr "Huruvida fönstret ritar ut dekorationer från fönsterhanteraren själv" - -#: ../src/js/ui/fallbackRenderer.js:120 +#: ../src/js/ui/fallbackRenderer.js:119 msgid "Type" msgstr "Typ" -#: ../src/js/ui/fallbackRenderer.js:121 -#: ../src/js/ui/fallbackRenderer.js:130 -#: ../src/js/ui/fallbackRenderer.js:136 -#: ../src/js/ui/spinnerBox.js:57 +#: ../src/js/ui/fallbackRenderer.js:120 ../src/js/ui/fallbackRenderer.js:129 +#: ../src/js/ui/fallbackRenderer.js:135 ../src/js/ui/spinnerBox.js:56 msgid "Loading..." msgstr "Läser in..." -#: ../src/js/ui/fallbackRenderer.js:129 +#: ../src/js/ui/fallbackRenderer.js:128 msgid "Size" msgstr "Storlek" -#: ../src/js/ui/fallbackRenderer.js:135 +#: ../src/js/ui/fallbackRenderer.js:134 msgid "Modified" msgstr "Ändrad" @@ -52,8 +43,8 @@ msgid "by" msgstr "av" -#: ../src/js/viewers/evince.js:79 -#, c-format +#: ../src/js/viewers/evince.js:77 +#, javascript-format msgid "%d of %d" msgstr "%d av %d" @@ -68,3 +59,9 @@ msgid "Empty Folder" msgstr "Tom mapp" +#~ msgid "Client decoration" +#~ msgstr "Klientdekoration" + +#~ msgid "Whether the window draws WM decorations itself" +#~ msgstr "" +#~ "Huruvida fönstret ritar ut dekorationer från fönsterhanteraren själv" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sushi-3.18.0/src/js/viewers/audio.js new/sushi-3.19.90/src/js/viewers/audio.js --- old/sushi-3.18.0/src/js/viewers/audio.js 2015-07-22 21:26:54.000000000 +0200 +++ new/sushi-3.19.90/src/js/viewers/audio.js 2015-11-14 20:43:43.000000000 +0100 @@ -23,6 +23,7 @@ * */ +const GdkPixbuf = imports.gi.GdkPixbuf; const Gio = imports.gi.Gio; const Gst = imports.gi.Gst; const Gtk = imports.gi.Gtk; @@ -254,7 +255,8 @@ }, createToolbar : function () { - this._mainToolbar = new Gtk.Toolbar(); + this._mainToolbar = new Gtk.Toolbar({ margin_start: Constants.TOOLBAR_SPACING, + margin_end: Constants.TOOLBAR_SPACING }); this._mainToolbar.get_style_context().add_class('osd'); this._mainToolbar.set_icon_size(Gtk.IconSize.MENU); this._mainToolbar.show(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sushi-3.18.0/src/js/viewers/gst.js new/sushi-3.19.90/src/js/viewers/gst.js --- old/sushi-3.18.0/src/js/viewers/gst.js 2015-07-22 21:26:54.000000000 +0200 +++ new/sushi-3.19.90/src/js/viewers/gst.js 2015-11-14 20:03:46.000000000 +0100 @@ -23,7 +23,7 @@ * */ -imports.gi.versions.ClutterGst = '2.0'; +imports.gi.versions.ClutterGst = '3.0'; const ClutterGst = imports.gi.ClutterGst; const Clutter = imports.gi.Clutter; const Gdk = imports.gi.Gdk; @@ -60,29 +60,33 @@ }, clear : function() { - this._video.playing = false; + this._player.playing = false; }, _createVideo : function(file) { - this._video = - new ClutterGst.VideoTexture({ sync_size: false }); + this._player = new ClutterGst.Playback(); + this._video = new Clutter.Actor({ + content: new ClutterGst.Aspectratio({ + player: this._player + }) + }); - this._video.set_uri(file.get_uri()); - this._video.playing = true; + this._player.set_uri(file.get_uri()); + this._player.playing = true; this._videoSizeChangeId = - this._video.connect('size-change', - Lang.bind(this, - this._onVideoSizeChange)); - this._video.connect('notify::playing', - Lang.bind(this, - this._onVideoPlayingChange)); - this._video.connect('notify::progress', - Lang.bind(this, - this._onVideoProgressChange)); - this._video.connect('notify::duration', - Lang.bind(this, - this._onVideoDurationChange)); + this._player.connect('size-change', + Lang.bind(this, + this._onVideoSizeChange)); + this._player.connect('notify::playing', + Lang.bind(this, + this._onVideoPlayingChange)); + this._player.connect('notify::progress', + Lang.bind(this, + this._onVideoProgressChange)); + this._player.connect('notify::duration', + Lang.bind(this, + this._onVideoDurationChange)); }, _updateProgressBar : function() { @@ -90,7 +94,7 @@ return; this._isSettingValue = true; - this._progressBar.set_value(this._video.progress * 1000); + this._progressBar.set_value(this._player.progress * 1000); this._isSettingValue = false; }, @@ -99,7 +103,7 @@ return; let currentTime = - Math.floor(this._video.duration * this._video.progress); + Math.floor(this._player.duration * this._player.progress); this._currentLabel.set_text(Utils.formatTimeString(currentTime)); }, @@ -108,7 +112,7 @@ if (!this._mainToolbar) return; - let totalTime = this._video.duration; + let totalTime = this._player.duration; this._durationLabel.set_text(Utils.formatTimeString(totalTime)); }, @@ -123,7 +127,7 @@ }, _onVideoPlayingChange : function() { - if (this._video.playing) + if (this._player.playing) this._toolbarPlay.set_icon_name('media-playback-pause-symbolic'); else { @@ -166,8 +170,8 @@ this._toolbarPlay.connect('clicked', Lang.bind(this, function () { - let playing = !this._video.playing; - this._video.playing = playing; + let playing = !this._player.playing; + this._player.playing = playing; })); this._progressBar = @@ -178,7 +182,7 @@ this._progressBar.connect('value-changed', Lang.bind(this, function() { if(!this._isSettingValue) - this._video.progress = this._progressBar.get_value() / 1000; + this._player.progress = this._progressBar.get_value() / 1000; })); item = new Gtk.ToolItem(); @@ -200,7 +204,7 @@ return this._toolbarActor; }, - _onVideoSizeChange : function(video, width, height) { + _onVideoSizeChange : function(player, width, height) { this._videoWidth = width; this._videoHeight = height; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sushi-3.18.0/src/libsushi/sushi-cover-art.c new/sushi-3.19.90/src/libsushi/sushi-cover-art.c --- old/sushi-3.18.0/src/libsushi/sushi-cover-art.c 2014-11-20 18:17:19.000000000 +0100 +++ new/sushi-3.19.90/src/libsushi/sushi-cover-art.c 2015-11-14 20:36:57.000000000 +0100 @@ -155,61 +155,41 @@ } typedef struct { - SushiCoverArtFetcher *self; - GSimpleAsyncResult *result; gchar *artist; gchar *album; -} FetchUriJob; +} FetchUriTaskData; static void -fetch_uri_job_free (gpointer user_data) +fetch_uri_task_data_free (gpointer user_data) { - FetchUriJob *data = user_data; + FetchUriTaskData *data = user_data; - g_clear_object (&data->self); - g_clear_object (&data->result); g_free (data->artist); g_free (data->album); - g_slice_free (FetchUriJob, data); + g_slice_free (FetchUriTaskData, data); } -static FetchUriJob * -fetch_uri_job_new (SushiCoverArtFetcher *self, - const gchar *artist, - const gchar *album, - GAsyncReadyCallback callback, - gpointer user_data) +static FetchUriTaskData * +fetch_uri_task_data_new (const gchar *artist, + const gchar *album) { - FetchUriJob *retval; + FetchUriTaskData *retval; - retval = g_slice_new0 (FetchUriJob); + retval = g_slice_new0 (FetchUriTaskData); retval->artist = g_strdup (artist); retval->album = g_strdup (album); - retval->self = g_object_ref (self); - retval->result = g_simple_async_result_new (G_OBJECT (self), callback, user_data, - sushi_cover_art_fetcher_get_uri_for_track_async); return retval; } -static gboolean -fetch_uri_job_callback (gpointer user_data) -{ - FetchUriJob *job = user_data; - - g_simple_async_result_complete (job->result); - fetch_uri_job_free (job); - - return FALSE; -} - -static gboolean -fetch_uri_job (GIOSchedulerJob *sched_job, - GCancellable *cancellable, - gpointer user_data) +static void +fetch_uri_job (GTask *task, + gpointer source_object, + gpointer task_data, + GCancellable *cancellable) { - FetchUriJob *job = user_data; + FetchUriTaskData *data = task_data; Mb5Metadata metadata; Mb5Query query; Mb5Release release; @@ -224,7 +204,7 @@ param_values = g_new (gchar*, 3); param_names[0] = g_strdup ("query"); - param_values[0] = g_strdup_printf ("artist:\"%s\" AND release:\"%s\"", job->artist, job->album); + param_values[0] = g_strdup_printf ("artist:\"%s\" AND release:\"%s\"", data->artist, data->album); param_names[1] = g_strdup ("limit"); param_values[1] = g_strdup ("10"); @@ -258,21 +238,16 @@ if (retval == NULL) { /* FIXME: do we need a better error? */ - g_simple_async_result_set_error (job->result, - G_IO_ERROR, - 0, "%s", - "Error getting the ASIN from MusicBrainz"); + g_task_return_new_error (task, + G_IO_ERROR, + 0, "%s", + "Error getting the ASIN from MusicBrainz"); } else { - g_simple_async_result_set_op_res_gpointer (job->result, - retval, NULL); + g_task_return_pointer (task, retval, g_free); } - g_io_scheduler_job_send_to_mainloop_async (sched_job, - fetch_uri_job_callback, - job, NULL); g_strfreev (param_names); g_strfreev (param_values); - return FALSE; } static gchar * @@ -280,15 +255,7 @@ GAsyncResult *result, GError **error) { - gchar *retval; - - if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), - error)) - return NULL; - - retval = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (result)); - - return retval; + return g_task_propagate_pointer (G_TASK (result), error); } static void @@ -298,12 +265,12 @@ GAsyncReadyCallback callback, gpointer user_data) { - FetchUriJob *job; + FetchUriTaskData *data = fetch_uri_task_data_new (artist, album); + GTask *task = g_task_new (G_OBJECT (self), NULL, callback, user_data); + g_task_set_task_data (task, data, fetch_uri_task_data_free); - job = fetch_uri_job_new (self, artist, album, callback, user_data); - g_io_scheduler_push_job (fetch_uri_job, - job, NULL, - G_PRIORITY_DEFAULT, NULL); + g_task_run_in_thread (task, fetch_uri_job); + g_object_unref (task); } static GFile * diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sushi-3.18.0/src/libsushi/sushi-file-loader.c new/sushi-3.19.90/src/libsushi/sushi-file-loader.c --- old/sushi-3.18.0/src/libsushi/sushi-file-loader.c 2014-11-20 18:17:19.000000000 +0100 +++ new/sushi-3.19.90/src/libsushi/sushi-file-loader.c 2015-11-14 20:16:02.000000000 +0100 @@ -590,7 +590,7 @@ return NULL; retval = gtk_icon_info_load_icon (info, &error); - gtk_icon_info_free (info); + g_object_unref (info); if (error != NULL) { gchar *uri; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sushi-3.18.0/src/libsushi/sushi-font-widget.c new/sushi-3.19.90/src/libsushi/sushi-font-widget.c --- old/sushi-3.18.0/src/libsushi/sushi-font-widget.c 2015-07-22 21:26:54.000000000 +0200 +++ new/sushi-3.19.90/src/libsushi/sushi-font-widget.c 2015-11-21 23:51:36.000000000 +0100 @@ -1,5 +1,6 @@ /* * Copyright (C) 2011 Red Hat, Inc. + * Copyright (C) 2014 Khaled Hosny <khaledho...@eglug.org>. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -26,6 +27,7 @@ #include "sushi-font-widget.h" #include "sushi-font-loader.h" +#include <hb-glib.h> #include <math.h> enum { @@ -68,6 +70,112 @@ static const gchar uppercase_text_stock[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; static const gchar punctuation_text_stock[] = "0123456789.:,;(*!?')"; +static void +text_to_glyphs (cairo_t *cr, + const gchar *text, + cairo_glyph_t **glyphs, + int *num_glyphs) +{ + PangoAttribute *fallback_attr; + PangoAttrList *attr_list; + PangoContext *context; + PangoDirection base_dir; + GList *items; + GList *visual_items; + FT_Face ft_face; + hb_font_t *hb_font; + gdouble x = 0, y = 0; + gint i; + gdouble x_scale, y_scale; + + *num_glyphs = 0; + *glyphs = NULL; + + base_dir = pango_find_base_dir (text, -1); + + cairo_scaled_font_t *cr_font = cairo_get_scaled_font (cr); + ft_face = cairo_ft_scaled_font_lock_face (cr_font); + hb_font = hb_ft_font_create (ft_face, NULL); + + cairo_surface_t *target = cairo_get_target (cr); + cairo_surface_get_device_scale (target, &x_scale, &y_scale); + + /* We abuse pango itemazation to split text into script and direction + * runs, since we use our fonts directly no through pango, we don't + * bother changing the default font, but we disable font fallback as + * pango will split runs at font change */ + context = pango_cairo_create_context (cr); + attr_list = pango_attr_list_new (); + fallback_attr = pango_attr_fallback_new (FALSE); + pango_attr_list_insert (attr_list, fallback_attr); + items = pango_itemize_with_base_dir (context, base_dir, + text, 0, strlen (text), + attr_list, NULL); + g_object_unref (context); + pango_attr_list_unref (attr_list); + + /* reorder the items in the visual order */ + visual_items = pango_reorder_items (items); + + while (visual_items) { + PangoItem *item; + PangoAnalysis analysis; + hb_buffer_t *hb_buffer; + hb_glyph_info_t *hb_glyphs; + hb_glyph_position_t *hb_positions; + gint n; + + item = visual_items->data; + analysis = item->analysis; + + hb_buffer = hb_buffer_create (); + hb_buffer_add_utf8 (hb_buffer, text, -1, item->offset, item->length); + hb_buffer_set_script (hb_buffer, hb_glib_script_to_script (analysis.script)); + hb_buffer_set_language (hb_buffer, hb_language_from_string (pango_language_to_string (analysis.language), -1)); + hb_buffer_set_direction (hb_buffer, analysis.level % 2 ? HB_DIRECTION_RTL : HB_DIRECTION_LTR); + + hb_shape (hb_font, hb_buffer, NULL, 0); + + n = hb_buffer_get_length (hb_buffer); + hb_glyphs = hb_buffer_get_glyph_infos (hb_buffer, NULL); + hb_positions = hb_buffer_get_glyph_positions (hb_buffer, NULL); + + *glyphs = g_renew (cairo_glyph_t, *glyphs, *num_glyphs + n); + + for (i = 0; i < n; i++) { + (*glyphs)[*num_glyphs + i].index = hb_glyphs[i].codepoint; + (*glyphs)[*num_glyphs + i].x = x + (hb_positions[i].x_offset / (64. * x_scale)); + (*glyphs)[*num_glyphs + i].y = y - (hb_positions[i].y_offset / (64. * y_scale)); + x += (hb_positions[i].x_advance / (64. * x_scale)); + y -= (hb_positions[i].y_advance / (64. * y_scale)); + } + + *num_glyphs += n; + + hb_buffer_destroy (hb_buffer); + + visual_items = visual_items->next; + } + + g_list_free_full (visual_items, (GDestroyNotify) pango_item_free); + g_list_free_full (items, (GDestroyNotify) pango_item_free); + + hb_font_destroy (hb_font); + cairo_ft_scaled_font_unlock_face (cr_font); +} + +static void +text_extents (cairo_t *cr, + const char *text, + cairo_text_extents_t *extents) +{ + cairo_glyph_t *glyphs; + gint num_glyphs; + text_to_glyphs (cr, text, &glyphs, &num_glyphs); + cairo_glyph_extents (cr, glyphs, num_glyphs, extents); + g_free (glyphs); +} + /* adapted from gnome-utils:font-viewer/font-view.c * * Copyright (C) 2002-2003 James Henstridge <ja...@daa.com.au> @@ -84,13 +192,18 @@ { cairo_font_extents_t font_extents; cairo_text_extents_t extents; + cairo_glyph_t *glyphs; GtkTextDirection text_dir; gint pos_x; + gint num_glyphs; + gint i; text_dir = gtk_widget_get_direction (GTK_WIDGET (self)); + text_to_glyphs (cr, text, &glyphs, &num_glyphs); + cairo_font_extents (cr, &font_extents); - cairo_text_extents (cr, text, &extents); + cairo_glyph_extents (cr, glyphs, num_glyphs, &extents); if (pos_y != NULL) *pos_y += font_extents.ascent + font_extents.descent + @@ -102,8 +215,15 @@ extents.x_advance - padding.right; } + for (i = 0; i < num_glyphs; i++) { + glyphs[i].x += pos_x; + glyphs[i].y += *pos_y; + } + cairo_move_to (cr, pos_x, *pos_y); - cairo_show_text (cr, text); + cairo_show_glyphs (cr, glyphs, num_glyphs); + + g_free (glyphs); *pos_y += LINE_SPACING / 2; } @@ -113,29 +233,20 @@ const gchar *text) { gunichar *string; - glong len, idx, map; - FT_CharMap charmap; - gboolean retval = FALSE; + glong len, idx; + gboolean retval = TRUE; string = g_utf8_to_ucs4_fast (text, -1, &len); - for (map = 0; map < face->num_charmaps; map++) { - charmap = face->charmaps[map]; - FT_Set_Charmap (face, charmap); - - retval = TRUE; + FT_Select_Charmap (face, FT_ENCODING_UNICODE); - for (idx = 0; idx < len; idx++) { - gunichar c = string[idx]; + for (idx = 0; idx < len; idx++) { + gunichar c = string[idx]; - if (!FT_Get_Char_Index (face, c)) { - retval = FALSE; - break; - } - } - - if (retval) + if (!FT_Get_Char_Index (face, c)) { + retval = FALSE; break; + } } g_free (string); @@ -371,7 +482,7 @@ if (self->priv->font_name != NULL) { cairo_set_font_size (cr, title_size); cairo_font_extents (cr, &font_extents); - cairo_text_extents (cr, self->priv->font_name, &extents); + text_extents (cr, self->priv->font_name, &extents); pixmap_height += font_extents.ascent + font_extents.descent + extents.y_advance + LINE_SPACING; pixmap_width = MAX (pixmap_width, extents.width + padding.left + padding.right); @@ -382,21 +493,21 @@ cairo_font_extents (cr, &font_extents); if (self->priv->lowercase_text != NULL) { - cairo_text_extents (cr, self->priv->lowercase_text, &extents); + text_extents (cr, self->priv->lowercase_text, &extents); pixmap_height += font_extents.ascent + font_extents.descent + extents.y_advance + LINE_SPACING; pixmap_width = MAX (pixmap_width, extents.width + padding.left + padding.right); } if (self->priv->uppercase_text != NULL) { - cairo_text_extents (cr, self->priv->uppercase_text, &extents); + text_extents (cr, self->priv->uppercase_text, &extents); pixmap_height += font_extents.ascent + font_extents.descent + extents.y_advance + LINE_SPACING; pixmap_width = MAX (pixmap_width, extents.width + padding.left + padding.right); } if (self->priv->punctuation_text != NULL) { - cairo_text_extents (cr, self->priv->punctuation_text, &extents); + text_extents (cr, self->priv->punctuation_text, &extents); pixmap_height += font_extents.ascent + font_extents.descent + extents.y_advance + LINE_SPACING; pixmap_width = MAX (pixmap_width, extents.width + padding.left + padding.right); @@ -408,7 +519,7 @@ for (i = 0; i < n_sizes; i++) { cairo_set_font_size (cr, sizes[i]); cairo_font_extents (cr, &font_extents); - cairo_text_extents (cr, self->priv->sample_string, &extents); + text_extents (cr, self->priv->sample_string, &extents); pixmap_height += font_extents.ascent + font_extents.descent + extents.y_advance + LINE_SPACING; pixmap_width = MAX (pixmap_width, extents.width + padding.left + padding.right); @@ -529,7 +640,8 @@ for (i = 0; i < n_sizes; i++) { cairo_set_font_size (cr, sizes[i]); - draw_string (self, cr, padding, self->priv->sample_string, &pos_y); + if (self->priv->sample_string != NULL) + draw_string (self, cr, padding, self->priv->sample_string, &pos_y); if (pos_y > allocated_height) break; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sushi-3.18.0/src/libsushi/sushi-font-widget.h new/sushi-3.19.90/src/libsushi/sushi-font-widget.h --- old/sushi-3.18.0/src/libsushi/sushi-font-widget.h 2014-11-20 18:17:19.000000000 +0100 +++ new/sushi-3.19.90/src/libsushi/sushi-font-widget.h 2015-11-21 23:51:36.000000000 +0100 @@ -29,6 +29,7 @@ #include <glib-object.h> #include <gtk/gtk.h> #include <cairo/cairo-ft.h> +#include <hb-ft.h> G_BEGIN_DECLS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sushi-3.18.0/src/libsushi/sushi-pdf-loader.c new/sushi-3.19.90/src/libsushi/sushi-pdf-loader.c --- old/sushi-3.18.0/src/libsushi/sushi-pdf-loader.c 2014-11-20 18:17:19.000000000 +0100 +++ new/sushi-3.19.90/src/libsushi/sushi-pdf-loader.c 2015-11-14 20:05:55.000000000 +0100 @@ -90,8 +90,6 @@ g_dbus_connection_call_finish (G_DBUS_CONNECTION (source), res, &error); if (error != NULL) { - GError *local_error; - /* can't install unoconv with packagekit - nothing else we can do */ /* FIXME: error reporting! */ g_warning ("unoconv not found, and PackageKit failed to install it with error %s", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sushi-3.18.0/src/libsushi/sushi-text-loader.c new/sushi-3.19.90/src/libsushi/sushi-text-loader.c --- old/sushi-3.18.0/src/libsushi/sushi-text-loader.c 2015-06-26 02:40:08.000000000 +0200 +++ new/sushi-3.19.90/src/libsushi/sushi-text-loader.c 2015-11-14 20:06:14.000000000 +0100 @@ -205,8 +205,6 @@ sushi_text_loader_set_uri (SushiTextLoader *self, const gchar *uri) { - GFile *location; - if (g_strcmp0 (uri, self->priv->uri) != 0) { g_free (self->priv->uri); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sushi-3.18.0/src/libsushi/sushi-utils.c new/sushi-3.19.90/src/libsushi/sushi-utils.c --- old/sushi-3.18.0/src/libsushi/sushi-utils.c 2015-07-19 19:41:51.000000000 +0200 +++ new/sushi-3.19.90/src/libsushi/sushi-utils.c 2015-11-14 20:04:15.000000000 +0100 @@ -25,7 +25,11 @@ #include "sushi-utils.h" +#include <gtk/gtk.h> + +#ifdef GDK_WINDOWING_X11 #include <gdk/gdkx.h> +#endif /** * sushi_create_foreign_window: @@ -36,10 +40,12 @@ GdkWindow * sushi_create_foreign_window (guint xid) { - GdkWindow *retval; + GdkWindow *retval = NULL; - retval = gdk_x11_window_foreign_new_for_display (gdk_display_get_default (), - xid); +#ifdef GDK_WINDOWING_X11 + if (GDK_IS_X11_DISPLAY (gdk_display_get_default ())) + retval = gdk_x11_window_foreign_new_for_display (gdk_display_get_default (), xid); +#endif return retval; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sushi-3.18.0/src/resources/gtk-style.css new/sushi-3.19.90/src/resources/gtk-style.css --- old/sushi-3.18.0/src/resources/gtk-style.css 2015-07-22 21:38:50.000000000 +0200 +++ new/sushi-3.19.90/src/resources/gtk-style.css 2016-03-03 22:56:51.000000000 +0100 @@ -15,13 +15,13 @@ background-color: shade (@np_bg_color, 1.30); } -.scrollbar.button:prelight, -.scrollbar.slider:prelight { +.scrollbar.button:hover, +.scrollbar.slider:hover { background-color: shade (@np_bg_color, 1.45); } -.scrollbar.button:prelight:active, -.scrollbar.slider:prelight:active { +.scrollbar.button:hover:active, +.scrollbar.slider:hover:active { background-color: shade (@np_bg_color, 1.70); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sushi-3.18.0/src/sushi-resources.c new/sushi-3.19.90/src/sushi-resources.c --- old/sushi-3.18.0/src/sushi-resources.c 2015-07-22 22:52:21.000000000 +0200 +++ new/sushi-3.19.90/src/sushi-resources.c 2016-03-03 22:56:58.000000000 +0100 @@ -6,7 +6,7 @@ # define SECTION #endif -static const SECTION union { const guint8 data[1900]; const double alignment; void * const ptr;} sushi_resource_data = { { +static const SECTION union { const guint8 data[1888]; const double alignment; void * const ptr;} sushi_resource_data = { { 0x47, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, @@ -25,16 +25,16 @@ 0xc8, 0x00, 0x00, 0x00, 0x86, 0x91, 0x82, 0x58, 0x02, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x76, 0x00, 0xd8, 0x00, 0x00, 0x00, - 0x60, 0x07, 0x00, 0x00, 0xb0, 0xb7, 0x24, 0x30, - 0x01, 0x00, 0x00, 0x00, 0x60, 0x07, 0x00, 0x00, - 0x06, 0x00, 0x4c, 0x00, 0x68, 0x07, 0x00, 0x00, - 0x6c, 0x07, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x54, 0x07, 0x00, 0x00, 0xb0, 0xb7, 0x24, 0x30, + 0x01, 0x00, 0x00, 0x00, 0x54, 0x07, 0x00, 0x00, + 0x06, 0x00, 0x4c, 0x00, 0x5c, 0x07, 0x00, 0x00, + 0x60, 0x07, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6f, 0x72, 0x67, 0x2f, 0x04, 0x00, 0x00, 0x00, 0x53, 0x75, 0x73, 0x68, 0x69, 0x2f, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x67, 0x74, 0x6b, 0x2d, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x63, 0x73, 0x73, 0x00, 0x00, 0x00, - 0x78, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6c, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x6e, 0x70, 0x5f, 0x66, 0x67, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, @@ -73,178 +73,176 @@ 0x72, 0x2c, 0x20, 0x31, 0x2e, 0x33, 0x30, 0x29, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x2e, - 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x70, - 0x72, 0x65, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x2c, - 0x0a, 0x2e, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, - 0x62, 0x61, 0x72, 0x2e, 0x73, 0x6c, 0x69, 0x64, - 0x65, 0x72, 0x3a, 0x70, 0x72, 0x65, 0x6c, 0x69, - 0x67, 0x68, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x68, + 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x0a, 0x2e, 0x73, + 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x72, + 0x2e, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x3a, + 0x68, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x68, + 0x61, 0x64, 0x65, 0x20, 0x28, 0x40, 0x6e, 0x70, + 0x5f, 0x62, 0x67, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x2c, 0x20, 0x31, 0x2e, 0x34, 0x35, 0x29, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x73, 0x63, + 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x2e, + 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x68, + 0x6f, 0x76, 0x65, 0x72, 0x3a, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x2c, 0x0a, 0x2e, 0x73, 0x63, + 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x2e, + 0x73, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x3a, 0x68, + 0x6f, 0x76, 0x65, 0x72, 0x3a, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x68, 0x61, 0x64, 0x65, 0x20, 0x28, 0x40, 0x6e, 0x70, 0x5f, 0x62, 0x67, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x2c, - 0x20, 0x31, 0x2e, 0x34, 0x35, 0x29, 0x3b, 0x0a, - 0x7d, 0x0a, 0x0a, 0x2e, 0x73, 0x63, 0x72, 0x6f, - 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x2e, 0x62, 0x75, - 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x70, 0x72, 0x65, - 0x6c, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x2c, 0x0a, 0x2e, 0x73, - 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x72, - 0x2e, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x3a, - 0x70, 0x72, 0x65, 0x6c, 0x69, 0x67, 0x68, 0x74, - 0x3a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, - 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, - 0x73, 0x68, 0x61, 0x64, 0x65, 0x20, 0x28, 0x40, - 0x6e, 0x70, 0x5f, 0x62, 0x67, 0x5f, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x2c, 0x20, 0x31, 0x2e, 0x37, - 0x30, 0x29, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, - 0x74, 0x69, 0x74, 0x6c, 0x65, 0x62, 0x61, 0x72, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, - 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, - 0x20, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x3b, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, - 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x69, + 0x20, 0x31, 0x2e, 0x37, 0x30, 0x29, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x2e, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x62, 0x61, 0x72, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x62, 0x6c, 0x61, + 0x63, 0x6b, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, 0x78, 0x2d, + 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x3a, 0x20, + 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x2e, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x62, 0x61, 0x72, 0x20, 0x2e, 0x62, 0x75, + 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, + 0x65, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x68, 0x61, 0x64, - 0x6f, 0x77, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x73, + 0x74, 0x79, 0x6c, 0x65, 0x3a, 0x20, 0x6e, 0x6f, + 0x6e, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, + 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6e, 0x6f, - 0x6e, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, - 0x74, 0x69, 0x74, 0x6c, 0x65, 0x62, 0x61, 0x72, - 0x20, 0x2e, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, - 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, - 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x2d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x3a, - 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0a, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x2d, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x2d, 0x73, 0x74, 0x79, 0x6c, 0x65, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, + 0x78, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, - 0x73, 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, - 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, - 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, - 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x3b, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x68, - 0x61, 0x64, 0x6f, 0x77, 0x3a, 0x20, 0x6e, 0x6f, - 0x6e, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, - 0x74, 0x69, 0x74, 0x6c, 0x65, 0x62, 0x61, 0x72, - 0x20, 0x2e, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, - 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x63, - 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, - 0x69, 0x6d, 0x61, 0x67, 0x65, 0x3a, 0x20, 0x2d, - 0x67, 0x74, 0x6b, 0x2d, 0x67, 0x72, 0x61, 0x64, - 0x69, 0x65, 0x6e, 0x74, 0x28, 0x6c, 0x69, 0x6e, - 0x65, 0x61, 0x72, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x7d, 0x0a, 0x0a, 0x2e, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x62, 0x61, 0x72, 0x20, 0x2e, 0x62, 0x75, + 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x68, 0x6f, 0x76, + 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x3a, 0x20, 0x2d, 0x67, 0x74, 0x6b, 0x2d, + 0x67, 0x72, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x74, + 0x28, 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x66, + 0x74, 0x20, 0x74, 0x6f, 0x70, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x74, 0x6f, - 0x70, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, - 0x65, 0x66, 0x74, 0x20, 0x62, 0x6f, 0x74, 0x74, - 0x6f, 0x6d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, + 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x66, 0x72, 0x6f, 0x6d, 0x28, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x28, 0x40, 0x6e, 0x70, 0x5f, 0x62, - 0x67, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x2c, - 0x20, 0x30, 0x2e, 0x30, 0x29, 0x29, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x28, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x28, 0x40, + 0x6e, 0x70, 0x5f, 0x62, 0x67, 0x5f, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x2c, 0x20, 0x30, 0x2e, 0x30, + 0x29, 0x29, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x2d, 0x73, 0x74, 0x6f, 0x70, 0x28, 0x30, - 0x2e, 0x35, 0x30, 0x2c, 0x20, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x28, 0x40, 0x6e, 0x70, 0x5f, 0x62, - 0x67, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x2c, - 0x20, 0x30, 0x2e, 0x36, 0x36, 0x29, 0x29, 0x2c, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x2d, 0x73, 0x74, + 0x6f, 0x70, 0x28, 0x30, 0x2e, 0x35, 0x30, 0x2c, + 0x20, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x28, 0x40, + 0x6e, 0x70, 0x5f, 0x62, 0x67, 0x5f, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x2c, 0x20, 0x30, 0x2e, 0x36, + 0x36, 0x29, 0x29, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6f, 0x28, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x28, 0x40, 0x6e, - 0x70, 0x5f, 0x62, 0x67, 0x5f, 0x63, 0x6f, 0x6c, - 0x6f, 0x72, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x29, - 0x29, 0x29, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, - 0x74, 0x69, 0x74, 0x6c, 0x65, 0x62, 0x61, 0x72, - 0x20, 0x2e, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, - 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x3a, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, - 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x69, - 0x6d, 0x61, 0x67, 0x65, 0x3a, 0x20, 0x2d, 0x67, - 0x74, 0x6b, 0x2d, 0x67, 0x72, 0x61, 0x64, 0x69, - 0x65, 0x6e, 0x74, 0x28, 0x6c, 0x69, 0x6e, 0x65, - 0x61, 0x72, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x74, 0x6f, 0x28, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x28, 0x40, 0x6e, 0x70, 0x5f, 0x62, 0x67, + 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x2c, 0x20, + 0x30, 0x2e, 0x30, 0x29, 0x29, 0x29, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x2e, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x62, 0x61, 0x72, 0x20, 0x2e, 0x62, 0x75, + 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x68, 0x6f, 0x76, + 0x65, 0x72, 0x3a, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x3a, 0x20, 0x2d, 0x67, 0x74, 0x6b, 0x2d, 0x67, + 0x72, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x74, 0x28, + 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x6c, 0x65, 0x66, 0x74, 0x20, 0x74, 0x6f, 0x70, - 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x66, 0x74, + 0x20, 0x74, 0x6f, 0x70, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, - 0x66, 0x74, 0x20, 0x62, 0x6f, 0x74, 0x74, 0x6f, - 0x6d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, - 0x72, 0x6f, 0x6d, 0x28, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x28, 0x40, 0x6e, 0x70, 0x5f, 0x62, 0x67, - 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x2c, 0x20, - 0x30, 0x2e, 0x30, 0x29, 0x29, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x62, + 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x2d, 0x73, 0x74, 0x6f, 0x70, 0x28, 0x30, 0x2e, - 0x35, 0x30, 0x2c, 0x20, 0x40, 0x6e, 0x70, 0x5f, - 0x62, 0x67, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x20, 0x20, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x28, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x28, 0x40, 0x6e, + 0x70, 0x5f, 0x62, 0x67, 0x5f, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x29, 0x29, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, - 0x6f, 0x28, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x28, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x2d, 0x73, 0x74, 0x6f, + 0x70, 0x28, 0x30, 0x2e, 0x35, 0x30, 0x2c, 0x20, 0x40, 0x6e, 0x70, 0x5f, 0x62, 0x67, 0x5f, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x2c, 0x20, 0x30, 0x2e, - 0x30, 0x29, 0x29, 0x29, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x2e, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x2d, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, 0x78, - 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x3a, - 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, - 0x6e, 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, - 0x00, 0x00, 0x28, 0x75, 0x75, 0x61, 0x79, 0x29, - 0x67, 0x6e, 0x6f, 0x6d, 0x65, 0x2f, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00 + 0x6f, 0x6c, 0x6f, 0x72, 0x29, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x74, 0x6f, 0x28, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x28, 0x40, 0x6e, 0x70, 0x5f, + 0x62, 0x67, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x29, 0x29, 0x29, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2e, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x2d, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x68, 0x61, + 0x64, 0x6f, 0x77, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, + 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, + 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x20, 0x30, + 0x3b, 0x0a, 0x7d, 0x0a, 0x00, 0x00, 0x28, 0x75, + 0x75, 0x61, 0x79, 0x29, 0x67, 0x6e, 0x6f, 0x6d, + 0x65, 0x2f, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 } }; static GStaticResource static_resource = { sushi_resource_data.data, sizeof (sushi_resource_data.data), NULL, NULL, NULL }; @@ -285,17 +283,43 @@ #define G_HAS_CONSTRUCTORS 1 -#define G_DEFINE_CONSTRUCTOR(_func) \ +/* We do some weird things to avoid the constructors being optimized + * away on VS2015 if WholeProgramOptimization is enabled. First we + * make a reference to the array from the wrapper to make sure its + * references. Then we use a pragma to make sure the wrapper function + * symbol is always included at the link stage. Also, the symbols + * need to be extern (but not dllexport), even though they are not + * really used from another object file. + */ + +/* We need to account for differences between the mangling of symbols + * for Win32 (x86) and x64 programs, as symbols on Win32 are prefixed + * with an underscore but symbols on x64 are not. + */ +#ifdef _WIN64 +#define G_MSVC_SYMBOL_PREFIX "" +#else +#define G_MSVC_SYMBOL_PREFIX "_" +#endif + +#define G_DEFINE_CONSTRUCTOR(_func) G_MSVC_CTOR (_func, G_MSVC_SYMBOL_PREFIX) +#define G_DEFINE_DESTRUCTOR(_func) G_MSVC_DTOR (_func, G_MSVC_SYMBOL_PREFIX) + +#define G_MSVC_CTOR(_func,_sym_prefix) \ static void _func(void); \ - static int _func ## _wrapper(void) { _func(); return 0; } \ + extern int (* _array ## _func)(void); \ + int _func ## _wrapper(void) { _func(); g_slist_find (NULL, _array ## _func); return 0; } \ + __pragma(comment(linker,"/include:" _sym_prefix # _func "_wrapper")) \ __pragma(section(".CRT$XCU",read)) \ - __declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = _func ## _wrapper; + __declspec(allocate(".CRT$XCU")) int (* _array ## _func)(void) = _func ## _wrapper; -#define G_DEFINE_DESTRUCTOR(_func) \ +#define G_MSVC_DTOR(_func,_sym_prefix) \ static void _func(void); \ - static int _func ## _constructor(void) { atexit (_func); return 0; } \ + extern int (* _array ## _func)(void); \ + int _func ## _constructor(void) { atexit (_func); g_slist_find (NULL, _array ## _func); return 0; } \ + __pragma(comment(linker,"/include:" _sym_prefix # _func "_constructor")) \ __pragma(section(".CRT$XCU",read)) \ - __declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = _func ## _constructor; + __declspec(allocate(".CRT$XCU")) int (* _array ## _func)(void) = _func ## _constructor; #elif defined (_MSC_VER)