Hello community,

here is the log from the commit of package gnome-photos for openSUSE:Factory 
checked in at 2015-11-11 10:31:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-photos (Old)
 and      /work/SRC/openSUSE:Factory/.gnome-photos.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gnome-photos"

Changes:
--------
--- /work/SRC/openSUSE:Factory/gnome-photos/gnome-photos.changes        
2015-10-26 12:47:48.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.gnome-photos.new/gnome-photos.changes   
2015-11-11 10:35:32.000000000 +0100
@@ -1,0 +2,8 @@
+Sun Nov  8 19:11:52 UTC 2015 - [email protected]
+
+- Update to version 3.18.2:
+  + Bugs fixed: bgo#734766, bgo#747446, bgo#751106, bgo#756133,
+    bgo#757015, bgo#757199.
+  + Updated translations.
+
+-------------------------------------------------------------------

Old:
----
  gnome-photos-3.18.1.tar.xz

New:
----
  gnome-photos-3.18.2.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gnome-photos.spec ++++++
--- /var/tmp/diff_new_pack.orhA9w/_old  2015-11-11 10:35:33.000000000 +0100
+++ /var/tmp/diff_new_pack.orhA9w/_new  2015-11-11 10:35:33.000000000 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           gnome-photos
-Version:        3.18.1
+Version:        3.18.2
 Release:        0
 Summary:        Photo viewer for GNOME
 License:        GPL-3.0+

