Resolves: rhbz#1462778 page thumbnails disappear after "invert colors"
Also fixes the upgrade path from f26 to rawhide. Original patch from Caolán McNamara for f26.
This commit is contained in:
parent
e79b35cbba
commit
39c74dd970
82
0001-sidebar-thumbnails-fix-clunky-scrolling.patch
Normal file
82
0001-sidebar-thumbnails-fix-clunky-scrolling.patch
Normal file
@ -0,0 +1,82 @@
|
||||
From 6480c7039bdf7e8f15f7d1415460db255910c40b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Nelson=20Ben=C3=ADtez=20Le=C3=B3n?=
|
||||
<nbenitezl+gnome@gmail.com>
|
||||
Date: Sun, 28 May 2017 22:35:05 +0500
|
||||
Subject: [PATCH] sidebar-thumbnails: fix clunky scrolling
|
||||
|
||||
Caused by GtkIconView doing an invalidate and relayout of *all*
|
||||
items in the view anytime we update model data in any indiviual
|
||||
item (which happens with all the items that are getting in and out
|
||||
of the scrolling area while we scroll). This caused GtkIconView to
|
||||
machine-gunned us with "size-allocate" signals, a signal we were
|
||||
using to update thumbnails when the sidebar is resized.
|
||||
|
||||
Fixed by connecting to the GtkTreeModel "row-changed" signal before
|
||||
GtkIconView does it, and stop emission from there.
|
||||
|
||||
As we don't depend now on "size-allocate" signals to show thumbnails
|
||||
while we scroll, just queue a draw on the icon view when a
|
||||
thumbnail finish rendering.
|
||||
|
||||
Thanks Jose Aliste for first spotting the problem.
|
||||
|
||||
https://bugzilla.gnome.org/show_bug.cgi?id=691448
|
||||
---
|
||||
shell/ev-sidebar-thumbnails.c | 24 ++++++++++++++++++++++++
|
||||
1 file changed, 24 insertions(+)
|
||||
|
||||
diff --git a/shell/ev-sidebar-thumbnails.c b/shell/ev-sidebar-thumbnails.c
|
||||
index 253eabf..c22e92e 100644
|
||||
--- a/shell/ev-sidebar-thumbnails.c
|
||||
+++ b/shell/ev-sidebar-thumbnails.c
|
||||
@@ -802,9 +802,26 @@ ev_sidebar_thumbnails_device_scale_factor_changed_cb (EvSidebarThumbnails *sideb
|
||||
}
|
||||
|
||||
static void
|
||||
+ev_sidebar_thumbnails_row_changed (GtkTreeModel *model,
|
||||
+ GtkTreePath *path,
|
||||
+ GtkTreeIter *iter,
|
||||
+ gpointer data)
|
||||
+{
|
||||
+ guint signal_id;
|
||||
+
|
||||
+ signal_id = GPOINTER_TO_UINT (data);
|
||||
+
|
||||
+ /* PREVENT GtkIconView "row-changed" handler to be reached, as it will
|
||||
+ * perform a full invalidate and relayout of all items, See bug:
|
||||
+ * https://bugzilla.gnome.org/show_bug.cgi?id=691448#c9 */
|
||||
+ g_signal_stop_emission (model, signal_id, 0);
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
ev_sidebar_thumbnails_init (EvSidebarThumbnails *ev_sidebar_thumbnails)
|
||||
{
|
||||
EvSidebarThumbnailsPrivate *priv;
|
||||
+ guint signal_id;
|
||||
|
||||
priv = ev_sidebar_thumbnails->priv = EV_SIDEBAR_THUMBNAILS_GET_PRIVATE (ev_sidebar_thumbnails);
|
||||
|
||||
@@ -814,6 +831,11 @@ ev_sidebar_thumbnails_init (EvSidebarThumbnails *ev_sidebar_thumbnails)
|
||||
G_TYPE_BOOLEAN,
|
||||
EV_TYPE_JOB_THUMBNAIL);
|
||||
|
||||
+ signal_id = g_signal_lookup ("row-changed", GTK_TYPE_TREE_MODEL);
|
||||
+ g_signal_connect (GTK_TREE_MODEL (priv->list_store), "row-changed",
|
||||
+ G_CALLBACK (ev_sidebar_thumbnails_row_changed),
|
||||
+ GUINT_TO_POINTER (signal_id));
|
||||
+
|
||||
priv->swindow = gtk_scrolled_window_new (NULL, NULL);
|
||||
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (priv->swindow),
|
||||
@@ -962,6 +984,8 @@ thumbnail_job_completed_callback (EvJobThumbnail *job,
|
||||
COLUMN_JOB, NULL,
|
||||
-1);
|
||||
cairo_surface_destroy (surface);
|
||||
+
|
||||
+ gtk_widget_queue_draw (priv->icon_view);
|
||||
}
|
||||
|
||||
static void
|
||||
--
|
||||
2.9.3
|
||||
|
10
evince.spec
10
evince.spec
@ -5,7 +5,7 @@
|
||||
|
||||
Name: evince
|
||||
Version: 3.24.0
|
||||
Release: 2%{?dist}
|
||||
Release: 3%{?dist}
|
||||
Summary: Document viewer
|
||||
|
||||
License: GPLv2+ and GPLv3+ and LGPLv2+ and MIT and Afmparse
|
||||
@ -18,9 +18,10 @@ Patch2: 0001-Resolves-rhbz-1404656-crash-on-opening-second-evince.patch
|
||||
#https://bugzilla.gnome.org/show_bug.cgi?id=766749
|
||||
Patch3: 0001-Resolves-deb-762530-rhbz-1061177-add-man-pages.patch
|
||||
Patch4: 0001-Resolves-rhbz-1358249-page-up-down.patch
|
||||
Patch5: 0001-Revert-Bump-poppler-requirements-to-0.33.0.patch
|
||||
Patch5: 0001-sidebar-thumbnails-fix-clunky-scrolling.patch
|
||||
Patch6: 0001-Revert-Bump-poppler-requirements-to-0.33.0.patch
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1468488
|
||||
Patch6: evince-libarchive-gnome-3-24.patch
|
||||
Patch7: evince-libarchive-gnome-3-24.patch
|
||||
|
||||
BuildRequires: pkgconfig(adwaita-icon-theme)
|
||||
BuildRequires: pkgconfig(gio-unix-2.0) >= %{glib2_version}
|
||||
@ -268,6 +269,9 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas >&/dev/null ||:
|
||||
%{_libdir}/mozilla/plugins/libevbrowserplugin.so
|
||||
|
||||
%changelog
|
||||
* Tue Jul 25 2017 Debarshi Ray <rishi@fedoraproject.org> - 3.24.0-3
|
||||
- Resolves: rhbz#1462778 page thumbnails disappear after "invert colors"
|
||||
|
||||
* Fri Jul 07 2017 Bastien Nocera <bnocera@redhat.com> - 3.24.0-2
|
||||
+ evince-3.24.0-2
|
||||
- Use libarchive to handle compressed comics documents
|
||||
|
Loading…
Reference in New Issue
Block a user