++++++ gnome-photos-3.18.1.tar.xz -> gnome-photos-3.18.2.tar.xz ++++++
++++ 3204 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/gnome-photos-3.18.1/NEWS new/gnome-photos-3.18.2/NEWS
--- old/gnome-photos-3.18.1/NEWS        2015-10-12 12:24:54.000000000 +0200
+++ new/gnome-photos-3.18.2/NEWS        2015-11-08 18:59:05.000000000 +0100
@@ -1,3 +1,18 @@
+Overview of changes in 3.18.2
+=============================
+
+* Bugs fixed:
+ 734766 properties-dialog: Be more forgiving of unknown nmm:flash values
+ 747446 gegl-gtk-view, gegl-gtk-view-helper: Fix HiDpi rendering
+ 751106 Make favorite button's icon retain the active color
+ 756133 view-model: Stop listening to info-updated when an item is removed
+ 757015 Improve the responsiveness of the favorite button
+ 757199 Crash when quitting due to the ViewModel outliving the Embed
+
+* Updated translations:
+ Portuguese
+
+
 Overview of changes in 3.18.1
 =============================
 
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/gnome-photos-3.18.1/config/compile new/gnome-photos-3.18.2/config/compile
--- old/gnome-photos-3.18.1/config/compile      2015-10-12 12:26:17.000000000 
+0200
+++ new/gnome-photos-3.18.2/config/compile      2015-11-08 19:00:27.000000000 
+0100
@@ -3,7 +3,7 @@
 
 scriptversion=2012-10-14.11; # UTC
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
 # Written by Tom Tromey <[email protected]>.
 #
 # This program is free software; you can redistribute it and/or modify
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/gnome-photos-3.18.1/config/missing new/gnome-photos-3.18.2/config/missing
--- old/gnome-photos-3.18.1/config/missing      2015-10-12 12:26:17.000000000 
+0200
+++ new/gnome-photos-3.18.2/config/missing      2015-11-08 19:00:27.000000000 
+0100
@@ -3,7 +3,7 @@
 
 scriptversion=2013-10-28.13; # UTC
 
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
 # Originally written by Fran,cois Pinard <[email protected]>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
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/gnome-photos-3.18.1/configure.ac new/gnome-photos-3.18.2/configure.ac
--- old/gnome-photos-3.18.1/configure.ac        2015-10-12 12:24:54.000000000 
+0200
+++ new/gnome-photos-3.18.2/configure.ac        2015-11-08 18:48:50.000000000 
+0100
@@ -1,5 +1,5 @@
 AC_INIT([Photos],
-        [3.18.1],
+        [3.18.2],
         [https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-photos],
         [gnome-photos],
         [https://wiki.gnome.org/Apps/Photos])
@@ -148,6 +148,11 @@
 AX_REQUIRE_DEFINED([YELP_HELP_INIT])
 YELP_HELP_INIT
 
+# work around intltool-update issues during 'make distcheck'
+AS_IF([test "x$0" != "x./configure"], [
+  AC_SUBST([INTLTOOL_UPDATE], [/bin/true])
+])
+
 AC_CONFIG_FILES([
 Makefile
 data/Makefile
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/gnome-photos-3.18.1/data/Adwaita.css 
new/gnome-photos-3.18.2/data/Adwaita.css
--- old/gnome-photos-3.18.1/data/Adwaita.css    2015-10-09 13:15:31.000000000 
+0200
+++ new/gnome-photos-3.18.2/data/Adwaita.css    2015-11-08 18:41:38.000000000 
+0100
@@ -104,8 +104,7 @@
     background-image: url("sidebar-radio-selected-prelight.svg");
 }
 
-.photos-favorite.button:active,
-.photos-favorite.button:active:hover {
+.photos-favorite.button {
     color: shade(@theme_selected_bg_color, 1.20);
 }
 
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/gnome-photos-3.18.1/git.mk new/gnome-photos-3.18.2/git.mk
--- old/gnome-photos-3.18.1/git.mk      2014-05-27 14:34:16.000000000 +0200
+++ new/gnome-photos-3.18.2/git.mk      1970-01-01 01:00:00.000000000 +0100
@@ -1,285 +0,0 @@
-# git.mk
-#
-# Copyright 2009, Red Hat, Inc.
-# Copyright 2010,2011,2012,2013 Behdad Esfahbod
-# Written by Behdad Esfahbod
-#
-# Copying and distribution of this file, with or without modification,
-# is permitted in any medium without royalty provided the copyright
-# notice and this notice are preserved.
-#
-# The latest version of this file can be downloaded from:
-#   https://raw.github.com/behdad/git.mk/master/git.mk
-# Bugs, etc, should be reported upstream at:
-#   https://github.com/behdad/git.mk
-#
-# To use in your project, import this file in your git repo's toplevel,
-# then do "make -f git.mk".  This modifies all Makefile.am files in
-# your project to -include git.mk.  Remember to add that line to new
-# Makefile.am files you create in your project, or just rerun the
-# "make -f git.mk".
-#
-# This enables automatic .gitignore generation.  If you need to ignore
-# more files, add them to the GITIGNOREFILES variable in your Makefile.am.
-# But think twice before doing that.  If a file has to be in .gitignore,
-# chances are very high that it's a generated file and should be in one
-# of MOSTLYCLEANFILES, CLEANFILES, DISTCLEANFILES, or MAINTAINERCLEANFILES.
-#
-# The only case that you need to manually add a file to GITIGNOREFILES is
-# when remove files in one of mostlyclean-local, clean-local, distclean-local,
-# or maintainer-clean-local make targets.
-#
-# Note that for files like editor backup, etc, there are better places to
-# ignore them.  See "man gitignore".
-#
-# If "make maintainer-clean" removes the files but they are not recognized
-# by this script (that is, if "git status" shows untracked files still), send
-# me the output of "git status" as well as your Makefile.am and Makefile for
-# the directories involved and I'll diagnose.
-#
-# For a list of toplevel files that should be in MAINTAINERCLEANFILES, see
-# Makefile.am.sample in the git.mk git repo.
-#
-# Don't EXTRA_DIST this file.  It is supposed to only live in git clones,
-# not tarballs.  It serves no useful purpose in tarballs and clutters the
-# build dir.
-#
-# This file knows how to handle autoconf, automake, libtool, gtk-doc,
-# gnome-doc-utils, yelp.m4, mallard, intltool, gsettings, dejagnu.
-#
-# This makefile provides the following targets:
-#
-# - all: "make all" will build all gitignore files.
-# - gitignore: makes all gitignore files in the current dir and subdirs.
-# - .gitignore: make gitignore file for the current dir.
-# - gitignore-recurse: makes all gitignore files in the subdirs.
-#
-# KNOWN ISSUES:
-#
-# - Recursive configure doesn't work as $(top_srcdir)/git.mk inside the
-#   submodule doesn't find us.  If you have configure.{in,ac} files in
-#   subdirs, add a proxy git.mk file in those dirs that simply does:
-#   "include $(top_srcdir)/../git.mk".  Add more ..'s to your taste.
-#   And add those files to git.  See vte/gnome-pty-helper/git.mk for
-#   example.
-#
-
-
-
-###############################################################################
-# Variables user modules may want to add to toplevel MAINTAINERCLEANFILES:
-###############################################################################
-
-#
-# Most autotools-using modules should be fine including this variable in their
-# toplevel MAINTAINERCLEANFILES:
-GITIGNORE_MAINTAINERCLEANFILES_TOPLEVEL = \
-       $(srcdir)/aclocal.m4 \
-       $(srcdir)/ar-lib \
-       $(srcdir)/autoscan.log \
-       $(srcdir)/compile \
-       $(srcdir)/config.guess \
-       $(srcdir)/config.h.in \
-       $(srcdir)/config.sub \
-       $(srcdir)/configure.scan \
-       $(srcdir)/depcomp \
-       $(srcdir)/install-sh \
-       $(srcdir)/ltmain.sh \
-       $(srcdir)/missing \
-       $(srcdir)/mkinstalldirs
-#
-# All modules should also be fine including the following variable, which
-# removes automake-generated Makefile.in files:
-GITIGNORE_MAINTAINERCLEANFILES_MAKEFILE_IN = \
-       `$(AUTOCONF) --trace 'AC_CONFIG_FILES:$$1' $(srcdir)/configure.ac | \
-       while read f; do \
-         case $$f in Makefile|*/Makefile) \
-           test -f "$(srcdir)/$$f.am" && echo "$(srcdir)/$$f.in";; esac; \
-       done`
-#
-# Modules that use libtool /and/ use  AC_CONFIG_MACRO_DIR([m4]) may also
-# include this:
-GITIGNORE_MAINTAINERCLEANFILES_M4_LIBTOOL = \
-       $(srcdir)/m4/libtool.m4 \
-       $(srcdir)/m4/ltoptions.m4 \
-       $(srcdir)/m4/ltsugar.m4 \
-       $(srcdir)/m4/ltversion.m4 \
-       $(srcdir)/m4/lt~obsolete.m4
-
-
-
-###############################################################################
-# Default rule is to install ourselves in all Makefile.am files:
-###############################################################################
-
-git-all: git-mk-install
-
-git-mk-install:
-       @echo "Installing git makefile"
-       @any_failed=; \
-               find "`test -z "$(top_srcdir)" && echo . || echo 
"$(top_srcdir)"`" -name Makefile.am | while read x; do \
-               if grep 'include .*/git.mk' $$x >/dev/null; then \
-                       echo "$$x already includes git.mk"; \
-               else \
-                       failed=; \
-                       echo "Updating $$x"; \
-                       { cat $$x; \
-                         echo ''; \
-                         echo '-include $$(top_srcdir)/git.mk'; \
-                       } > $$x.tmp || failed=1; \
-                       if test x$$failed = x; then \
-                               mv $$x.tmp $$x || failed=1; \
-                       fi; \
-                       if test x$$failed = x; then : else \
-                               echo "Failed updating $$x"; >&2 \
-                               any_failed=1; \
-                       fi; \
-       fi; done; test -z "$$any_failed"
-
-.PHONY: git-all git-mk-install
-
-
-
-###############################################################################
-# Actual .gitignore generation:
-###############################################################################
-
-$(srcdir)/.gitignore: Makefile.am $(top_srcdir)/git.mk
-       @echo "git.mk: Generating $@"
-       @{ \
-               if test "x$(DOC_MODULE)" = x -o "x$(DOC_MAIN_SGML_FILE)" = x; 
then :; else \
-                       for x in \
-                               $(DOC_MODULE)-decl-list.txt \
-                               $(DOC_MODULE)-decl.txt \
-                               tmpl/$(DOC_MODULE)-unused.sgml \
-                               "tmpl/*.bak" \
-                               xml html \
-                       ; do echo "/$$x"; done; \
-               fi; \
-               if test "x$(DOC_MODULE)$(DOC_ID)" = x -o "x$(DOC_LINGUAS)" = x; 
then :; else \
-                       for lc in $(DOC_LINGUAS); do \
-                               for x in \
-                                       $(if $(DOC_MODULE),$(DOC_MODULE).xml) \
-                                       $(DOC_PAGES) \
-                                       $(DOC_INCLUDES) \
-                               ; do echo "/$$lc/$$x"; done; \
-                       done; \
-                       for x in \
-                               $(_DOC_OMF_ALL) \
-                               $(_DOC_DSK_ALL) \
-                               $(_DOC_HTML_ALL) \
-                               $(_DOC_MOFILES) \
-                               $(DOC_H_FILE) \
-                               "*/.xml2po.mo" \
-                               "*/*.omf.out" \
-                       ; do echo /$$x; done; \
-               fi; \
-               if test "x$(HELP_ID)" = x -o "x$(HELP_LINGUAS)" = x; then :; 
else \
-                       for lc in $(HELP_LINGUAS); do \
-                               for x in \
-                                       $(HELP_FILES) \
-                                       "$$lc.stamp" \
-                                       "$$lc.mo" \
-                               ; do echo "/$$lc/$$x"; done; \
-                       done; \
-               fi; \
-               if test "x$(gsettings_SCHEMAS)" = x; then :; else \
-                       for x in \
-                               $(gsettings_SCHEMAS:.xml=.valid) \
-                               $(gsettings__enum_file) \
-                       ; do echo "/$$x"; done; \
-               fi; \
-               if test -f $(srcdir)/po/Makefile.in.in; then \
-                       for x in \
-                               po/Makefile.in.in \
-                               po/Makefile.in \
-                               po/Makefile \
-                               po/POTFILES \
-                               po/stamp-it \
-                               po/.intltool-merge-cache \
-                               "po/*.gmo" \
-                               "po/*.mo" \
-                               po/$(GETTEXT_PACKAGE).pot \
-                               intltool-extract.in \
-                               intltool-merge.in \
-                               intltool-update.in \
-                       ; do echo "/$$x"; done; \
-               fi; \
-               if test -f $(srcdir)/configure; then \
-                       for x in \
-                               autom4te.cache \
-                               configure \
-                               config.h \
-                               stamp-h1 \
-                               libtool \
-                               config.lt \
-                       ; do echo "/$$x"; done; \
-               fi; \
-               if test "x$(DEJATOOL)" = x; then :; else \
-                       for x in \
-                               $(DEJATOOL) \
-                       ; do echo "/$$x.sum"; echo "/$$x.log"; done; \
-                       echo /site.exp; \
-               fi; \
-               if test "x$(am__dirstamp)" = x; then :; else \
-                       echo "$(am__dirstamp)"; \
-               fi; \
-               if test "x$(LTCOMPILE)" = x; then :; else \
-                       for x in \
-                               "*.lo" \
-                               ".libs" "_libs" \
-                       ; do echo "$$x"; done; \
-               fi; \
-               for x in \
-                       .gitignore \
-                       $(GITIGNOREFILES) \
-                       $(CLEANFILES) \
-                       $(PROGRAMS) $(check_PROGRAMS) $(EXTRA_PROGRAMS) \
-                       $(LIBRARIES) $(check_LIBRARIES) $(EXTRA_LIBRARIES) \
-                       $(LTLIBRARIES) $(check_LTLIBRARIES) 
$(EXTRA_LTLIBRARIES) \
-                       so_locations \
-                       $(MOSTLYCLEANFILES) \
-                       "*.$(OBJEXT)" \
-                       $(DISTCLEANFILES) \
-                       $(am__CONFIG_DISTCLEAN_FILES) \
-                       $(CONFIG_CLEAN_FILES) \
-                       TAGS ID GTAGS GRTAGS GSYMS GPATH tags \
-                       "*.tab.c" \
-                       $(MAINTAINERCLEANFILES) \
-                       $(BUILT_SOURCES) \
-                       $(DEPDIR) \
-                       Makefile \
-                       Makefile.in \
-                       "*.orig" \
-                       "*.rej" \
-                       "*.bak" \
-                       "*~" \
-                       ".*.sw[nop]" \
-                       ".dirstamp" \
-               ; do echo "/$$x"; done; \
-       } | \
-       sed "s@^/`echo "$(srcdir)" | sed 's/\(.\)/[\1]/g'`/@/@" | \
-       sed 's@/[.]/@/@g' | \
-       LC_ALL=C sort | uniq > [email protected] && \
-       mv [email protected] $@;
-
-all: $(srcdir)/.gitignore gitignore-recurse-maybe
-gitignore: $(srcdir)/.gitignore gitignore-recurse
-
-gitignore-recurse-maybe:
-       @for subdir in $(DIST_SUBDIRS); do \
-         case " $(SUBDIRS) " in \
-           *" $$subdir "*) :;; \
-           *) test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) 
.gitignore gitignore-recurse-maybe || echo "Skipping $$subdir");; \
-         esac; \
-       done
-gitignore-recurse:
-       @for subdir in $(DIST_SUBDIRS); do \
-           test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) 
.gitignore gitignore-recurse || echo "Skipping $$subdir"); \
-       done
-
-maintainer-clean: gitignore-clean
-gitignore-clean:
-       -rm -f $(srcdir)/.gitignore
-
-.PHONY: gitignore-clean gitignore gitignore-recurse gitignore-recurse-maybe
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/gnome-photos-3.18.1/m4/intltool.m4 new/gnome-photos-3.18.2/m4/intltool.m4
--- old/gnome-photos-3.18.1/m4/intltool.m4      2015-10-12 12:26:05.000000000 
+0200
+++ new/gnome-photos-3.18.2/m4/intltool.m4      2015-11-08 19:00:13.000000000 
+0100
@@ -155,31 +155,6 @@
 # Substitute ALL_LINGUAS so we can use it in po/Makefile
 AC_SUBST(ALL_LINGUAS)
 
-# Set DATADIRNAME correctly if it is not set yet
-# (copied from glib-gettext.m4)
-if test -z "$DATADIRNAME"; then
-  AC_LINK_IFELSE(
-    [AC_LANG_PROGRAM([[]],
-                     [[extern int _nl_msg_cat_cntr;
-                       return _nl_msg_cat_cntr]])],
-    [DATADIRNAME=share],
-    [case $host in
-    *-*-solaris*)
-    dnl On Solaris, if bind_textdomain_codeset is in libc,
-    dnl GNU format message catalog is always supported,
-    dnl since both are added to the libc all together.
-    dnl Hence, we'd like to go with DATADIRNAME=share
-    dnl in this case.
-    AC_CHECK_FUNC(bind_textdomain_codeset,
-      [DATADIRNAME=share], [DATADIRNAME=lib])
-    ;;
-    *)
-    [DATADIRNAME=lib]
-    ;;
-    esac])
-fi
-AC_SUBST(DATADIRNAME)
-
 IT_PO_SUBDIR([po])
 
 ])
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/gnome-photos-3.18.1/po/Makefile.in.in 
new/gnome-photos-3.18.2/po/Makefile.in.in
--- old/gnome-photos-3.18.1/po/Makefile.in.in   2015-10-12 12:26:05.000000000 
+0200
+++ new/gnome-photos-3.18.2/po/Makefile.in.in   2015-11-08 19:00:13.000000000 
+0100
@@ -33,8 +33,7 @@
 datadir = @datadir@
 datarootdir = @datarootdir@
 libdir = @libdir@
-DATADIRNAME = @DATADIRNAME@
-itlocaledir = $(prefix)/$(DATADIRNAME)/locale
+localedir = @localedir@
 subdir = po
 install_sh = @install_sh@
 # Automake >= 1.8 provides @mkdir_p@.
@@ -80,7 +79,7 @@
 
 .po.pox:
        $(MAKE) $(GETTEXT_PACKAGE).pot
-       $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox
+       $(MSGMERGE) $* $(GETTEXT_PACKAGE).pot -o $*.pox
 
 .po.mo:
        $(INTLTOOL_V_MSGFMT)$(MSGFMT) -o $@ $<
@@ -108,7 +107,7 @@
 install-data-yes: all
        linguas="$(USE_LINGUAS)"; \
        for lang in $$linguas; do \
-         dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \
+         dir=$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \
          $(mkdir_p) $$dir; \
          if test -r $$lang.gmo; then \
            $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
@@ -142,8 +141,8 @@
 uninstall:
        linguas="$(USE_LINGUAS)"; \
        for lang in $$linguas; do \
-         rm -f 
$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \
-         rm -f 
$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \
+         rm -f 
$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \
+         rm -f 
$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \
        done
 
 check: all $(GETTEXT_PACKAGE).pot
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/gnome-photos-3.18.1/po/pt.po new/gnome-photos-3.18.2/po/pt.po
--- old/gnome-photos-3.18.1/po/pt.po    2015-10-09 13:15:31.000000000 +0200
+++ new/gnome-photos-3.18.2/po/pt.po    2015-11-08 18:41:38.000000000 +0100
@@ -344,8 +344,7 @@
 #. Translators: Put your names here
 #: ../src/photos-main-window.c:483
 msgid "translator-credits"
-msgstr ""
-"António Lima <[email protected]>\n"
+msgstr "António Lima <[email protected]>\n"
 "Pedro Albuquerque <[email protected]>"
 
 #: ../src/photos-menus.ui.h:1
@@ -621,7 +620,7 @@
 
 #: ../src/photos-tracker-controller.c:97
 msgid "Unable to fetch the list of photos"
-msgstr "Impossível obter a lista de fotos"
+msgstr "Impossível obter a lista de fotografias"
 
 #~ msgid "No Favorites Found"
 #~ msgstr "Nenhum favorito encontrado"
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/gnome-photos-3.18.1/src/gegl-gtk-view-helper.c 
new/gnome-photos-3.18.2/src/gegl-gtk-view-helper.c
--- old/gnome-photos-3.18.1/src/gegl-gtk-view-helper.c  2015-10-09 
13:15:31.000000000 +0200
+++ new/gnome-photos-3.18.2/src/gegl-gtk-view-helper.c  2015-11-08 
18:41:47.000000000 +0100
@@ -83,6 +83,7 @@
     self->x           = 0;
     self->y           = 0;
     self->scale       = 1.0;
+    self->scale_factor = 1;
     self->autoscale_policy = GEGL_GTK_VIEW_AUTOSCALE_CONTENT;
     self->block = FALSE;
 
@@ -137,10 +138,12 @@
         float delta_x;
         float delta_y;
         float scale = 1.0;
+        const gint real_viewport_height = viewport.height * self->scale_factor;
+        const gint real_viewport_width = viewport.width * self->scale_factor;
 
-        if (bbox.width > viewport.width || bbox.height > viewport.height) {
-            float width_ratio = bbox.width / (float)viewport.width;
-            float height_ratio = bbox.height / (float)viewport.height;
+        if (bbox.width > real_viewport_width || bbox.height > 
real_viewport_height) {
+            float width_ratio = bbox.width / (float)real_viewport_width;
+            float height_ratio = bbox.height / (float)real_viewport_height;
             float max_ratio = width_ratio >= height_ratio ? width_ratio : 
height_ratio;
 
             scale = 1.0 / max_ratio;
@@ -152,8 +155,8 @@
         self->scale = scale;
 
         /* At this point, viewport is definitely bigger than bbox. */
-        delta_x = (viewport.width - bbox.width) / 2.0;
-        delta_y = (viewport.height - bbox.height) / 2.0;
+        delta_x = (real_viewport_width - bbox.width) / 2.0;
+        delta_y = (real_viewport_height - bbox.height) / 2.0;
         self->x = -delta_x;
         self->y = -delta_y;
     }
@@ -194,10 +197,10 @@
     gint64          end;
     gint64          start;
 
-    roi.x = self->x + rect->x;
-    roi.y = self->y + rect->y;
-    roi.width  = rect->width;
-    roi.height = rect->height;
+    roi.x = (gint) self->x + rect->x * self->scale_factor;
+    roi.y = (gint) self->y + rect->y * self->scale_factor;
+    roi.width  = rect->width * self->scale_factor;
+    roi.height = rect->height * self->scale_factor;
 
     stride = cairo_format_stride_for_width(CAIRO_FORMAT_ARGB32, roi.width);
     buf = g_malloc0(stride * roi.height);
@@ -219,6 +222,7 @@
               CAIRO_FORMAT_ARGB32,
               roi.width, roi.height,
               stride);
+    cairo_surface_set_device_scale (surface, (gdouble) self->scale_factor, 
(gdouble) self->scale_factor);
     cairo_set_source_surface(cr, surface, rect->x, rect->y);
     cairo_paint(cr);
 
@@ -228,9 +232,10 @@
 }
 
 void
-view_helper_set_allocation(ViewHelper *self, GdkRectangle *allocation)
+view_helper_set_allocation(ViewHelper *self, GdkRectangle *allocation, gint 
scale_factor)
 {
     self->widget_allocation = *allocation;
+    self->scale_factor = scale_factor;
     update_autoscale(self);
 }
 
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/gnome-photos-3.18.1/src/gegl-gtk-view-helper.h 
new/gnome-photos-3.18.2/src/gegl-gtk-view-helper.h
--- old/gnome-photos-3.18.1/src/gegl-gtk-view-helper.h  2015-10-09 
13:15:31.000000000 +0200
+++ new/gnome-photos-3.18.2/src/gegl-gtk-view-helper.h  2015-11-08 
18:41:47.000000000 +0100
@@ -45,6 +45,7 @@
     gfloat         x;
     gfloat         y;
     gdouble        scale;
+    gint           scale_factor;
     gboolean       block;    /* blocking render */
     GeglGtkViewAutoscale autoscale_policy;
 
@@ -63,7 +64,7 @@
 ViewHelper *view_helper_new(void);
 
 void view_helper_draw(ViewHelper *self, cairo_t *cr, GdkRectangle *rect);
-void view_helper_set_allocation(ViewHelper *self, GdkRectangle *allocation);
+void view_helper_set_allocation(ViewHelper *self, GdkRectangle *allocation, 
gint scale_factor);
 
 void view_helper_set_node(ViewHelper *self, GeglNode *node);
 GeglNode *view_helper_get_node(ViewHelper *self);
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/gnome-photos-3.18.1/src/gegl-gtk-view.c 
new/gnome-photos-3.18.2/src/gegl-gtk-view.c
--- old/gnome-photos-3.18.1/src/gegl-gtk-view.c 2015-10-09 13:15:31.000000000 
+0200
+++ new/gnome-photos-3.18.2/src/gegl-gtk-view.c 2015-11-08 18:41:47.000000000 
+0100
@@ -363,7 +363,10 @@
 size_allocate(GtkWidget *widget, GdkRectangle *allocation, gpointer user_data)
 {
     GeglGtkView *self = GEGL_GTK_VIEW(widget);
-    view_helper_set_allocation(GET_PRIVATE(self), allocation);
+    gint scale_factor;
+
+    scale_factor = gtk_widget_get_scale_factor (widget);
+    view_helper_set_allocation(GET_PRIVATE(self), allocation, scale_factor);
 }
 
 static void
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/gnome-photos-3.18.1/src/photos-base-item.c 
new/gnome-photos-3.18.2/src/photos-base-item.c
--- old/gnome-photos-3.18.1/src/photos-base-item.c      2015-10-09 
13:15:31.000000000 +0200
+++ new/gnome-photos-3.18.2/src/photos-base-item.c      2015-11-08 
18:43:12.000000000 +0100
@@ -184,13 +184,13 @@
 
 
 static GIcon *
-photos_base_item_create_symbolic_emblem (const gchar *name)
+photos_base_item_create_symbolic_emblem (const gchar *name, gint scale)
 {
   GIcon *pix;
   gint size;
 
-  size = photos_utils_get_icon_size ();
-  pix = photos_utils_create_symbolic_icon (name, size);
+  size = photos_utils_get_icon_size_unscaled ();
+  pix = photos_utils_create_symbolic_icon_for_scale (name, size, scale);
   if (pix == NULL)
     pix = g_themed_icon_new (name);
 
@@ -214,11 +214,14 @@
   if (priv->original_icon == NULL)
     goto out;
 
+  app = g_application_get_default ();
+  scale = photos_application_get_scale_factor (PHOTOS_APPLICATION (app));
+
   emblemed_pixbuf = g_object_ref (priv->original_icon);
 
   if (priv->favorite)
     {
-      pix = photos_base_item_create_symbolic_emblem (PHOTOS_ICON_FAVORITE);
+      pix = photos_base_item_create_symbolic_emblem (PHOTOS_ICON_FAVORITE, 
scale);
       emblem_icons = g_list_prepend (emblem_icons, pix);
     }
 
@@ -291,8 +294,6 @@
   else
     thumbnailed_pixbuf = g_object_ref (emblemed_pixbuf);
 
-  app = g_application_get_default ();
-  scale = photos_application_get_scale_factor (PHOTOS_APPLICATION (app));
   windows = gtk_application_get_windows (GTK_APPLICATION (app));
   if (windows != NULL)
     window = gtk_widget_get_window (GTK_WIDGET (windows->data));
@@ -404,7 +405,14 @@
 static void
 photos_base_item_default_set_favorite (PhotosBaseItem *self, gboolean favorite)
 {
-  photos_utils_set_favorite (self->priv->id, favorite);
+  PhotosBaseItemPrivate *priv = self->priv;
+
+  if (favorite == priv->favorite)
+    return;
+
+  priv->favorite = favorite;
+  photos_base_item_check_effects_and_update_info (self);
+  photos_utils_set_favorite (priv->id, favorite);
 }
 
 
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/gnome-photos-3.18.1/src/photos-embed.c 
new/gnome-photos-3.18.2/src/photos-embed.c
--- old/gnome-photos-3.18.1/src/photos-embed.c  2015-10-12 12:24:54.000000000 
+0200
+++ new/gnome-photos-3.18.2/src/photos-embed.c  2015-11-08 18:41:38.000000000 
+0100
@@ -681,28 +681,28 @@
   name = photos_view_container_get_name (PHOTOS_VIEW_CONTAINER 
(priv->overview));
   gtk_stack_add_titled (GTK_STACK (priv->stack), priv->overview, "overview", 
name);
   model = photos_view_container_get_model (PHOTOS_VIEW_CONTAINER 
(priv->overview));
-  g_signal_connect_swapped (model, "row-inserted", G_CALLBACK 
(photos_embed_row_changed), self);
-  g_signal_connect_swapped (model, "row-deleted", G_CALLBACK 
(photos_embed_row_changed), self);
+  g_signal_connect_object (model, "row-inserted", G_CALLBACK 
(photos_embed_row_changed), self, G_CONNECT_SWAPPED);
+  g_signal_connect_object (model, "row-deleted", G_CALLBACK 
(photos_embed_row_changed), self, G_CONNECT_SWAPPED);
 
   priv->collections = photos_view_container_new 
(PHOTOS_WINDOW_MODE_COLLECTIONS, _("Albums"));
   name = photos_view_container_get_name (PHOTOS_VIEW_CONTAINER 
(priv->collections));
   gtk_stack_add_titled (GTK_STACK (priv->stack), priv->collections, 
"collections", name);
   model = photos_view_container_get_model (PHOTOS_VIEW_CONTAINER 
(priv->collections));
-  g_signal_connect_swapped (model, "row-inserted", G_CALLBACK 
(photos_embed_row_changed), self);
-  g_signal_connect_swapped (model, "row-deleted", G_CALLBACK 
(photos_embed_row_changed), self);
+  g_signal_connect_object (model, "row-inserted", G_CALLBACK 
(photos_embed_row_changed), self, G_CONNECT_SWAPPED);
+  g_signal_connect_object (model, "row-deleted", G_CALLBACK 
(photos_embed_row_changed), self, G_CONNECT_SWAPPED);
 
   priv->favorites = photos_view_container_new (PHOTOS_WINDOW_MODE_FAVORITES, 
_("Favorites"));
   name = photos_view_container_get_name (PHOTOS_VIEW_CONTAINER 
(priv->favorites));
   gtk_stack_add_titled (GTK_STACK (priv->stack), priv->favorites, "favorites", 
name);
   model = photos_view_container_get_model (PHOTOS_VIEW_CONTAINER 
(priv->favorites));
-  g_signal_connect_swapped (model, "row-inserted", G_CALLBACK 
(photos_embed_row_changed), self);
-  g_signal_connect_swapped (model, "row-deleted", G_CALLBACK 
(photos_embed_row_changed), self);
+  g_signal_connect_object (model, "row-inserted", G_CALLBACK 
(photos_embed_row_changed), self, G_CONNECT_SWAPPED);
+  g_signal_connect_object (model, "row-deleted", G_CALLBACK 
(photos_embed_row_changed), self, G_CONNECT_SWAPPED);
 
   priv->search = photos_view_container_new (PHOTOS_WINDOW_MODE_SEARCH, 
_("Search"));
   gtk_stack_add_named (GTK_STACK (priv->stack), priv->search, "search");
   model = photos_view_container_get_model (PHOTOS_VIEW_CONTAINER 
(priv->search));
-  g_signal_connect_swapped (model, "row-inserted", G_CALLBACK 
(photos_embed_row_changed), self);
-  g_signal_connect_swapped (model, "row-deleted", G_CALLBACK 
(photos_embed_row_changed), self);
+  g_signal_connect_object (model, "row-inserted", G_CALLBACK 
(photos_embed_row_changed), self, G_CONNECT_SWAPPED);
+  g_signal_connect_object (model, "row-deleted", G_CALLBACK 
(photos_embed_row_changed), self, G_CONNECT_SWAPPED);
 
   priv->preview = photos_preview_view_new (GTK_OVERLAY (priv->stack_overlay));
   gtk_stack_add_named (GTK_STACK (priv->stack), priv->preview, "preview");
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/gnome-photos-3.18.1/src/photos-properties-dialog.c 
new/gnome-photos-3.18.2/src/photos-properties-dialog.c
--- old/gnome-photos-3.18.1/src/photos-properties-dialog.c      2015-10-06 
16:13:01.000000000 +0200
+++ new/gnome-photos-3.18.2/src/photos-properties-dialog.c      2015-11-03 
08:13:19.000000000 +0100
@@ -478,7 +478,7 @@
   if (flash_w != NULL)
     {
       GtkWidget *flash_data;
-      gchar *flash_str;
+      gchar *flash_str = NULL;
 
       if (flash == PHOTOS_FLASH_OFF)
         flash_str = g_strdup (_("Off, did not fire"));
@@ -490,7 +490,6 @@
 
           str = g_quark_to_string (flash);
           g_warning ("Unknown value for nmm:flash: %s", str);
-          g_assert_not_reached ();
         }
 
       flash_data = gtk_label_new (flash_str);
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/gnome-photos-3.18.1/src/photos-selection-toolbar.c 
new/gnome-photos-3.18.2/src/photos-selection-toolbar.c
--- old/gnome-photos-3.18.1/src/photos-selection-toolbar.c      2015-10-06 
16:13:01.000000000 +0200
+++ new/gnome-photos-3.18.2/src/photos-selection-toolbar.c      2015-11-08 
18:41:38.000000000 +0100
@@ -108,6 +108,7 @@
 {
   PhotosSelectionToolbar *self = PHOTOS_SELECTION_TOOLBAR (user_data);
   PhotosSelectionToolbarPrivate *priv = self->priv;
+  GList *items = NULL;
   GList *selection;
   GList *l;
 
@@ -119,14 +120,27 @@
     {
       const gchar *urn = (gchar *) l->data;
       PhotosBaseItem *item;
-      gboolean favorite;
 
       item = PHOTOS_BASE_ITEM (photos_base_manager_get_object_by_id 
(priv->item_mngr, urn));
+      items = g_list_prepend (items, g_object_ref (item));
+    }
+
+  /* photos_base_item_set_favorite will emit info-updated signal while
+   * looping: there is a chance that the selection will get modified
+   * while we are iterating over it. To avoid this we make a copy of
+   * the selection and work on it.
+   */
+  for (l = items; l != NULL; l = l->next)
+    {
+      PhotosBaseItem *item = PHOTOS_BASE_ITEM (l->data);
+      gboolean favorite;
+
       favorite = photos_base_item_is_favorite (item);
       photos_base_item_set_favorite (item, !favorite);
     }
 
   photos_selection_controller_set_selection_mode (priv->sel_cntrlr, FALSE);
+  g_list_free_full (items, g_object_unref);
 }
 
 
@@ -340,9 +354,8 @@
 
 
 static void
-photos_selection_toolbar_selection_changed (PhotosSelectionController 
*sel_cntrlr, gpointer user_data)
+photos_selection_toolbar_selection_changed (PhotosSelectionToolbar *self)
 {
-  PhotosSelectionToolbar *self = PHOTOS_SELECTION_TOOLBAR (user_data);
   PhotosSelectionToolbarPrivate *priv = self->priv;
   GList *selection;
 
@@ -358,14 +371,10 @@
 
 
 static void
-photos_selection_toolbar_selection_mode_changed (PhotosSelectionController 
*sel_cntrlr,
-                                                 gboolean mode,
-                                                 gpointer user_data)
+photos_selection_toolbar_selection_mode_changed (PhotosSelectionToolbar *self, 
gboolean mode)
 {
-  PhotosSelectionToolbar *self = PHOTOS_SELECTION_TOOLBAR (user_data);
-
   if (mode)
-    photos_selection_toolbar_selection_changed (sel_cntrlr, self);
+    photos_selection_toolbar_selection_changed (self);
   else
     gtk_revealer_set_reveal_child (GTK_REVEALER (self), FALSE);
 }
@@ -494,14 +503,16 @@
   priv->item_mngr = g_object_ref (state->item_mngr);
 
   priv->sel_cntrlr = photos_selection_controller_dup_singleton ();
-  g_signal_connect (priv->sel_cntrlr,
-                    "selection-changed",
-                    G_CALLBACK (photos_selection_toolbar_selection_changed),
-                    self);
-  g_signal_connect (priv->sel_cntrlr,
-                    "selection-mode-changed",
-                    G_CALLBACK 
(photos_selection_toolbar_selection_mode_changed),
-                    self);
+  g_signal_connect_object (priv->sel_cntrlr,
+                           "selection-changed",
+                           G_CALLBACK 
(photos_selection_toolbar_selection_changed),
+                           self,
+                           G_CONNECT_SWAPPED);
+  g_signal_connect_object (priv->sel_cntrlr,
+                           "selection-mode-changed",
+                           G_CALLBACK 
(photos_selection_toolbar_selection_mode_changed),
+                           self,
+                           G_CONNECT_SWAPPED);
 }
 
 
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/gnome-photos-3.18.1/src/photos-utils.c 
new/gnome-photos-3.18.2/src/photos-utils.c
--- old/gnome-photos-3.18.1/src/photos-utils.c  2015-10-09 13:15:31.000000000 
+0200
+++ new/gnome-photos-3.18.2/src/photos-utils.c  2015-11-08 18:43:12.000000000 
+0100
@@ -237,7 +237,7 @@
 
 
 GIcon *
-photos_utils_create_symbolic_icon (const gchar *name, gint base_size)
+photos_utils_create_symbolic_icon_for_scale (const gchar *name, gint 
base_size, gint scale)
 {
   GIcon *icon;
   GIcon *ret_val = NULL;
@@ -246,6 +246,7 @@
   GtkIconTheme *theme;
   GtkStyleContext *style;
   GtkWidgetPath *path;
+  cairo_surface_t *icon_surface = NULL;
   cairo_surface_t *surface;
   cairo_t *cr;
   gchar *symbolic_name;
@@ -254,11 +255,14 @@
   gint emblem_pos;
   gint emblem_size;
   gint total_size;
+  gint total_size_scaled;
 
   total_size = base_size / 2;
+  total_size_scaled = total_size * scale;
   emblem_size = bg_size - emblem_margin * 2;
 
-  surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, total_size, 
total_size);
+  surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 
total_size_scaled, total_size_scaled);
+  cairo_surface_set_device_scale (surface, (gdouble) scale, (gdouble) scale);
   cr = cairo_create (surface);
 
   style = gtk_style_context_new ();
@@ -277,7 +281,7 @@
   g_free (symbolic_name);
 
   theme = gtk_icon_theme_get_default();
-  info = gtk_icon_theme_lookup_by_gicon (theme, icon, emblem_size, 
GTK_ICON_LOOKUP_FORCE_SIZE);
+  info = gtk_icon_theme_lookup_by_gicon_for_scale (theme, icon, emblem_size, 
scale, GTK_ICON_LOOKUP_FORCE_SIZE);
   g_object_unref (icon);
 
   if (info == NULL)
@@ -289,14 +293,17 @@
   if (pixbuf == NULL)
     goto out;
 
-  emblem_pos = total_size - emblem_size - emblem_margin;
-  gtk_render_icon (style, cr, pixbuf, emblem_pos, emblem_pos);
+  icon_surface = gdk_cairo_surface_create_from_pixbuf (pixbuf, scale, NULL);
   g_object_unref (pixbuf);
 
-  ret_val = G_ICON (gdk_pixbuf_get_from_surface (surface, 0, 0, total_size, 
total_size));
+  emblem_pos = total_size - emblem_size - emblem_margin;
+  gtk_render_icon_surface (style, cr, icon_surface, emblem_pos, emblem_pos);
+
+  ret_val = G_ICON (gdk_pixbuf_get_from_surface (surface, 0, 0, 
total_size_scaled, total_size_scaled));
 
  out:
   g_object_unref (style);
+  cairo_surface_destroy (icon_surface);
   cairo_surface_destroy (surface);
   cairo_destroy (cr);
 
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/gnome-photos-3.18.1/src/photos-utils.h 
new/gnome-photos-3.18.2/src/photos-utils.h
--- old/gnome-photos-3.18.1/src/photos-utils.h  2015-10-09 13:15:31.000000000 
+0200
+++ new/gnome-photos-3.18.2/src/photos-utils.h  2015-11-08 18:43:12.000000000 
+0100
@@ -57,7 +57,7 @@
 
 GdkPixbuf       *photos_utils_create_pixbuf_from_node     (GeglNode *node);
 
-GIcon           *photos_utils_create_symbolic_icon        (const gchar *name, 
gint base_size);
+GIcon           *photos_utils_create_symbolic_icon_for_scale (const gchar 
*name, gint base_size, gint scale);
 
 gboolean         photos_utils_create_thumbnail            (GFile *file, 
GCancellable *cancellable, GError **error);
 
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/gnome-photos-3.18.1/src/photos-view-container.c 
new/gnome-photos-3.18.2/src/photos-view-container.c
--- old/gnome-photos-3.18.1/src/photos-view-container.c 2015-10-09 
18:55:42.000000000 +0200
+++ new/gnome-photos-3.18.2/src/photos-view-container.c 2015-11-08 
18:41:38.000000000 +0100
@@ -341,10 +341,18 @@
     }
 
   action = g_action_map_lookup_action (G_ACTION_MAP (app), "select-all");
-  g_signal_connect_swapped (action, "activate", G_CALLBACK 
(photos_view_container_select_all), self);
+  g_signal_connect_object (action,
+                           "activate",
+                           G_CALLBACK (photos_view_container_select_all),
+                           self,
+                           G_CONNECT_SWAPPED);
 
   action = g_action_map_lookup_action (G_ACTION_MAP (app), "select-none");
-  g_signal_connect_swapped (action, "activate", G_CALLBACK 
(gd_main_view_unselect_all), priv->view);
+  g_signal_connect_object (action,
+                           "activate",
+                           G_CALLBACK (gd_main_view_unselect_all),
+                           priv->view,
+                           G_CONNECT_SWAPPED);
 
   g_signal_connect_object (priv->offset_cntrlr,
                            "count-changed",
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/gnome-photos-3.18.1/src/photos-view-model.c 
new/gnome-photos-3.18.2/src/photos-view-model.c
--- old/gnome-photos-3.18.1/src/photos-view-model.c     2015-10-12 
12:25:08.000000000 +0200
+++ new/gnome-photos-3.18.2/src/photos-view-model.c     2015-11-08 
18:41:38.000000000 +0100
@@ -46,6 +46,7 @@
 
 struct _PhotosViewModelPrivate
 {
+  GHashTable *info_updated_ids;
   PhotosBaseManager *item_mngr;
   PhotosModeController *mode_cntrlr;
   PhotosOffsetController *offset_cntrlr;
@@ -106,11 +107,7 @@
   PhotosViewModelPrivate *priv = self->priv;
 
   if (priv->reset_count_id == 0)
-    priv->reset_count_id = g_timeout_add_full (G_PRIORITY_DEFAULT,
-                                               RESET_COUNT_TIMEOUT,
-                                               
photos_view_model_reset_count_timeout,
-                                               g_object_ref (self),
-                                               g_object_unref);
+    priv->reset_count_id = g_timeout_add (RESET_COUNT_TIMEOUT, 
photos_view_model_reset_count_timeout, self);
 }
 
 
@@ -213,10 +210,9 @@
 
 
 static void
-photos_view_model_object_removed (PhotosViewModel *self, GObject *object)
+photos_view_model_remove_item (PhotosViewModel *self, PhotosBaseItem *item)
 {
   PhotosViewModelPrivate *priv = self->priv;
-  PhotosBaseItem *item = PHOTOS_BASE_ITEM (object);
 
   /* Update the count so that PhotosOffsetController has the correct
    * values. Otherwise things like loading more items and "No
@@ -226,7 +222,7 @@
 
   priv->oldest_mtime = G_MAXINT64;
   gtk_tree_model_foreach (GTK_TREE_MODEL (self), 
photos_view_model_item_removed_foreach, item);
-  g_object_set_data (object, priv->row_ref_key, NULL);
+  g_object_set_data (G_OBJECT (item), priv->row_ref_key, NULL);
 }
 
 
@@ -249,7 +245,7 @@
 
       is_collection = photos_base_item_is_collection (item);
       if (!is_collection && row_ref != NULL && active_collection == NULL)
-        photos_view_model_object_removed (self, G_OBJECT (item));
+        photos_view_model_remove_item (self, item);
       else if (is_collection  && row_ref == NULL && active_collection == NULL)
         photos_view_model_add_item (self, item);
     }
@@ -259,7 +255,7 @@
 
       is_favorite = photos_base_item_is_favorite (item);
       if (!is_favorite && row_ref != NULL && active_collection == NULL)
-        photos_view_model_object_removed (self, G_OBJECT (item));
+        photos_view_model_remove_item (self, item);
       else if (is_favorite  && row_ref == NULL && active_collection == NULL)
         photos_view_model_add_item (self, item);
     }
@@ -269,7 +265,7 @@
 
       is_collection = photos_base_item_is_collection (item);
       if (is_collection && row_ref != NULL)
-        photos_view_model_object_removed (self, G_OBJECT (item));
+        photos_view_model_remove_item (self, item);
       else if (!is_collection  && row_ref == NULL)
         photos_view_model_add_item (self, item);
     }
@@ -298,11 +294,23 @@
   GtkTreeRowReference *row_ref;
   gboolean is_collection;
   gboolean is_favorite;
+  const gchar *id;
+  gpointer data;
+  guint info_updated_id;
 
   row_ref = (GtkTreeRowReference *) g_object_get_data (G_OBJECT (item), 
priv->row_ref_key);
   if (row_ref != NULL)
     return;
 
+  id = photos_filterable_get_id (PHOTOS_FILTERABLE (item));
+  data = g_hash_table_lookup (priv->info_updated_ids, id);
+  if (data != NULL)
+    {
+      info_updated_id = GPOINTER_TO_UINT (data);
+      g_signal_handler_disconnect (item, (gulong) info_updated_id);
+      g_hash_table_remove (priv->info_updated_ids, id);
+    }
+
   active_collection = photos_item_manager_get_active_collection 
(PHOTOS_ITEM_MANAGER (priv->item_mngr));
   is_collection = photos_base_item_is_collection (item);
   is_favorite = photos_base_item_is_favorite (item);
@@ -319,7 +327,34 @@
   photos_view_model_add_item (self, item);
 
  out:
-  g_signal_connect_object (item, "info-updated", G_CALLBACK 
(photos_view_model_info_updated), self, 0);
+  info_updated_id = (guint) g_signal_connect_object (item,
+                                                     "info-updated",
+                                                     G_CALLBACK 
(photos_view_model_info_updated),
+                                                     self,
+                                                     0);
+  g_hash_table_insert (priv->info_updated_ids, g_strdup (id), GUINT_TO_POINTER 
(info_updated_id));
+}
+
+
+static void
+photos_view_model_object_removed (PhotosViewModel *self, GObject *object)
+{
+  PhotosViewModelPrivate *priv = self->priv;
+  PhotosBaseItem *item = PHOTOS_BASE_ITEM (object);
+  const gchar *id;
+  gpointer data;
+  guint info_updated_id;
+
+  photos_view_model_remove_item (self, item);
+
+  id = photos_filterable_get_id (PHOTOS_FILTERABLE (item));
+  data = g_hash_table_lookup (priv->info_updated_ids, id);
+
+  g_return_if_fail (data != NULL);
+
+  info_updated_id = GPOINTER_TO_UINT (data);
+  g_signal_handler_disconnect (item, (gulong) info_updated_id);
+  g_hash_table_remove (priv->info_updated_ids, id);
 }
 
 
@@ -414,8 +449,10 @@
 photos_view_model_finalize (GObject *object)
 {
   PhotosViewModel *self = PHOTOS_VIEW_MODEL (object);
+  PhotosViewModelPrivate *priv = self->priv;
 
-  g_free (self->priv->row_ref_key);
+  g_hash_table_unref (priv->info_updated_ids);
+  g_free (priv->row_ref_key);
 
   G_OBJECT_CLASS (photos_view_model_parent_class)->finalize (object);
 }
@@ -465,6 +502,8 @@
   gtk_list_store_set_column_types (GTK_LIST_STORE (self), sizeof (columns) / 
sizeof (columns[0]), columns);
   gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (self), 
PHOTOS_VIEW_MODEL_MTIME, GTK_SORT_DESCENDING);
 
+  priv->info_updated_ids = g_hash_table_new_full (g_str_hash, g_str_equal, 
g_free, NULL);
+
   priv->item_mngr = g_object_ref (state->item_mngr);
   priv->mode_cntrlr = photos_mode_controller_dup_singleton ();
 
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/gnome-photos-3.18.1/tests/Makefile.am 
new/gnome-photos-3.18.2/tests/Makefile.am
--- old/gnome-photos-3.18.1/tests/Makefile.am   2014-09-09 17:45:51.000000000 
+0200
+++ new/gnome-photos-3.18.2/tests/Makefile.am   2015-11-03 08:36:42.000000000 
+0100
@@ -26,4 +26,4 @@
        $(NULL)
 endif
 
-include $(top_srcdir)/git.mk
+-include $(top_srcdir)/git.mk


Reply via email to