Compare commits

...

No commits in common. "c9-beta" and "c8" have entirely different histories.
c9-beta ... c8

17 changed files with 3346 additions and 500 deletions

View File

@ -1 +1 @@
67c0f99cdb64f0b919e5f50604ab1824caf3d4ca SOURCES/evince-40.5.tar.xz 230997237a449bc71b2c6769f5d30a2d616fba03 SOURCES/evince-3.28.4.tar.xz

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/evince-40.5.tar.xz SOURCES/evince-3.28.4.tar.xz

View File

@ -0,0 +1,86 @@
From 8e20f99f5d73175112b37203ba127519db90aff0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Tue, 10 Jan 2017 15:10:44 +0000
Subject: [PATCH] Resolves: deb#762530 rhbz#1061177 add man pages
for evince-previewer and evince-thumbnailer
---
data/Makefile.am | 2 +-
data/evince-previewer.1 | 24 ++++++++++++++++++++++++
data/evince-thumbnailer.1 | 20 ++++++++++++++++++++
3 files changed, 45 insertions(+), 1 deletion(-)
create mode 100644 data/evince-previewer.1
create mode 100644 data/evince-thumbnailer.1
diff --git a/data/Makefile.am b/data/Makefile.am
index 44fcf33..a45a3cb 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -7,7 +7,7 @@ install-data-local: update-icon-cache
# man file
#
-man_MANS=evince.1
+man_MANS=evince.1 evince-previewer.1 evince-thumbnailer.1
#
# UI descriptions
diff --git a/data/evince-previewer.1 b/data/evince-previewer.1
new file mode 100644
index 0000000..1841509
--- /dev/null
+++ b/data/evince-previewer.1
@@ -0,0 +1,24 @@
+.TH evince\-previewer 1 2015\-07\-28
+.SH NAME
+evince\-previewer \- show a printing preview of PostScript and PDF documents
+.SH SYNOPSIS
+\fBevince\-previewer\fR [options] \fBinput\fR
+.SH DESCRIPTION
+evince\-previewer is a GNOME program to
+show a printing preview from PostScript (PS), Portable Document Format
+(PDF), DjVu and DVI files.
+.SH OPTIONS
+evince\-previewer obeys all normal GNOME and GTK+ command line options.
+The application options are
+.TP
+\fB\-u, \-\-unlink\-tempfile\fR
+Delete the temporary file
+.TP
+\fB\-p, \-\-print-settings=FILE\fR
+Print settings file
+.SH "SEE ALSO"
+\fBevince\fR(1),
+\fBgnome\-options\fR(7),
+\fBgtk\-options\fR(7).
+.PP
+https://wiki.gnome.org/Apps/Evince
diff --git a/data/evince-thumbnailer.1 b/data/evince-thumbnailer.1
new file mode 100644
index 0000000..25ddfec
--- /dev/null
+++ b/data/evince-thumbnailer.1
@@ -0,0 +1,20 @@
+.TH evince\-thumbnailer 1 2007\-01\-15
+.SH NAME
+evince\-thumbnailer \- create png thumbnails from PostScript and PDF documents
+.SH SYNOPSIS
+\fBevince\-thumbnailer\fR [\-s \fBsize\fR] \fBinput\fR \fBoutput\fR
+.SH DESCRIPTION
+evince\-thumbnailer is a GNOME program to
+create thumbnails from PostScript (PS), Portable Document Format
+(PDF), DjVu and DVI files.
+.SH OPTIONS
+evince obeys all normal GNOME and GTK+
+command line options. The only option \-s \fIsize
+\fRmakes it possible to choose the vertical size
+of the created thumbnail.
+.SH "SEE ALSO"
+\fBevince\fR(1),
+\fBgnome\-options\fR(7),
+\fBgtk\-options\fR(7).
+.PP
+http://www.gnome.org/projects/evince/
--
2.9.3

View File

@ -0,0 +1,55 @@
From 22b047c3db84a34fc5fb5076474640bcd3917c73 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Fri, 17 Feb 2017 09:28:18 +0000
Subject: [PATCH] Revert "Bump poppler requirements to 0.33.0"
This reverts commit 5a4912bdbbf3c8000e77a093cf366276eeb56283.
---
backend/pdf/ev-poppler.cc | 4 ++++
configure.ac | 7 ++++++-
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/backend/pdf/ev-poppler.cc b/backend/pdf/ev-poppler.cc
index 214094f..f3a6510 100644
--- a/backend/pdf/ev-poppler.cc
+++ b/backend/pdf/ev-poppler.cc
@@ -3508,7 +3508,11 @@ pdf_document_annotations_save_annotation (EvDocumentAnnotations *document_annota
poppler_rect.y2 = height - ev_rect.y1;
if (poppler_annot_markup_has_popup (markup))
+#ifdef HAVE_POPPLER_ANNOT_MARKUP_SET_POPUP_RECTANGLE
poppler_annot_markup_set_popup_rectangle (markup, &poppler_rect);
+#else
+ poppler_annot_markup_set_popup (markup, &poppler_rect);
+#endif
else
poppler_annot_markup_set_popup (markup, &poppler_rect);
}
diff --git a/configure.ac b/configure.ac
index 23a390f..a01392a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -536,7 +536,7 @@ AC_ARG_ENABLE([pdf],
[enable_pdf=yes])
if test "x$enable_pdf" = "xyes"; then
- POPPLER_REQUIRED=0.33.0
+ POPPLER_REQUIRED=0.24.0
PKG_CHECK_MODULES(POPPLER, poppler-glib >= $POPPLER_REQUIRED libxml-2.0 >= $LIBXML_REQUIRED,enable_pdf=yes,enable_pdf=no)
if test "x$enable_pdf" = "xyes"; then
@@ -549,6 +549,11 @@ if test "x$enable_pdf" = "xyes"; then
if test x$enable_cairo_ps = xyes; then
AC_DEFINE([HAVE_CAIRO_PS], [1], [defined if cairo-ps is available])
fi
+
+ evince_save_LIBS=$LIBS
+ LIBS="$LIBS $POPPLER_LIBS"
+ AC_CHECK_FUNCS(poppler_annot_markup_set_popup_rectangle)
+ LIBS=$evince_save_LIBS
else
AC_MSG_ERROR("PDF support is disabled since poppler-glib library version $POPPLER_REQUIRED or newer not found")
fi
--
2.9.3

View File

@ -0,0 +1,76 @@
--- evince-3.21.92/browser-plugin/EvBrowserPluginMain.cpp
+++ evince-3.21.92/browser-plugin/EvBrowserPluginMain.cpp
@@ -38,11 +38,40 @@ static EvBrowserPlugin *pluginForInstanc
return static_cast<EvBrowserPlugin *>(instance->pdata);
}
+static gboolean gtkToolkitIsCompatible(NPP instance)
+{
+ NPNToolkitType toolkit_type = NPNVGtk12;
+ NPError error;
+
+ error = browser->getvalue(instance, NPNVToolkit, &toolkit_type);
+
+ if (error == NPERR_NO_ERROR &&
+ (toolkit_type == NPNVGtk12 ||
+ toolkit_type == NPNVGtk2))
+ return FALSE;
+ else
+ return TRUE;
+}
+
NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16_t mode, int16_t argc, char *argn[], char *argv[], NPSavedData *savedData)
{
if (!instance)
return NPERR_INVALID_INSTANCE_ERROR;
+ if (!gtkToolkitIsCompatible(instance))
+ return NPERR_GENERIC_ERROR;
+
+ GBytes *resourceData = g_resources_lookup_data("/org/gnome/evince/browser/ui/evince-browser.css", G_RESOURCE_LOOKUP_FLAGS_NONE, nullptr);
+ if (resourceData) {
+ GtkCssProvider *cssProvider = gtk_css_provider_new();
+
+ gtk_css_provider_load_from_data(cssProvider, static_cast<const gchar *>(g_bytes_get_data(resourceData, nullptr)), g_bytes_get_size(resourceData), nullptr);
+ g_bytes_unref(resourceData);
+
+ gtk_style_context_add_provider_for_screen(gdk_screen_get_default(), GTK_STYLE_PROVIDER(cssProvider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+ g_object_unref(cssProvider);
+ }
+
return EvBrowserPlugin::create(instance)->initialize(pluginType, mode, argc, argn, argv, savedData);
}
@@ -197,6 +226,11 @@ NPError NP_Initialize(NPNetscapeFuncs *b
if ((browserFuncs->version >> 8) > NP_VERSION_MAJOR)
return NPERR_INCOMPATIBLE_VERSION_ERROR;
+ browser = browserFuncs;
+
+ if (!gtkToolkitIsCompatible(NULL))
+ return NPERR_GENERIC_ERROR;
+
if (!ev_init())
return NPERR_GENERIC_ERROR;
@@ -207,20 +241,8 @@ NPError NP_Initialize(NPNetscapeFuncs *b
return NPERR_GENERIC_ERROR;
#endif
- browser = browserFuncs;
initializePluginFuncs(pluginFuncs);
- GBytes *resourceData = g_resources_lookup_data("/org/gnome/evince/browser/ui/evince-browser.css", G_RESOURCE_LOOKUP_FLAGS_NONE, nullptr);
- if (resourceData) {
- GtkCssProvider *cssProvider = gtk_css_provider_new();
-
- gtk_css_provider_load_from_data(cssProvider, static_cast<const gchar *>(g_bytes_get_data(resourceData, nullptr)), g_bytes_get_size(resourceData), nullptr);
- g_bytes_unref(resourceData);
-
- gtk_style_context_add_provider_for_screen(gdk_screen_get_default(), GTK_STYLE_PROVIDER(cssProvider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
- g_object_unref(cssProvider);
- }
-
return NPERR_NO_ERROR;
}

View File

@ -0,0 +1,72 @@
From 3e38d5ad724a042eebadcba8c2d57b0f48b7a8c7 Mon Sep 17 00:00:00 2001
From: Jason Crain <jcrain@src.gnome.org>
Date: Mon, 15 Apr 2019 23:06:36 -0600
Subject: [PATCH] tiff: Handle failure from TIFFReadRGBAImageOriented
The TIFFReadRGBAImageOriented function returns zero if it was unable to
read the image. Return NULL in this case instead of displaying
uninitialized memory.
Fixes #1129
---
backend/tiff/tiff-document.c | 28 ++++++++++++++++++----------
1 file changed, 18 insertions(+), 10 deletions(-)
diff --git a/backend/tiff/tiff-document.c b/backend/tiff/tiff-document.c
index 7715031b..38bb3bd8 100644
--- a/backend/tiff/tiff-document.c
+++ b/backend/tiff/tiff-document.c
@@ -292,18 +292,22 @@ tiff_document_render (EvDocument *document,
g_warning("Failed to allocate memory for rendering.");
return NULL;
}
-
+
+ if (!TIFFReadRGBAImageOriented (tiff_document->tiff,
+ width, height,
+ (uint32 *)pixels,
+ orientation, 0)) {
+ g_warning ("Failed to read TIFF image.");
+ g_free (pixels);
+ return NULL;
+ }
+
surface = cairo_image_surface_create_for_data (pixels,
CAIRO_FORMAT_RGB24,
width, height,
rowstride);
cairo_surface_set_user_data (surface, &key,
pixels, (cairo_destroy_func_t)g_free);
-
- TIFFReadRGBAImageOriented (tiff_document->tiff,
- width, height,
- (uint32 *)pixels,
- orientation, 0);
pop_handlers ();
/* Convert the format returned by libtiff to
@@ -384,13 +388,17 @@ tiff_document_get_thumbnail (EvDocument *document,
if (!pixels)
return NULL;
+ if (!TIFFReadRGBAImageOriented (tiff_document->tiff,
+ width, height,
+ (uint32 *)pixels,
+ ORIENTATION_TOPLEFT, 0)) {
+ g_free (pixels);
+ return NULL;
+ }
+
pixbuf = gdk_pixbuf_new_from_data (pixels, GDK_COLORSPACE_RGB, TRUE, 8,
width, height, rowstride,
(GdkPixbufDestroyNotify) g_free, NULL);
- TIFFReadRGBAImageOriented (tiff_document->tiff,
- width, height,
- (uint32 *)pixels,
- ORIENTATION_TOPLEFT, 0);
pop_handlers ();
ev_render_context_compute_scaled_size (rc, width, height * (x_res / y_res),
--
2.21.0

View File

@ -1,35 +1,5 @@
--- evince-40.1/backend/dvi/mdvi-lib/pagesel.c --- evince-3.28.2/backend/comics/comics-document.c
+++ evince-40.1/backend/dvi/mdvi-lib/pagesel.c +++ evince-3.28.2/backend/comics/comics-document.c
@@ -209,6 +209,7 @@ DviPageSpec *mdvi_parse_page_spec(const
range = mdvi_parse_range(format, NULL, &count, &ptr);
if(ptr == format) {
if(range) mdvi_free(range);
+ mdvi_free(spec);
mdvi_error(_("invalid page specification `%s'\n"), format);
return NULL;
}
--- evince-40.1/backend/dvi/mdvi-lib/tfmfile.c
+++ evince-40.1/backend/dvi/mdvi-lib/tfmfile.c
@@ -393,6 +393,7 @@ static int ofm1_load_file(FILE *in, TFMI
/* read them in one sweep */
if(fread(tfm, 4, size, in) != size) {
mdvi_free(tfm);
+ tfm = NULL;
goto bad_tfm;
}
--- evince-40.1/backend/dvi/mdvi-lib/vf.c
+++ evince-40.1/backend/dvi/mdvi-lib/vf.c
@@ -129,6 +129,7 @@ static int vf_load_font(DviParams *param
if(ref == NULL) {
mdvi_error(_("(vf) %s: could not load font `%s'\n"),
font->fontname, name);
+ mdvi_free(name);
goto error;
}
mdvi_free(name);
--- evince-40.1/backend/comics/comics-document.c
+++ evince-40.1/backend/comics/comics-document.c
@@ -453,23 +453,27 @@ comics_document_render_pixbuf (EvDocumen @@ -453,23 +453,27 @@ comics_document_render_pixbuf (EvDocumen
name = ev_archive_get_entry_pathname (comics_document->archive); name = ev_archive_get_entry_pathname (comics_document->archive);
@ -69,68 +39,8 @@
gdk_pixbuf_loader_close (loader, NULL); gdk_pixbuf_loader_close (loader, NULL);
break; break;
} }
--- evince-40.1/backend/pdf/ev-poppler.cc --- evince-3.28.2/backend/pdf/ev-poppler.cc
+++ evince-40.1/backend/pdf/ev-poppler.cc +++ evince-3.28.2/backend/pdf/ev-poppler.cc
@@ -591,7 +591,7 @@ pdf_document_get_xmptag_from_path (xmlXP
const char* xpath)
{
xmlXPathObjectPtr xpathObj;
- char *xmpmetapath = g_strdup_printf ("%s%s", "/x:xmpmeta", xpath);
+ char *xmpmetapath;
xmlChar *result = NULL;
/* add pdf/a and pdf/x namespaces */
@@ -620,13 +620,17 @@ pdf_document_get_xmptag_from_path (xmlXP
if (result != NULL)
return result;
+ xmpmetapath = g_strdup_printf ("%s%s", "/x:xmpmeta", xpath);
+
/*
Try in /x:xmpmeta/ (xmpmeta is optional)
https://wwwimages2.adobe.com/content/dam/acom/en/devnet/xmp/pdfs/XMP SDK Release cc-2016-08/XMPSpecificationPart1.pdf (Section 7.3.3)
*/
xpathObj = xmlXPathEvalExpression (BAD_CAST xmpmetapath, xpathCtx);
- if (xpathObj == NULL)
+ if (xpathObj == NULL) {
+ g_free (xmpmetapath);
return NULL;
+ }
if (xpathObj->nodesetval != NULL && xpathObj->nodesetval->nodeNr != 0)
result = xmlNodeGetContent (xpathObj->nodesetval->nodeTab[0]);
@@ -743,12 +747,14 @@ static char *
pdf_document_get_author_from_metadata (xmlXPathContextPtr xpathCtx)
{
char* result = NULL;
- char* xmpmetapath = g_strdup_printf ("%s%s", "/x:xmpmeta", AUTHORS);
+ char* xmpmetapath;
/* Try in /rdf:RDF/ */
result = pdf_document_get_lists_from_dc_tags (xpathCtx, AUTHORS);
if (result != NULL)
return result;
+ xmpmetapath = g_strdup_printf ("%s%s", "/x:xmpmeta", AUTHORS);
+
/* Try in /x:xmpmeta/ */
result = pdf_document_get_lists_from_dc_tags (xpathCtx, xmpmetapath);
g_free (xmpmetapath);
@@ -760,12 +766,14 @@ static char *
pdf_document_get_keywords_from_metadata (xmlXPathContextPtr xpathCtx)
{
char* result = NULL;
- char* xmpmetapath = g_strdup_printf ("%s%s", "/x:xmpmeta", KEYWORDS);
+ char* xmpmetapath;
/* Try in /rdf:RDF/ */
result = pdf_document_get_lists_from_dc_tags (xpathCtx, KEYWORDS);
if (result != NULL)
return result;
+ xmpmetapath = g_strdup_printf ("%s%s", "/x:xmpmeta", KEYWORDS);
+
/* Try in /x:xmpmeta/ */
result = pdf_document_get_lists_from_dc_tags (xpathCtx, xmpmetapath);
g_free (xmpmetapath);
@@ -859,6 +859,7 @@ pdf_document_get_info (EvDocument *docum @@ -859,6 +859,7 @@ pdf_document_get_info (EvDocument *docum
break; break;
case POPPLER_PAGE_LAYOUT_TWO_COLUMN_RIGHT: case POPPLER_PAGE_LAYOUT_TWO_COLUMN_RIGHT:
@ -139,26 +49,8 @@
case POPPLER_PAGE_LAYOUT_TWO_PAGE_LEFT: case POPPLER_PAGE_LAYOUT_TWO_PAGE_LEFT:
info->layout = EV_DOCUMENT_LAYOUT_TWO_PAGE_LEFT; info->layout = EV_DOCUMENT_LAYOUT_TWO_PAGE_LEFT;
break; break;
--- evince-40.1/properties/ev-properties-view.c --- evince-3.28.2/cut-n-paste/libgd/gd-two-lines-renderer.c
+++ evince-40.1/properties/ev-properties-view.c +++ evince-3.28.2/cut-n-paste/libgd/gd-two-lines-renderer.c
@@ -339,6 +339,7 @@ ev_regular_paper_size (const EvDocumentI
ABS (info->paper_width - paper_width) <= width_tolerance) {
/* Note to translators: first placeholder is the paper name (eg.
* A4), second placeholder is the paper size (eg. 297x210 mm) */
+ g_free (str);
str = g_strdup_printf (_("%s, Portrait (%s)"),
gtk_paper_size_get_display_name (size),
exact_size);
@@ -346,6 +347,7 @@ ev_regular_paper_size (const EvDocumentI
ABS (info->paper_height - paper_width) <= width_tolerance) {
/* Note to translators: first placeholder is the paper name (eg.
* A4), second placeholder is the paper size (eg. 297x210 mm) */
+ g_free (str);
str = g_strdup_printf ( _("%s, Landscape (%s)"),
gtk_paper_size_get_display_name (size),
exact_size);
--- evince-40.1/cut-n-paste/libgd/gd-two-lines-renderer.c
+++ evince-40.1/cut-n-paste/libgd/gd-two-lines-renderer.c
@@ -281,7 +281,7 @@ gd_two_lines_renderer_render (GtkCellRen @@ -281,7 +281,7 @@ gd_two_lines_renderer_render (GtkCellRen
GtkStyleContext *context; GtkStyleContext *context;
gint line_one_height; gint line_one_height;
@ -168,8 +60,77 @@
gint xpad, ypad, x_offset_1, x_offset_2, y_offset; gint xpad, ypad, x_offset_1, x_offset_2, y_offset;
PangoLayout *layout_one, *layout_two; PangoLayout *layout_one, *layout_two;
PangoRectangle layout_rect; PangoRectangle layout_rect;
--- evince-40.1/cut-n-paste/unarr/rar/filter-rar.c --- evince-3.28.2/cut-n-paste/synctex/synctex_parser.c
+++ evince-40.1/cut-n-paste/unarr/rar/filter-rar.c +++ evince-3.28.2/cut-n-paste/synctex/synctex_parser.c
@@ -2878,6 +2878,7 @@ int _synctex_open(const char * output, c
build_output[0] = '\0';
} else {
if (build_output != strcpy(build_output,output)) {
+ free(build_output);
return -4;
}
build_output[lpc-output]='\0';
@@ -2886,15 +2887,18 @@ int _synctex_open(const char * output, c
/* Append a path separator if necessary. */
if (!SYNCTEX_IS_PATH_SEPARATOR(build_output[strlen(build_directory)-1])) {
if (build_output != strcat(build_output,"/")) {
+ free(build_output);
return -2;
}
}
/* Append the last path component of the output. */
if (build_output != strcat(build_output,lpc)) {
+ free(build_output);
return -3;
}
return __synctex_open(build_output,synctex_name_ref,file_ref,add_quotes,io_mode_ref);
}
+ free(build_output);
}
return -1;
}
--- evince-3.28.2/cut-n-paste/synctex/synctex_parser_utils.c
+++ evince-3.28.2/cut-n-paste/synctex/synctex_parser_utils.c
@@ -292,6 +292,7 @@ char * _synctex_merge_strings(const char
size_t len = strlen(temp);
if(UINT_MAX-len<size) {
_synctex_error("! _synctex_merge_strings: Capacity exceeded.");
+ va_end(arg);
return NULL;
}
size+=len;
@@ -312,6 +313,7 @@ char * _synctex_merge_strings(const char
_synctex_error("! _synctex_merge_strings: Copy problem");
free(result);
result = NULL;
+ va_end(arg);
return NULL;
}
dest += size;
@@ -393,7 +395,7 @@ int _synctex_get_name(const char * outpu
free(dir_name);
dir_name = NULL;
free(core_name);
- dir_name = NULL;
+ core_name = NULL;
return -2;
}
dir_name[size] = '\0';
@@ -487,6 +489,12 @@ int _synctex_get_name(const char * outpu
/* set up the returned values */
* synctex_name_ref = synctex_name;
* io_mode_ref = io_mode;
+ free(dir_name);
+ dir_name = NULL;
+ free(core_name);
+ core_name = NULL;
+ free(quoted_core_name);
+ quoted_core_name = NULL;
return 0;
}
return -1;/* bad argument */
--- evince-3.28.2/cut-n-paste/unarr/rar/filter-rar.c
+++ evince-3.28.2/cut-n-paste/unarr/rar/filter-rar.c
@@ -273,8 +273,10 @@ static struct RARFilter *rar_create_filt @@ -273,8 +273,10 @@ static struct RARFilter *rar_create_filt
filter->prog = prog; filter->prog = prog;
filter->globaldatalen = globaldatalen > RARProgramSystemGlobalSize ? globaldatalen : RARProgramSystemGlobalSize; filter->globaldatalen = globaldatalen > RARProgramSystemGlobalSize ? globaldatalen : RARProgramSystemGlobalSize;
@ -182,8 +143,8 @@
if (globaldata) if (globaldata)
memcpy(filter->globaldata, globaldata, globaldatalen); memcpy(filter->globaldata, globaldata, globaldatalen);
if (registers) if (registers)
--- evince-40.1/libdocument/ev-document.c --- evince-3.28.2/libdocument/ev-document.c
+++ evince-40.1/libdocument/ev-document.c +++ evince-3.28.2/libdocument/ev-document.c
@@ -496,6 +496,9 @@ ev_document_load_stream (EvDocument @@ -496,6 +496,9 @@ ev_document_load_stream (EvDocument
g_return_val_if_fail (error == NULL || *error == NULL, FALSE); g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
@ -214,8 +175,8 @@
if (klass->get_backend_info == NULL) if (klass->get_backend_info == NULL)
return FALSE; return FALSE;
--- evince-40.1/libview/ev-pixbuf-cache.c --- evince-3.28.2/libview/ev-pixbuf-cache.c
+++ evince-40.1/libview/ev-pixbuf-cache.c +++ evince-3.28.2/libview/ev-pixbuf-cache.c
@@ -337,6 +337,11 @@ job_finished_cb (EvJob *job, @@ -337,6 +337,11 @@ job_finished_cb (EvJob *job,
job_info = find_job_cache (pixbuf_cache, job_render->page); job_info = find_job_cache (pixbuf_cache, job_render->page);
@ -240,8 +201,8 @@
if (job_info->job) if (job_info->job)
return; return;
--- evince-40.1/libview/ev-print-operation.c --- evince-3.28.2/libview/ev-print-operation.c
+++ evince-40.1/libview/ev-print-operation.c +++ evince-3.28.2/libview/ev-print-operation.c
@@ -181,6 +181,7 @@ ev_print_operation_set_current_page (EvP @@ -181,6 +181,7 @@ ev_print_operation_set_current_page (EvP
EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op); EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op);
@ -338,8 +299,8 @@
return class->get_embed_page_setup (op); return class->get_embed_page_setup (op);
} }
--- evince-40.1/libview/ev-timeline.c --- evince-3.28.2/libview/ev-timeline.c
+++ evince-40.1/libview/ev-timeline.c +++ evince-3.28.2/libview/ev-timeline.c
@@ -289,9 +289,15 @@ ev_timeline_new (guint duration) @@ -289,9 +289,15 @@ ev_timeline_new (guint duration)
void void
ev_timeline_start (EvTimeline *timeline) ev_timeline_start (EvTimeline *timeline)
@ -357,8 +318,8 @@
} }
void void
--- evince-40.1/libview/ev-view.c --- evince-3.28.2/libview/ev-view.c
+++ evince-40.1/libview/ev-view.c +++ evince-3.28.2/libview/ev-view.c
@@ -1147,7 +1147,7 @@ ensure_rectangle_is_visible (EvView *vie @@ -1147,7 +1147,7 @@ ensure_rectangle_is_visible (EvView *vie
if (rect->x < adj_value) { if (rect->x < adj_value) {
value = MAX (gtk_adjustment_get_lower (adjustment), rect->x - MARGIN); value = MAX (gtk_adjustment_get_lower (adjustment), rect->x - MARGIN);
@ -404,8 +365,8 @@
if (view->allow_links_change_zoom) { if (view->allow_links_change_zoom) {
double zoom; double zoom;
gdouble doc_width, doc_height; gdouble doc_width, doc_height;
--- evince-40.1/libview/ev-view-presentation.c --- evince-3.28.2/libview/ev-view-presentation.c
+++ evince-40.1/libview/ev-view-presentation.c +++ evince-3.28.2/libview/ev-view-presentation.c
@@ -448,7 +448,7 @@ ev_view_presentation_update_current_page @@ -448,7 +448,7 @@ ev_view_presentation_update_current_page
{ {
gint jump; gint jump;
@ -415,22 +376,41 @@
return; return;
ev_view_presentation_animation_cancel (pview); ev_view_presentation_animation_cancel (pview);
--- evince-40.1/shell/ev-find-sidebar.c --- evince-3.28.2/shell/ev-sidebar.c
+++ evince-40.1/shell/ev-find-sidebar.c +++ evince-3.28.2/shell/ev-sidebar.c
@@ -476,8 +476,10 @@ process_matches_idle (EvFindSidebar *sid @@ -471,18 +471,19 @@ ev_sidebar_add_page (EvSidebar *ev_sid
page_label = ev_document_get_page_label (document, current_page);
page_text = get_page_text (document, page, &areas, &n_areas);
g_object_unref (page);
- if (!page_text)
+ if (!page_text) {
+ g_free (page_label);
continue;
+ }
text_log_attrs_length = g_utf8_strlen (page_text, -1);
text_log_attrs = g_new0 (PangoLogAttr, text_log_attrs_length + 1); /* Set the first item added as active */
--- evince-40.1/shell/ev-sidebar-thumbnails.c - gtk_tree_model_get_iter_first (ev_sidebar->priv->page_model, &iter);
+++ evince-40.1/shell/ev-sidebar-thumbnails.c - gtk_tree_model_get (ev_sidebar->priv->page_model,
- &iter,
- PAGE_COLUMN_TITLE, &label_title,
- PAGE_COLUMN_NOTEBOOK_INDEX, &index,
- -1);
+ if (gtk_tree_model_get_iter_first (ev_sidebar->priv->page_model, &iter)) {
+ gtk_tree_model_get (ev_sidebar->priv->page_model,
+ &iter,
+ PAGE_COLUMN_TITLE, &label_title,
+ PAGE_COLUMN_NOTEBOOK_INDEX, &index,
+ -1);
- gtk_menu_set_active (GTK_MENU (ev_sidebar->priv->menu), index);
- gtk_label_set_text (GTK_LABEL (ev_sidebar->priv->label), label_title);
- gtk_notebook_set_current_page (GTK_NOTEBOOK (ev_sidebar->priv->notebook),
- index);
- g_free (label_title);
+ gtk_menu_set_active (GTK_MENU (ev_sidebar->priv->menu), index);
+ gtk_label_set_text (GTK_LABEL (ev_sidebar->priv->label), label_title);
+ gtk_notebook_set_current_page (GTK_NOTEBOOK (ev_sidebar->priv->notebook),
+ index);
+ g_free (label_title);
+ }
}
static gboolean
--- evince-3.28.2/shell/ev-sidebar-thumbnails.c
+++ evince-3.28.2/shell/ev-sidebar-thumbnails.c
@@ -658,11 +658,11 @@ ev_sidebar_thumbnails_fill_model (EvSide @@ -658,11 +658,11 @@ ev_sidebar_thumbnails_fill_model (EvSide
int i; int i;
gint prev_width = -1; gint prev_width = -1;
@ -444,17 +424,17 @@
gint width, height; gint width, height;
page_label = ev_document_get_page_label (priv->document, i); page_label = ev_document_get_page_label (priv->document, i);
--- evince-40.1/shell/ev-window.c --- evince-3.28.2/shell/ev-window.c
+++ evince-40.1/shell/ev-window.c +++ evince-3.28.2/shell/ev-window.c
@@ -3121,10 +3121,10 @@ ev_window_load_print_settings_from_metad @@ -3121,10 +3121,10 @@ ev_window_load_print_settings_from_metad
for (i = 0; i < G_N_ELEMENTS (document_print_settings); i++) { for (i = 0; i < G_N_ELEMENTS (document_print_settings); i++) {
gchar *value = NULL; gchar *value = NULL;
- ev_metadata_get_string (priv->metadata, - ev_metadata_get_string (window->priv->metadata,
- document_print_settings[i], &value); - document_print_settings[i], &value);
- gtk_print_settings_set (print_settings, - gtk_print_settings_set (print_settings,
- document_print_settings[i], value); - document_print_settings[i], value);
+ if (ev_metadata_get_string (priv->metadata, + if (ev_metadata_get_string (window->priv->metadata,
+ document_print_settings[i], &value)) + document_print_settings[i], &value))
+ gtk_print_settings_set (print_settings, + gtk_print_settings_set (print_settings,
+ document_print_settings[i], value); + document_print_settings[i], value);
@ -464,19 +444,19 @@
@@ -4705,12 +4705,16 @@ ev_window_cmd_bookmarks_add (GSimpleActi @@ -4705,12 +4705,16 @@ ev_window_cmd_bookmarks_add (GSimpleActi
gchar *page_label; gchar *page_label;
bm.page = ev_document_model_get_page (priv->model); bm.page = ev_document_model_get_page (window->priv->model);
- page_label = ev_document_get_page_label (priv->document, bm.page); - page_label = ev_document_get_page_label (window->priv->document, bm.page);
- bm.title = g_strdup_printf (_("Page %s"), page_label); - bm.title = g_strdup_printf (_("Page %s"), page_label);
- g_free (page_label); - g_free (page_label);
+ if (bm.page >= 0) { + if (bm.page >= 0) {
+ page_label = ev_document_get_page_label (priv->document, bm.page); + page_label = ev_document_get_page_label (window->priv->document, bm.page);
+ bm.title = g_strdup_printf (_("Page %s"), page_label); + bm.title = g_strdup_printf (_("Page %s"), page_label);
+ g_free (page_label); + g_free (page_label);
- /* EvBookmarks takes ownership of bookmark */ - /* EvBookmarks takes ownership of bookmark */
- ev_bookmarks_add (priv->bookmarks, &bm); - ev_bookmarks_add (window->priv->bookmarks, &bm);
+ /* EvBookmarks takes ownership of bookmark */ + /* EvBookmarks takes ownership of bookmark */
+ ev_bookmarks_add (priv->bookmarks, &bm); + ev_bookmarks_add (window->priv->bookmarks, &bm);
+ } else { + } else {
+ g_warning ("Bookmarking of a page failed."); + g_warning ("Bookmarking of a page failed.");
+ } + }

View File

@ -0,0 +1,203 @@
From 1f250861fa2ec6a7117f183459e62ac285d85db6 Mon Sep 17 00:00:00 2001
From: Marek Kasik <mkasik@redhat.com>
Date: Tue, 2 Mar 2021 18:40:56 +0100
Subject: [PATCH] window: Show password dialog again
Show password dialog when trying to open a document for which we've
cancelled a password dialog before in recent view.
This is achieved by adding a signal "cancelled" to EvPasswordView since
only successfull entering of password was signaled before by "unlock" signal.
We also need to unregister current document with EvApplication and clear its uri
there to be able to open other documents in current window.
---
shell/ev-application.c | 16 ++++++++++++++++
shell/ev-application.h | 1 +
shell/ev-password-view.c | 14 ++++++++++++++
shell/ev-password-view.h | 3 ++-
shell/ev-window.c | 23 ++++++++++++++++++++++-
5 files changed, 55 insertions(+), 2 deletions(-)
From ef2d7ca9734c6a2e3ba0a80279d944352d355295 Mon Sep 17 00:00:00 2001
From: Tom Schoonjans <Tom.Schoonjans@rfi.ac.uk>
Date: Wed, 9 Jun 2021 06:39:48 +0100
Subject: [PATCH] ev-application: fix compilation error when DBus is disabled
---
shell/ev-application.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/shell/ev-application.c b/shell/ev-application.c
index 23871d9a..7a3b69ba 100644
--- a/shell/ev-application.c
+++ b/shell/ev-application.c
@@ -539,6 +539,7 @@ ev_application_unregister_uri (EvApplication *application,
g_error_free (error);
} else {
g_variant_unref (value);
+ application->doc_registered = FALSE;
}
}
#endif /* ENABLE_DBUS */
@@ -1166,6 +1167,23 @@ ev_application_get_uri (EvApplication *application)
return application->uri;
}
+/**
+ * ev_application_clear_uri:
+ * @application: The instance of the application.
+ *
+ * This unregisters current uri and clears it so that another document
+ * can be opened in this instance. E.g. after cancelled password dialog
+ * in recent view.
+ */
+void
+ev_application_clear_uri (EvApplication *application)
+{
+#ifdef ENABLE_DBUS
+ ev_application_unregister_uri (application, application->uri);
+#endif
+ g_clear_pointer (&application->uri, g_free);
+}
+
/**
* ev_application_get_media_keys:
* @application: The instance of the application.
diff --git a/shell/ev-application.h b/shell/ev-application.h
index 00a7a18b..f9b43ab3 100644
--- a/shell/ev-application.h
+++ b/shell/ev-application.h
@@ -66,6 +66,7 @@ void ev_application_open_uri_list (EvApplication *application,
gboolean ev_application_has_window (EvApplication *application);
guint ev_application_get_n_windows (EvApplication *application);
const gchar * ev_application_get_uri (EvApplication *application);
+void ev_application_clear_uri (EvApplication *application);
GObject *ev_application_get_media_keys (EvApplication *application);
const gchar *ev_application_get_dot_dir (EvApplication *application,
diff --git a/shell/ev-password-view.c b/shell/ev-password-view.c
index 9a916d55..0dab3c51 100644
--- a/shell/ev-password-view.c
+++ b/shell/ev-password-view.c
@@ -38,6 +38,7 @@
enum {
UNLOCK,
+ CANCELLED,
LAST_SIGNAL
};
struct _EvPasswordViewPrivate {
@@ -91,6 +92,15 @@ ev_password_view_class_init (EvPasswordViewClass *class)
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
+ password_view_signals[CANCELLED] =
+ g_signal_new ("cancelled",
+ G_TYPE_FROM_CLASS (g_object_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+ G_STRUCT_OFFSET (EvPasswordViewClass, cancelled),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
g_type_class_add_private (g_object_class, sizeof (EvPasswordViewPrivate));
g_object_class->finalize = ev_password_view_finalize;
@@ -183,6 +193,10 @@ ev_password_dialog_got_response (GtkDialog *dialog,
g_strdup (gtk_entry_get_text (GTK_ENTRY (password_view->priv->password_entry)));
g_signal_emit (password_view, password_view_signals[UNLOCK], 0);
+ } else if (response_id == GTK_RESPONSE_CANCEL ||
+ response_id == GTK_RESPONSE_CLOSE ||
+ response_id == GTK_RESPONSE_DELETE_EVENT) {
+ g_signal_emit (password_view, password_view_signals[CANCELLED], 0);
}
gtk_widget_destroy (GTK_WIDGET (dialog));
diff --git a/shell/ev-password-view.h b/shell/ev-password-view.h
index c3fc5bbc..e279c612 100644
--- a/shell/ev-password-view.h
+++ b/shell/ev-password-view.h
@@ -40,7 +40,8 @@ struct _EvPasswordViewClass {
GtkViewportClass parent_class;
/* signals */
- void (*unlock) (EvPasswordView *self);
+ void (*unlock) (EvPasswordView *self);
+ void (*cancelled) (EvPasswordView *self);
};
GType ev_password_view_get_type (void) G_GNUC_CONST;
diff --git a/shell/ev-window.c b/shell/ev-window.c
index 077d577d..f728fa77 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -239,6 +239,8 @@ typedef struct {
/* Send to */
gboolean has_mailto_handler;
+
+ gboolean password_view_cancelled;
};
#define EV_WINDOW_GET_PRIVATE(object) \
@@ -1804,6 +1806,7 @@ ev_window_password_view_unlock (EvWindow *ev_window)
password = ev_password_view_get_password (EV_PASSWORD_VIEW (ev_window->priv->password_view));
ev_job_load_set_password (EV_JOB_LOAD (ev_window->priv->load_job), password);
ev_job_scheduler_push_job (ev_window->priv->load_job, EV_JOB_PRIORITY_NONE);
+ ev_window->priv->password_view_cancelled = FALSE;
}
static void
@@ -1821,6 +1824,18 @@ ev_window_clear_load_job (EvWindow *ev_window)
}
}
+static void
+ev_window_password_view_cancelled (EvWindow *ev_window)
+{
+ EvWindowPrivate *priv = ev_window->priv;
+
+ priv->password_view_cancelled = TRUE;
+ if (ev_window_is_recent_view (ev_window)) {
+ ev_window_clear_load_job (ev_window);
+ ev_application_clear_uri (EV_APP);
+ }
+}
+
static void
ev_window_clear_reload_job (EvWindow *ev_window)
{
@@ -2395,7 +2410,8 @@ ev_window_open_uri (EvWindow *ev_window,
g_strdup (search_string) : NULL;
if (ev_window->priv->uri &&
- g_ascii_strcasecmp (ev_window->priv->uri, uri) == 0) {
+ g_ascii_strcasecmp (ev_window->priv->uri, uri) == 0 &&
+ !ev_window->priv->password_view_cancelled) {
ev_window_reload_document (ev_window, dest);
return;
}
@@ -7643,11 +7659,16 @@ ev_window_init (EvWindow *ev_window)
allow_links_change_zoom);
ev_view_set_model (EV_VIEW (ev_window->priv->view), ev_window->priv->model);
+ ev_window->priv->password_view_cancelled = FALSE;
ev_window->priv->password_view = ev_password_view_new (GTK_WINDOW (ev_window));
g_signal_connect_swapped (ev_window->priv->password_view,
"unlock",
G_CALLBACK (ev_window_password_view_unlock),
ev_window);
+ g_signal_connect_swapped (ev_window->priv->password_view,
+ "cancelled",
+ G_CALLBACK (ev_window_password_view_cancelled),
+ ev_window);
g_signal_connect_object (ev_window->priv->view, "focus_in_event",
G_CALLBACK (view_actions_focus_in_cb),
ev_window, 0);
--
2.31.1

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,36 @@
From 9363553a3087c7dbfa93e1d342283600ceb5993b Mon Sep 17 00:00:00 2001
From: Marek Kasik <mkasik@redhat.com>
Date: Fri, 22 Jun 2018 17:00:20 +0200
Subject: shell: Set application-id
Set "application-id" property for evince's GApplication
to "org.gnome.evince.Application".
An assertion warning is shown in shell if it is not set.
Even though we use G_APPLICATION_NON_UNIQUE, the application
ID is still required. See:
https://bugzilla.gnome.org/show_bug.cgi?id=646985#c2
Closes: https://gitlab.gnome.org/GNOME/evince/issues/918
diff --git a/shell/ev-application.c b/shell/ev-application.c
index 7d546933..f173d7a4 100644
--- a/shell/ev-application.c
+++ b/shell/ev-application.c
@@ -65,6 +65,7 @@ struct _EvApplicationClass {
G_DEFINE_TYPE (EvApplication, ev_application, GTK_TYPE_APPLICATION)
#ifdef ENABLE_DBUS
+#define APPLICATION_DBUS_NAME "org.gnome.evince.Application"
#define APPLICATION_DBUS_OBJECT_PATH "/org/gnome/evince/Evince"
#define APPLICATION_DBUS_INTERFACE "org.gnome.evince.Application"
@@ -102,7 +103,7 @@ ev_application_new (void)
const GApplicationFlags flags = G_APPLICATION_NON_UNIQUE;
return g_object_new (EV_TYPE_APPLICATION,
- "application-id", NULL,
+ "application-id", APPLICATION_DBUS_NAME,
"flags", flags,
NULL);
}

View File

@ -0,0 +1,31 @@
From 9756fdca2efe71738d02792e839862cb5f0a0244 Mon Sep 17 00:00:00 2001
From: Marek Kasik <mkasik@redhat.com>
Date: Tue, 16 Feb 2021 17:15:20 +0100
Subject: [PATCH] window: Use tmp dir as containing folder for non-native file
Show the temporary directory containing the downloaded document
as containing folder for documents from remote URIs.
It fails currently since it can not open remote URIs.
---
shell/ev-window.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/shell/ev-window.c b/shell/ev-window.c
index ba282e18..a1bc55f0 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -3290,6 +3290,10 @@ ev_window_cmd_open_containing_folder (GSimpleAction *action,
}
file = g_file_new_for_uri (window->priv->uri);
+ if (!g_file_is_native (file)) {
+ g_object_unref (file);
+ file = g_file_new_for_uri (ev_document_get_uri (window->priv->document));
+ }
list.next = list.prev = NULL;
list.data = file;
--
2.30.2

View File

@ -0,0 +1,55 @@
From 7c6c930f7fa164700d089d646dc8300340ca4600 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Nelson=20Ben=C3=ADtez=20Le=C3=B3n?= <nbenitezl@gmail.com>
Date: Mon, 6 Apr 2020 14:38:53 -0400
Subject: [PATCH] EvFormField: allow text entries to handle clicks
so the user can interact with the text entry for
eg. placing text cursor in an arbitrary position
Fixes #1364
---
libview/ev-view.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/libview/ev-view.c b/libview/ev-view.c
index f73f0ce9..1ebcb584 100644
--- a/libview/ev-view.c
+++ b/libview/ev-view.c
@@ -2497,6 +2497,14 @@ ev_view_form_field_text_focus_out (GtkWidget *widget,
return FALSE;
}
+static gboolean
+ev_view_form_field_text_button_pressed (GtkWidget *widget,
+ GdkEventButton *event,
+ gpointer data)
+{
+ return GDK_EVENT_STOP;
+}
+
static GtkWidget *
ev_view_form_field_text_create_widget (EvView *view,
EvFormField *field)
@@ -2536,6 +2544,9 @@ ev_view_form_field_text_create_widget (EvView *view,
g_signal_connect_after (text, "activate",
G_CALLBACK (ev_view_form_field_destroy),
view);
+ g_signal_connect_after (text, "button-press-event",
+ G_CALLBACK (ev_view_form_field_text_button_pressed),
+ NULL);
break;
case EV_FORM_FIELD_TEXT_MULTILINE: {
GtkTextBuffer *buffer;
@@ -2554,6 +2565,9 @@ ev_view_form_field_text_create_widget (EvView *view,
g_signal_connect (buffer, "changed",
G_CALLBACK (ev_view_form_field_text_changed),
field);
+ g_signal_connect_after (text, "button-press-event",
+ G_CALLBACK (ev_view_form_field_text_button_pressed),
+ NULL);
}
break;
}
--
2.31.1

View File

@ -0,0 +1,62 @@
From 9d6ebdb168f8438449c43e63f38f687e09c8fe4f Mon Sep 17 00:00:00 2001
From: Marek Kasik <mkasik@redhat.com>
Date: Thu, 5 Mar 2020 13:21:59 +0100
Subject: [PATCH] ev-view: Move annotation popup window to new position
Open annotation popup window at new position if its
annotation was moved when the popup window was hidden.
This places existing popup window the same way as when
it was created.
---
libview/ev-view.c | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/libview/ev-view.c b/libview/ev-view.c
index ffbe1704..43a0410d 100644
--- a/libview/ev-view.c
+++ b/libview/ev-view.c
@@ -3390,6 +3390,41 @@ ev_view_handle_annotation (EvView *view,
parent = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (view)));
window = ev_view_create_annotation_window (view, annot, parent);
+ } else if (window && ev_annotation_markup_has_popup (EV_ANNOTATION_MARKUP (annot))) {
+ EvViewWindowChild *child;
+ EvMappingList *annots;
+ EvRectangle popup_rect;
+ EvMapping *mapping;
+ GdkPoint view_point;
+ EvPoint annotation_corner;
+
+ child = ev_view_get_window_child (view, window);
+ annots = ev_page_cache_get_annot_mapping (view->page_cache,
+ ev_annotation_get_page_index (annot));
+ mapping = ev_mapping_list_find (annots, annot);
+ ev_annotation_markup_get_rectangle (EV_ANNOTATION_MARKUP (annot),
+ &popup_rect);
+
+ popup_rect.x2 = mapping->area.x2 + popup_rect.x2 - popup_rect.x1;
+ popup_rect.y2 = mapping->area.y2 + popup_rect.y2 - popup_rect.y1;
+ popup_rect.x1 = mapping->area.x2;
+ popup_rect.y1 = mapping->area.y2;
+ g_object_set (annot,
+ "rectangle", &popup_rect,
+ "popup_is_open", TRUE,
+ NULL);
+
+ annotation_corner.x = mapping->area.x2;
+ annotation_corner.y = mapping->area.y2;
+
+ _ev_view_transform_doc_point_to_view_point (view,
+ ev_annotation_get_page_index (annot),
+ &annotation_corner,
+ &view_point);
+
+ ev_view_window_child_move (view, child,
+ child->parent_x + view_point.x - view->scroll_x,
+ child->parent_y + view_point.y - view->scroll_y);
}
ev_view_annotation_show_popup_window (view, window);
}
--
2.24.1

View File

@ -0,0 +1,395 @@
From fe9573da1278463a76b685c5cb3116d6e8241e27 Mon Sep 17 00:00:00 2001
From: Marek Kasik <mkasik@redhat.com>
Date: Wed, 22 Jul 2020 16:26:17 +0200
Subject: [PATCH] Handle reset form action
Add new type of action EV_LINK_ACTION_TYPE_RESET_FORM for EvLinkAction
together with properties "reset-fields" and "exclude-reset-fields".
The properties controls which fields are reset and are set in PDF document.
This commit extends EvDocumentFormsInterface with new method "reset_form".
Check for poppler 0.90.0 or higher when calling its methods for resetting
of forms.
Issue #46
---
backend/pdf/ev-poppler.cc | 29 ++++++++++
libdocument/ev-document-forms.c | 10 ++++
libdocument/ev-document-forms.h | 4 ++
libdocument/ev-link-action.c | 81 ++++++++++++++++++++++++++++++++-
libdocument/ev-link-action.h | 51 +++++++++++----------
libview/ev-view.c | 4 ++
shell/ev-window.c | 15 ++++++
7 files changed, 166 insertions(+), 24 deletions(-)
diff --git a/backend/pdf/ev-poppler.cc b/backend/pdf/ev-poppler.cc
index ee9a5c9f..efffef0b 100644
--- a/backend/pdf/ev-poppler.cc
+++ b/backend/pdf/ev-poppler.cc
@@ -1721,6 +1721,23 @@ ev_link_from_action (PdfDocument *pdf_document,
case POPPLER_ACTION_JAVASCRIPT:
unimplemented_action = "POPPLER_ACTION_JAVASCRIPT";
break;
+#if POPPLER_CHECK_VERSION(0, 90, 0)
+ case POPPLER_ACTION_RESET_FORM: {
+ gboolean exclude_reset_fields;
+ GList *reset_fields = NULL;
+ GList *iter;
+
+ for (iter = action->reset_form.fields; iter; iter = iter->next)
+ reset_fields = g_list_prepend (reset_fields, g_strdup ((char *) iter->data));
+
+ exclude_reset_fields = action->reset_form.exclude;
+
+ /* The action takes the ownership of the list */
+ ev_action = ev_link_action_new_reset_form (g_list_reverse (reset_fields),
+ exclude_reset_fields);
+ break;
+ }
+#endif
case POPPLER_ACTION_UNKNOWN:
unimplemented_action = "POPPLER_ACTION_UNKNOWN";
}
@@ -2845,6 +2860,17 @@ pdf_document_forms_document_is_modified (EvDocumentForms *document)
return PDF_DOCUMENT (document)->forms_modified;
}
+static void
+pdf_document_forms_reset_form (EvDocumentForms *document,
+ EvLinkAction *action)
+{
+#if POPPLER_CHECK_VERSION(0, 90, 0)
+ poppler_document_reset_form (PDF_DOCUMENT (document)->document,
+ ev_link_action_get_reset_fields (action),
+ ev_link_action_get_exclude_reset_fields (action));
+#endif
+}
+
static gchar *
pdf_document_forms_form_field_text_get_text (EvDocumentForms *document,
EvFormField *field)
@@ -3044,6 +3068,7 @@ pdf_document_document_forms_iface_init (EvDocumentFormsInterface *iface)
{
iface->get_form_fields = pdf_document_forms_get_form_fields;
iface->document_is_modified = pdf_document_forms_document_is_modified;
+ iface->reset_form = pdf_document_forms_reset_form;
iface->form_field_text_get_text = pdf_document_forms_form_field_text_get_text;
iface->form_field_text_set_text = pdf_document_forms_form_field_text_set_text;
iface->form_field_button_set_state = pdf_document_forms_form_field_button_set_state;
diff --git a/libdocument/ev-document-forms.c b/libdocument/ev-document-forms.c
index 19417c77..1fe983b1 100644
--- a/libdocument/ev-document-forms.c
+++ b/libdocument/ev-document-forms.c
@@ -45,6 +45,16 @@ ev_document_forms_document_is_modified (EvDocumentForms *document_forms)
return (iface->document_is_modified) ? iface->document_is_modified (document_forms) : FALSE;
}
+void
+ev_document_forms_reset_form (EvDocumentForms *document_forms,
+ EvLinkAction *action)
+{
+ EvDocumentFormsInterface *iface = EV_DOCUMENT_FORMS_GET_IFACE (document_forms);
+
+ if (iface->reset_form)
+ iface->reset_form (document_forms, action);
+}
+
gchar *
ev_document_forms_form_field_text_get_text (EvDocumentForms *document_forms,
EvFormField *field)
diff --git a/libdocument/ev-document-forms.h b/libdocument/ev-document-forms.h
index 198f3eb5..f78dba6b 100644
--- a/libdocument/ev-document-forms.h
+++ b/libdocument/ev-document-forms.h
@@ -82,6 +82,8 @@ struct _EvDocumentFormsInterface
const gchar *text);
gchar *(* form_field_choice_get_text) (EvDocumentForms *document_forms,
EvFormField *field);
+ void (* reset_form) (EvDocumentForms *document_forms,
+ EvLinkAction *action);
};
GType ev_document_forms_get_type (void) G_GNUC_CONST;
@@ -122,6 +124,8 @@ void ev_document_forms_form_field_choice_set_text (EvDocumentFor
const gchar *text);
gchar *ev_document_forms_form_field_choice_get_text (EvDocumentForms *document_forms,
EvFormField *field);
+void ev_document_forms_reset_form (EvDocumentForms *document_forms,
+ EvLinkAction *action);
G_END_DECLS
diff --git a/libdocument/ev-link-action.c b/libdocument/ev-link-action.c
index 0e7761d7..cbc5d620 100644
--- a/libdocument/ev-link-action.c
+++ b/libdocument/ev-link-action.c
@@ -32,7 +32,9 @@ enum {
PROP_NAME,
PROP_SHOW_LIST,
PROP_HIDE_LIST,
- PROP_TOGGLE_LIST
+ PROP_TOGGLE_LIST,
+ PROP_RESET_FIELDS,
+ PROP_EXCLUDE_RESET_FIELDS
};
struct _EvLinkAction {
@@ -55,6 +57,8 @@ struct _EvLinkActionPrivate {
GList *show_list;
GList *hide_list;
GList *toggle_list;
+ GList *reset_fields;
+ gboolean exclude_reset_fields;
};
G_DEFINE_TYPE (EvLinkAction, ev_link_action, G_TYPE_OBJECT)
@@ -155,6 +159,34 @@ ev_link_action_get_toggle_list (EvLinkAction *self)
return self->priv->toggle_list;
}
+/**
+ * ev_link_action_get_reset_fields:
+ * @self: an #EvLinkAction
+ *
+ * Returns: (transfer none) (element-type gchar *): a list of fields to reset
+ */
+GList *
+ev_link_action_get_reset_fields (EvLinkAction *self)
+{
+ g_return_val_if_fail (EV_IS_LINK_ACTION (self), NULL);
+
+ return self->priv->reset_fields;
+}
+
+/**
+ * ev_link_action_get_exclude_reset_fields:
+ * @self: an #EvLinkAction
+ *
+ * Returns: whether to exclude reset fields when resetting form
+ */
+gboolean
+ev_link_action_get_exclude_reset_fields (EvLinkAction *self)
+{
+ g_return_val_if_fail (EV_IS_LINK_ACTION (self), NULL);
+
+ return self->priv->exclude_reset_fields;
+}
+
static void
ev_link_action_get_property (GObject *object,
guint prop_id,
@@ -193,6 +225,12 @@ ev_link_action_get_property (GObject *object,
case PROP_TOGGLE_LIST:
g_value_set_pointer (value, self->priv->toggle_list);
break;
+ case PROP_RESET_FIELDS:
+ g_value_set_pointer (value, self->priv->reset_fields);
+ break;
+ case PROP_EXCLUDE_RESET_FIELDS:
+ g_value_set_boolean (value, self->priv->exclude_reset_fields);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object,
prop_id,
@@ -241,6 +279,12 @@ ev_link_action_set_property (GObject *object,
case PROP_TOGGLE_LIST:
self->priv->toggle_list = g_value_get_pointer (value);
break;
+ case PROP_RESET_FIELDS:
+ self->priv->reset_fields = g_value_get_pointer (value);
+ break;
+ case PROP_EXCLUDE_RESET_FIELDS:
+ self->priv->exclude_reset_fields = g_value_get_boolean (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object,
prop_id,
@@ -296,6 +340,11 @@ ev_link_action_finalize (GObject *object)
priv->toggle_list = NULL;
}
+ if (priv->reset_fields) {
+ g_list_free_full (priv->reset_fields, g_free);
+ priv->reset_fields = NULL;
+ }
+
G_OBJECT_CLASS (ev_link_action_parent_class)->finalize (object);
}
@@ -309,6 +358,8 @@ ev_link_action_init (EvLinkAction *ev_link_action)
ev_link_action->priv->filename = NULL;
ev_link_action->priv->params = NULL;
ev_link_action->priv->name = NULL;
+ ev_link_action->priv->reset_fields = NULL;
+ ev_link_action->priv->exclude_reset_fields = FALSE;
}
static void
@@ -402,6 +453,23 @@ ev_link_action_class_init (EvLinkActionClass *ev_link_action_class)
G_PARAM_READWRITE |
G_PARAM_CONSTRUCT_ONLY |
G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (g_object_class,
+ PROP_RESET_FIELDS,
+ g_param_spec_pointer ("reset-fields",
+ "ResetFields",
+ "The list of fields that should be/should not be reset",
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (g_object_class,
+ PROP_EXCLUDE_RESET_FIELDS,
+ g_param_spec_boolean ("exclude-reset-fields",
+ "ExcludeResetFields",
+ "Whether to exclude/include reset-fields when resetting form",
+ FALSE,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS));
}
EvLinkAction *
@@ -474,6 +542,17 @@ ev_link_action_new_layers_state (GList *show_list,
NULL));
}
+EvLinkAction *
+ev_link_action_new_reset_form (GList *reset_fields,
+ gboolean exclude_reset_fields)
+{
+ return EV_LINK_ACTION (g_object_new (EV_TYPE_LINK_ACTION,
+ "exclude-reset-fields", exclude_reset_fields,
+ "reset-fields", reset_fields,
+ "type", EV_LINK_ACTION_TYPE_RESET_FORM,
+ NULL));
+}
+
/**
* ev_link_action_equal:
* @a: a #EvLinkAction
diff --git a/libdocument/ev-link-action.h b/libdocument/ev-link-action.h
index 3d6c5fd8..4dffeb74 100644
--- a/libdocument/ev-link-action.h
+++ b/libdocument/ev-link-action.h
@@ -47,36 +47,41 @@ typedef enum {
EV_LINK_ACTION_TYPE_EXTERNAL_URI,
EV_LINK_ACTION_TYPE_LAUNCH,
EV_LINK_ACTION_TYPE_NAMED,
- EV_LINK_ACTION_TYPE_LAYERS_STATE
+ EV_LINK_ACTION_TYPE_LAYERS_STATE,
+ EV_LINK_ACTION_TYPE_RESET_FORM
/* We'll probably fill this in more as we support the other types of
* actions */
} EvLinkActionType;
-GType ev_link_action_get_type (void) G_GNUC_CONST;
+GType ev_link_action_get_type (void) G_GNUC_CONST;
-EvLinkActionType ev_link_action_get_action_type (EvLinkAction *self);
-EvLinkDest *ev_link_action_get_dest (EvLinkAction *self);
-const gchar *ev_link_action_get_uri (EvLinkAction *self);
-const gchar *ev_link_action_get_filename (EvLinkAction *self);
-const gchar *ev_link_action_get_params (EvLinkAction *self);
-const gchar *ev_link_action_get_name (EvLinkAction *self);
-GList *ev_link_action_get_show_list (EvLinkAction *self);
-GList *ev_link_action_get_hide_list (EvLinkAction *self);
-GList *ev_link_action_get_toggle_list (EvLinkAction *self);
+EvLinkActionType ev_link_action_get_action_type (EvLinkAction *self);
+EvLinkDest *ev_link_action_get_dest (EvLinkAction *self);
+const gchar *ev_link_action_get_uri (EvLinkAction *self);
+const gchar *ev_link_action_get_filename (EvLinkAction *self);
+const gchar *ev_link_action_get_params (EvLinkAction *self);
+const gchar *ev_link_action_get_name (EvLinkAction *self);
+GList *ev_link_action_get_show_list (EvLinkAction *self);
+GList *ev_link_action_get_hide_list (EvLinkAction *self);
+GList *ev_link_action_get_toggle_list (EvLinkAction *self);
+GList *ev_link_action_get_reset_fields (EvLinkAction *self);
+gboolean ev_link_action_get_exclude_reset_fields (EvLinkAction *self);
-EvLinkAction *ev_link_action_new_dest (EvLinkDest *dest);
-EvLinkAction *ev_link_action_new_remote (EvLinkDest *dest,
- const gchar *filename);
-EvLinkAction *ev_link_action_new_external_uri (const gchar *uri);
-EvLinkAction *ev_link_action_new_launch (const gchar *filename,
- const gchar *params);
-EvLinkAction *ev_link_action_new_named (const gchar *name);
-EvLinkAction *ev_link_action_new_layers_state (GList *show_list,
- GList *hide_list,
- GList *toggle_list);
+EvLinkAction *ev_link_action_new_dest (EvLinkDest *dest);
+EvLinkAction *ev_link_action_new_remote (EvLinkDest *dest,
+ const gchar *filename);
+EvLinkAction *ev_link_action_new_external_uri (const gchar *uri);
+EvLinkAction *ev_link_action_new_launch (const gchar *filename,
+ const gchar *params);
+EvLinkAction *ev_link_action_new_named (const gchar *name);
+EvLinkAction *ev_link_action_new_layers_state (GList *show_list,
+ GList *hide_list,
+ GList *toggle_list);
+EvLinkAction *ev_link_action_new_reset_form (GList *fields,
+ gboolean exclude_fields);
-gboolean ev_link_action_equal (EvLinkAction *a,
- EvLinkAction *b);
+gboolean ev_link_action_equal (EvLinkAction *a,
+ EvLinkAction *b);
G_END_DECLS
diff --git a/libview/ev-view.c b/libview/ev-view.c
index c52ecaf3..e2ca6b5a 100644
--- a/libview/ev-view.c
+++ b/libview/ev-view.c
@@ -2095,6 +2095,7 @@ ev_view_handle_link (EvView *view, EvLink *link)
case EV_LINK_ACTION_TYPE_EXTERNAL_URI:
case EV_LINK_ACTION_TYPE_LAUNCH:
case EV_LINK_ACTION_TYPE_NAMED:
+ case EV_LINK_ACTION_TYPE_RESET_FORM:
g_signal_emit (view, signals[SIGNAL_EXTERNAL_LINK], 0, action);
break;
}
@@ -2167,6 +2168,9 @@ tip_from_link (EvView *view, EvLink *link)
case EV_LINK_ACTION_TYPE_NAMED:
msg = tip_from_action_named (action);
break;
+ case EV_LINK_ACTION_TYPE_RESET_FORM:
+ msg = g_strdup_printf (_("Reset form"));
+ break;
default:
if (title)
msg = g_strdup (title);
diff --git a/shell/ev-window.c b/shell/ev-window.c
index 1f3ea24d..81a6ede1 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -6867,6 +6867,18 @@ do_action_named (EvWindow *window, EvLinkAction *action)
}
}
+static void
+reset_form (EvWindow *window, EvLinkAction *action)
+{
+ EvWindowPrivate *priv = window->priv;
+ EvDocument *document = priv->document;
+
+ if (EV_IS_DOCUMENT_FORMS (document)) {
+ ev_document_forms_reset_form (EV_DOCUMENT_FORMS (document), action);
+ ev_view_reload (EV_VIEW (priv->view));
+ }
+}
+
static void
view_external_link_cb (EvWindow *window, EvLinkAction *action)
{
@@ -6893,6 +6905,9 @@ view_external_link_cb (EvWindow *window, EvLinkAction *action)
case EV_LINK_ACTION_TYPE_NAMED:
do_action_named (window, action);
break;
+ case EV_LINK_ACTION_TYPE_RESET_FORM:
+ reset_form (window, action);
+ break;
default:
g_assert_not_reached ();
}
--
2.28.0

View File

@ -0,0 +1,546 @@
--- evince-3.28.4/po/bg.po
+++ evince-3.28.4/po/bg.po
@@ -666,6 +666,10 @@ msgstr "Отиване при файла
msgid "Launch %s"
msgstr "Стартиране на %s"
+#: libview/ev-view.c:2174
+msgid "Reset form"
+msgstr "ИзчиÑ<C2B8>Ñване на формулÑ<C2BB>ра"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Отиване на Ñ<>Ñраница:"
--- evince-3.28.4/po/ca.po
+++ evince-3.28.4/po/ca.po
@@ -667,6 +667,10 @@ msgstr "Vés al fitxer «%s»"
msgid "Launch %s"
msgstr "Engega %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Reinicialitza el formulari"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Salta a la pàgina:"
--- evince-3.28.4/po/cs.po
+++ evince-3.28.4/po/cs.po
@@ -678,6 +678,10 @@ msgstr "PÅ™ejít na soubor “%sâ€<C3A2>"
msgid "Launch %s"
msgstr "Spustit %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Čistý formulář"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Přejít na stránku:"
--- evince-3.28.4/po/da.po
+++ evince-3.28.4/po/da.po
@@ -682,6 +682,10 @@ msgstr "GÃ¥ til filen “%sâ€<C3A2>"
msgid "Launch %s"
msgstr "Start %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Nulstil formular"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "GÃ¥ til side:"
--- evince-3.28.4/po/de.po
+++ evince-3.28.4/po/de.po
@@ -691,6 +691,10 @@ msgstr "Zu Datei »%s« gehen"
msgid "Launch %s"
msgstr "%s starten"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Formular zurücksetzen"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Zu folgender Seite gehen:"
--- evince-3.28.4/po/en_GB.po
+++ evince-3.28.4/po/en_GB.po
@@ -684,6 +684,10 @@ msgstr "Go to file “%sâ€<C3A2>"
msgid "Launch %s"
msgstr "Launch %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Reset form"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Jump to page:"
--- evince-3.28.4/po/el.po
+++ evince-3.28.4/po/el.po
@@ -683,6 +683,10 @@ msgstr "Μετάβαση στο αÏ<C2B1>χε
msgid "Launch %s"
msgstr "Εκκίνηση %s"
+#: libview/ev-view.c:2174
+msgid "Reset form"
+msgstr "ΕπαναφοÏ<C2BF>ά φόÏ<C592>μαÏ"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Μετάβαση στη σελίδα:"
--- evince-3.28.4/po/es.po
+++ evince-3.28.4/po/es.po
@@ -677,6 +677,10 @@ msgstr "Ir al archivo «%s»"
msgid "Launch %s"
msgstr "Lanzar %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Reiniciar formulario"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Saltar a la página:"
--- evince-3.28.4/po/eu.po
+++ evince-3.28.4/po/eu.po
@@ -665,6 +665,10 @@ msgstr "Joan hona: %s ('%s' fitxategian)
msgid "Go to file “%sâ€<C3A2>"
msgstr "Joan '%s' fitxategira"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Leheneratu inprimakia"
+
#: ../libview/ev-view.c:2088
#, c-format
msgid "Launch %s"
--- evince-3.28.4/po/fa.po
+++ evince-3.28.4/po/fa.po
@@ -660,6 +660,10 @@ msgstr "رÙ<C2B1>تن به پرونده‌ی
msgid "Launch %s"
msgstr "راه‌اندازی %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "بازنشانی Ù<>رم"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "پریدن به صÙ<C2B5>حه‌:"
--- evince-3.28.4/po/fi.po
+++ evince-3.28.4/po/fi.po
@@ -676,6 +676,10 @@ msgstr "Siirry tiedostoon â€<C3A2>%sâ€<C3A2>"
msgid "Launch %s"
msgstr "Käynnistä %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Tyhjennä lomake"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Siirry sivulle:"
--- evince-3.28.4/po/fr.po
+++ evince-3.28.4/po/fr.po
@@ -686,6 +686,10 @@ msgstr "Aller à la page « %s »"
msgid "Launch %s"
msgstr "Lancer %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Réinitialiser le formulaire"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Aller à la page :"
--- evince-3.28.4/po/fur.po
+++ evince-3.28.4/po/fur.po
@@ -669,6 +669,10 @@ msgstr "Va al file \"%s\""
msgid "Launch %s"
msgstr "Fâs partî %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Ripristine modul"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Salte ae pagjine:"
--- evince-3.28.4/po/gl.po
+++ evince-3.28.4/po/gl.po
@@ -677,6 +677,10 @@ msgstr "Ir ao ficheiro «%s»"
msgid "Launch %s"
msgstr "Iniciar %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Restabelecer o formulario"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Saltar á páxina:"
--- evince-3.28.4/po/he.po
+++ evince-3.28.4/po/he.po
@@ -678,6 +678,10 @@ msgstr "מעבר לקובץ „%s“"
msgid "Launch %s"
msgstr "שיגור %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "×<>×פ×ס טופס"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "קפיצה לעמוד:"
--- evince-3.28.4/po/hu.po
+++ evince-3.28.4/po/hu.po
@@ -664,6 +664,10 @@ msgstr "Ugrás a(z) %s fájlra"
msgid "Launch %s"
msgstr "%s indítása"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Űrlap visszaállítása"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Ugrás oldalra:"
--- evince-3.28.4/po/hr.po
+++ evince-3.28.4/po/hr.po
@@ -664,6 +664,10 @@ msgstr "Idi na datoteku \"%s\""
msgid "Launch %s"
msgstr "Pokreni %s"
+#: libview/ev-view.c:2174
+msgid "Reset form"
+msgstr "Poništi obrazac"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Idi na stranicu:"
--- evince-3.28.4/po/id.po
+++ evince-3.28.4/po/id.po
@@ -669,6 +669,10 @@ msgstr "Pergi ke berkas “%sâ€<C3A2>"
msgid "Launch %s"
msgstr "Luncurkan %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Reset formulir"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Lompat ke halaman:"
--- evince-3.28.4/po/it.po
+++ evince-3.28.4/po/it.po
@@ -678,6 +678,10 @@ msgstr "Va al file «%s»"
msgid "Launch %s"
msgstr "Lancia %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Azzera modulo"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Salta alla pagina:"
--- evince-3.28.4/po/ja.po
+++ evince-3.28.4/po/ja.po
@@ -689,6 +689,10 @@ msgstr "ファイル“%sâ€<C3A2>ã<EFBFBD>¸ç§»å•ã<E280A2>
msgid "Launch %s"
msgstr "%s ã<>®èµ·å•"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "フォームをリセット"
+
#: ../libview/ev-view-presentation.c:735
msgid "Jump to page:"
msgstr "移å•å…ˆã<CB86>®ãƒšãƒ¼ã¸:"
--- evince-3.28.4/po/kk.po
+++ evince-3.28.4/po/kk.po
@@ -664,6 +664,10 @@ msgstr "\"%s\" файлына өту"
msgid "Launch %s"
msgstr "%s жөнелту"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Форманы ÑаÑ<C2B0>Ñау"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Параққа өту:"
--- evince-3.28.4/po/ko.po
+++ evince-3.28.4/po/ko.po
@@ -665,6 +665,10 @@ msgstr "“%sâ€<C3A2> 파ì<C592>¼ë¡œ ì<>´ë<C2B4>™"
msgid "Launch %s"
msgstr "%s 실행"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "ìì<C3AC> 다시 설정"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "페ì<CB9C>´ì§€ë¡œ ì<>´ë<C2B4>™:"
--- evince-3.28.4/po/lt.po
+++ evince-3.28.4/po/lt.po
@@ -673,6 +673,10 @@ msgstr "Eiti į failą „%s“"
msgid "Launch %s"
msgstr "Paleisti %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Atstatyti formÄ…"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Eiti į puslapį:"
--- evince-3.28.4/po/nb.po
+++ evince-3.28.4/po/nb.po
@@ -662,6 +662,10 @@ msgstr "Gå til fil «%s»"
msgid "Launch %s"
msgstr "Start %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Nullstill skjema"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "GÃ¥ til side:"
--- evince-3.28.4/po/ne.po
+++ evince-3.28.4/po/ne.po
@@ -635,6 +635,10 @@ msgstr "“%sâ€<C3A2> फाइलमा जà
msgid "Launch %s"
msgstr "%s सà¥<C3A0>रà¥<C3A0> गरà¥<C3A0>नà¥<C3A0>हà¥à¤¸à¥<C3A0>"
+#: libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "फारम पà¥<C3A0>नः मिलान"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "पृषà¥<C3A0>ठमा जानà¥<C3A0>हà¥à¤¸à¥<C3A0>:"
--- evince-3.28.4/po/nl.po
+++ evince-3.28.4/po/nl.po
@@ -700,6 +700,10 @@ msgstr "Ga naar bestand ‘%s’"
msgid "Launch %s"
msgstr "%s opstarten"
+#: libview/ev-view.c:2174
+msgid "Reset form"
+msgstr "Formulier opnieuw instellen"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Ga naar pagina:"
--- evince-3.28.4/po/oc.po
+++ evince-3.28.4/po/oc.po
@@ -695,6 +695,10 @@ msgstr "Anar a la pagina « %s »"
msgid "Launch %s"
msgstr "Aviar %s"
+#: libview/ev-view.c:2174
+msgid "Reset form"
+msgstr "Reïnicializar lo formulari"
+
#: ../libview/ev-view-presentation.c:735
msgid "Jump to page:"
msgstr "Anar a la pagina :"
--- evince-3.28.4/po/pa.po
+++ evince-3.28.4/po/pa.po
@@ -674,6 +674,10 @@ msgstr "ਫਾਇਲ “%sâ€<C3A2> ਉੱਤà
msgid "Launch %s"
msgstr "%s ਚਲਾਓ"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "ਫਾਰਮ ਮà©<C3A0>à©œ-ਸੈੱਟ ਕਰੋ"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "ਸਫ਼ੇ ਉੱਤੇ ਜਾਓ:"
--- evince-3.28.4/po/pl.po
+++ evince-3.28.4/po/pl.po
@@ -671,6 +671,10 @@ msgstr "Przejdź do pliku „%sâ€<C3A2>"
msgid "Launch %s"
msgstr "Uruchom „%sâ€<C3A2>"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Przywróć formularz"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Przejdź do strony:"
--- evince-3.28.4/po/pt.po
+++ evince-3.28.4/po/pt.po
@@ -694,6 +694,10 @@ msgstr "Ir para o ficheiro “%sâ€<C3A2>"
msgid "Launch %s"
msgstr "Iniciar %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Restabelecer a partir de"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Ir para a página:"
--- evince-3.28.4/po/pt_BR.po
+++ evince-3.28.4/po/pt_BR.po
@@ -687,6 +687,10 @@ msgstr "Vai para o arquivo “%sâ€<C3A2>"
msgid "Launch %s"
msgstr "Inicia %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Redefinir formulário"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Pular para a página:"
--- evince-3.28.4/po/ro.po
+++ evince-3.28.4/po/ro.po
@@ -674,6 +674,10 @@ msgstr "Navighează la fiÈ™ierul „%sâ€
msgid "Launch %s"
msgstr "Pornește %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Restabilește formularul"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Sari la pagina:"
--- evince-3.28.4/po/ru.po
+++ evince-3.28.4/po/ru.po
@@ -670,6 +670,10 @@ msgstr "Перейти к файлу «%
msgid "Launch %s"
msgstr "ЗапуÑ<C692>ÑиÑÑŒ %s"
+#: libview/ev-view.c:2173
+msgid "Reset form"
+msgstr "ОчиÑ<C2B8>ÑиÑÑŒ форму"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Перейти к Ñ<>Ñранице:"
--- evince-3.28.4/po/sk.po
+++ evince-3.28.4/po/sk.po
@@ -753,6 +753,10 @@ msgstr "Prejde na súbor „%s“"
msgid "Launch %s"
msgstr "Spustí %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Vynuluje formulár"
+
# label
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
--- evince-3.28.4/po/sl.po
+++ evince-3.28.4/po/sl.po
@@ -668,6 +668,10 @@ msgstr "SkoÄ<6F>i na datoteko »%s«"
msgid "Launch %s"
msgstr "Zaženi %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Ponastavi obrazec"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Pojdi na stran:"
--- evince-3.28.4/po/sr.po
+++ evince-3.28.4/po/sr.po
@@ -671,6 +671,10 @@ msgstr "Иди на датотеку „
msgid "Launch %s"
msgstr "Покрени %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Поврати образац"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Скочи на Ñ<>Ñрану:"
--- evince-3.28.4/po/sv.po
+++ evince-3.28.4/po/sv.po
@@ -676,6 +676,10 @@ msgstr "GÃ¥ till filen â€<C3A2>%sâ€<C3A2>"
msgid "Launch %s"
msgstr "Starta %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Återställ formulär"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "GÃ¥ till sidan:"
--- evince-3.28.4/po/tr.po
+++ evince-3.28.4/po/tr.po
@@ -671,6 +671,10 @@ msgstr "“%sâ€<C3A2> dosyasına git"
msgid "Launch %s"
msgstr "%s baÅŸlat"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Formu sıfırla"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Sayfaya git:"
--- evince-3.28.4/po/uk.po
+++ evince-3.28.4/po/uk.po
@@ -682,6 +682,10 @@ msgstr "Перейти до файла Â
msgid "Launch %s"
msgstr "ЗапуÑ<C692>ÑиÑи %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Відновити початковий Ñ<>Ñан форми"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Перейти до Ñ<>ÑорÑнки:"
--- evince-3.28.4/po/vi.po
+++ evince-3.28.4/po/vi.po
@@ -663,6 +663,10 @@ msgstr "Tá»i tập tin “%sâ€<C3A2>"
msgid "Launch %s"
msgstr "Khởi chạy %s"
+#: libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Ä<>ặt lại form"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Nhảy Äến trang:"
--- evince-3.28.4/po/zh_CN.po
+++ evince-3.28.4/po/zh_CN.po
@@ -665,6 +665,10 @@ msgstr "转到文件“%sâ€<C3A2>"
msgid "Launch %s"
msgstr "调用 %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "é‡<C3A9>置表å<C2A8>•"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "跳到页é<C2B5>¢ï¼š"
--- evince-3.28.4/po/zh_TW.po
+++ evince-3.28.4/po/zh_TW.po
@@ -655,6 +655,10 @@ msgstr "å‰<C3A5>往「%sã€<C3A3>檔案"
msgid "Launch %s"
msgstr "執行 %s"
+#: libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "é‡<C3A9>設表å®"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "å‰<C3A5>å¾€é <C3A9>é<EFBFBD>¢ï¼š"

View File

@ -1,31 +0,0 @@
From ad28a28e94c63c9ed44d01cf274e487ec85f2a46 Mon Sep 17 00:00:00 2001
From: Marek Kasik <mkasik@redhat.com>
Date: Wed, 13 Oct 2021 11:00:07 +0200
Subject: [PATCH] Remove "Quit" from shortcuts page
The shortcut "Ctrl + q" does not do anything.
---
shell/help-overlay.ui | 7 -------
1 file changed, 7 deletions(-)
diff --git a/shell/help-overlay.ui b/shell/help-overlay.ui
index d2057348..ced1dd56 100644
--- a/shell/help-overlay.ui
+++ b/shell/help-overlay.ui
@@ -396,13 +396,6 @@
<property name="accelerator">&lt;Primary&gt;W</property>
</object>
</child>
- <child>
- <object class="GtkShortcutsShortcut">
- <property name="visible">True</property>
- <property name="title" translatable="yes" context="shortcut window">Quit</property>
- <property name="accelerator">&lt;Primary&gt;Q</property>
- </object>
- </child>
<child>
<object class="GtkShortcutsShortcut">
<property name="visible">True</property>
--
2.31.1

View File

@ -1,66 +1,85 @@
# Exclude private libraries from autogenerated provides and requires %global poppler_version 0.24.0
%global __provides_exclude_from ^%{_libdir}/evince/ %global glib2_version 2.36.0
%global __requires_exclude ^(%%(find %{buildroot}%{_libdir}/evince/ -name '*.so' | xargs -n1 basename | sort -u | paste -s -d '|' -)) %global gtk3_version 3.16.0
%global gxps_version 0.2.1
Name: evince Name: evince
Version: 40.5 Version: 3.28.4
Release: 2%{?dist} Release: 16%{?dist}
Summary: Document viewer Summary: Document viewer
License: GPLv2+ and GPLv3+ and LGPLv2+ and MIT and Afmparse License: GPLv2+ and GPLv3+ and LGPLv2+ and MIT and Afmparse
URL: https://wiki.gnome.org/Apps/Evince URL: https://wiki.gnome.org/Apps/Evince
Source0: https://download.gnome.org/sources/%{name}/40/%{name}-%{version}.tar.xz Source0: https://download.gnome.org/sources/%{name}/3.28/%{name}-%{version}.tar.xz
# https://bugzilla.redhat.com/show_bug.cgi?id=1975150 Patch0: evince-3.21.4-NPNVToolKit.patch
Patch1: evince-40.1-covscan.patch #https://bugzilla.gnome.org/show_bug.cgi?id=766749
Patch3: 0001-Resolves-deb-762530-rhbz-1061177-add-man-pages.patch
Patch6: 0001-Revert-Bump-poppler-requirements-to-0.33.0.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=2006768 # https://bugzilla.redhat.com/show_bug.cgi?id=1602486
Patch2: evince-40.4-quit-shortcut.patch Patch7: evince-3.28.2-covscan.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1716295
Patch8: evince-3.28.2-TIFFReadRGBAImageOriented.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1719328
Patch9: evince-3.28.4-annotations-a11y-names.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1450700
Patch10: evince-3.28.4-move-annotations.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1842017
Patch11: evince-3.28.4-application-id.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1889793
Patch12: evince-3.28.4-reset-form-action.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1896006
# https://bugzilla.redhat.com/show_bug.cgi?id=2006333
Patch13: evince-3.28.4-reset-form-translations.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1917752
Patch14: evince-3.28.4-containing-folder.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1927704
Patch15: evince-3.28.4-Show-password-dialog-again.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=2008310
Patch16: evince-3.28.4-handle-clicks-in-forms.patch
BuildRequires: gcc-c++
BuildRequires: gcc
BuildRequires: gettext-devel
BuildRequires: pkgconfig(adwaita-icon-theme) BuildRequires: pkgconfig(adwaita-icon-theme)
BuildRequires: pkgconfig(gio-unix-2.0) BuildRequires: pkgconfig(gio-unix-2.0) >= %{glib2_version}
BuildRequires: pkgconfig(gnome-desktop-3.0) BuildRequires: pkgconfig(gnome-desktop-3.0)
BuildRequires: pkgconfig(gobject-introspection-1.0) BuildRequires: pkgconfig(gobject-introspection-1.0)
BuildRequires: pkgconfig(gstreamer-1.0) BuildRequires: pkgconfig(gtk+-x11-3.0) >= %{gtk3_version}
BuildRequires: pkgconfig(gstreamer-base-1.0)
BuildRequires: pkgconfig(gstreamer-video-1.0)
BuildRequires: pkgconfig(gtk+-x11-3.0)
BuildRequires: pkgconfig(libhandy-1)
BuildRequires: pkgconfig(libsecret-1) BuildRequires: pkgconfig(libsecret-1)
BuildRequires: pkgconfig(libspectre) BuildRequires: pkgconfig(libspectre)
BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(poppler-glib) BuildRequires: pkgconfig(poppler-glib) >= %{poppler_version}
BuildRequires: pkgconfig(libarchive) BuildRequires: pkgconfig(libarchive)
BuildRequires: pkgconfig(gspell-1)
BuildRequires: libtiff-devel BuildRequires: libtiff-devel
BuildRequires: gettext
BuildRequires: libtool
BuildRequires: gtk-doc BuildRequires: gtk-doc
BuildRequires: yelp-tools BuildRequires: yelp-tools
BuildRequires: intltool
BuildRequires: /usr/bin/desktop-file-validate BuildRequires: /usr/bin/desktop-file-validate
BuildRequires: libappstream-glib-devel BuildRequires: libappstream-glib
BuildRequires: meson BuildRequires: gnome-common
%if ! 0%{?flatpak}
BuildRequires: pkgconfig(synctex)
# for the nautilus properties page # for the nautilus properties page
BuildRequires: pkgconfig(libnautilus-extension) BuildRequires: pkgconfig(libnautilus-extension)
# for the dvi backend
BuildRequires: texlive-lib-devel
%endif
%if 0%{?fedora} %if 0%{?fedora}
# for the dvi backend
BuildRequires: kpathsea-devel
# for the djvu backend # for the djvu backend
BuildRequires: djvulibre-devel BuildRequires: djvulibre-devel
%endif %endif
# for the xps backend # for the xps backend
BuildRequires: pkgconfig(libgxps) BuildRequires: pkgconfig(libgxps) >= %{gxps_version}
Requires: %{name}-libs%{?_isa} = %{version}-%{release} Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: %{name}-previewer%{?_isa} = %{version}-%{release} Requires: glib2%{?_isa} >= %{glib2_version}
Requires: %{name}-thumbnailer%{?_isa} = %{version}-%{release} Requires: gtk3%{?_isa} >= %{gtk3_version}
Provides: bundled(libunarr)
Provides: bundled(libmdvi)
%description %description
Evince is simple multi-page document viewer. It can display and print Evince is simple multi-page document viewer. It can display and print
@ -69,9 +88,6 @@ Portable Document Format (PDF), PostScript (PS) and Encapsulated PostScript
for text, copying text to the clipboard, hypertext navigation, for text, copying text to the clipboard, hypertext navigation,
table-of-contents bookmarks and editing of forms. table-of-contents bookmarks and editing of forms.
Support for other document formats such as DVI and DJVU can be added by
installing additional backends.
%package libs %package libs
Summary: Libraries for the evince document viewer Summary: Libraries for the evince document viewer
@ -92,6 +108,7 @@ This package contains libraries and header files needed for evince
backend development. backend development.
%if 0%{?fedora}
%package dvi %package dvi
Summary: Evince backend for dvi files Summary: Evince backend for dvi files
Requires: %{name}-libs%{?_isa} = %{version}-%{release} Requires: %{name}-libs%{?_isa} = %{version}-%{release}
@ -101,7 +118,6 @@ Requires: texlive-collection-fontsrecommended
This package contains a backend to let evince display dvi files. This package contains a backend to let evince display dvi files.
%if 0%{?fedora}
%package djvu %package djvu
Summary: Evince backend for djvu files Summary: Evince backend for djvu files
Requires: %{name}-libs%{?_isa} = %{version}-%{release} Requires: %{name}-libs%{?_isa} = %{version}-%{release}
@ -110,65 +126,70 @@ Requires: %{name}-libs%{?_isa} = %{version}-%{release}
This package contains a backend to let evince display djvu files. This package contains a backend to let evince display djvu files.
%endif %endif
%if ! 0%{?flatpak}
%package nautilus %package nautilus
Summary: Evince extension for nautilus Summary: Evince extension for nautilus
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-libs%{?_isa} = %{version}-%{release} Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: nautilus%{?_isa} Requires: nautilus%{?_isa}
%description nautilus %description nautilus
This package contains the evince extension for the nautilus file manager. This package contains the evince extension for the nautilus file manager.
It adds an additional tab called "Document" to the file properties dialog. It adds an additional tab called "Document" to the file properties dialog.
%endif
%package thumbnailer
Summary: Evince thumbnailer %package browser-plugin
Summary: Evince web browser plugin
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-libs%{?_isa} = %{version}-%{release} Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: mozilla-filesystem
%description thumbnailer %description browser-plugin
This package brings the Evince thumbnailer independently from Evince. This package contains the evince web browser plugin.
%package previewer
Summary: Evince previewer
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%description previewer
This package brings the Evince previewer independently from Evince.
It provides the printing preview for the GTK printing dialog.
%prep %prep
%autosetup -p1 %autosetup -p1
%build %build
%meson \ autoreconf -f -i
%if 0%{?fedora} || 0%{?rhel} > 7 %configure \
-Dcomics=enabled \ --disable-static \
%endif --enable-introspection \
%if 0%{?flatpak} --enable-comics=yes \
-Ddvi=disabled \ --enable-libgnome-desktop \
%else
-Ddvi=enabled \
%endif
%if 0%{?fedora} %if 0%{?fedora}
-Ddjvu=enabled \ --enable-dvi=yes \
%else --enable-djvu=yes \
-Ddjvu=disabled \
%endif %endif
-Dxps=enabled \ --enable-xps=yes \
-Dt1lib=disabled \ --enable-t1lib=no \
%if 0%{?flatpak} --enable-ps=yes
-Dsystemduserunitdir=no \ make %{?_smp_mflags} V=1 LIBTOOL=/usr/bin/libtool
-Dnautilus=false \
%endif
-Dps=enabled
%meson_build
%install %install
%meson_install %make_install
# Update the screenshot shown in the software center
#
# NOTE: It would be *awesome* if this file was pushed upstream.
#
# See http://people.freedesktop.org/~hughsient/appdata/#screenshots for more details.
#
appstream-util replace-screenshots $RPM_BUILD_ROOT%{_datadir}/metainfo/evince.appdata.xml \
https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/evince/a.png
%find_lang evince --with-gnome %find_lang evince --with-gnome
mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications
# Get rid of static libs and .la files.
rm -f $RPM_BUILD_ROOT%{_libdir}/mozilla/plugins/*.la
rm -f $RPM_BUILD_ROOT%{_libdir}/mozilla/plugins/*.a
rm -f $RPM_BUILD_ROOT%{_libdir}/nautilus/extensions-3.0/*.la
rm -f $RPM_BUILD_ROOT%{_libdir}/nautilus/extensions-3.0/*.a
rm -f $RPM_BUILD_ROOT%{_libdir}/evince/4/backends/*.la
rm -f $RPM_BUILD_ROOT%{_libdir}/evince/4/backends/*.a
rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
rm -f $RPM_BUILD_ROOT%{_datadir}/metainfo/evince-pdfdocument.metainfo.xml rm -f $RPM_BUILD_ROOT%{_datadir}/metainfo/evince-pdfdocument.metainfo.xml
rm -f $RPM_BUILD_ROOT%{_datadir}/metainfo/evince-psdocument.metainfo.xml rm -f $RPM_BUILD_ROOT%{_datadir}/metainfo/evince-psdocument.metainfo.xml
rm -f $RPM_BUILD_ROOT%{_datadir}/metainfo/evince-tiffdocument.metainfo.xml rm -f $RPM_BUILD_ROOT%{_datadir}/metainfo/evince-tiffdocument.metainfo.xml
@ -176,34 +197,31 @@ rm -f $RPM_BUILD_ROOT%{_datadir}/metainfo/evince-comicsdocument.metainfo.xml
rm -f $RPM_BUILD_ROOT%{_datadir}/metainfo/evince-xpsdocument.metainfo.xml rm -f $RPM_BUILD_ROOT%{_datadir}/metainfo/evince-xpsdocument.metainfo.xml
%check %check
appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_datadir}/metainfo/org.gnome.Evince.appdata.xml desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/evince.desktop
desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/org.gnome.Evince.desktop
desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/org.gnome.Evince-previewer.desktop %ldconfig_scriptlets libs
%files -f evince.lang %files -f evince.lang
%{_bindir}/evince %{_bindir}/*
%{_bindir}/evince-previewer %{_datadir}/%{name}/
%{_datadir}/applications/org.gnome.Evince.desktop %{_datadir}/applications/%{name}.desktop
%{_datadir}/applications/org.gnome.Evince-previewer.desktop %{_datadir}/applications/evince-previewer.desktop
%{_datadir}/evince/ %{_datadir}/icons/hicolor/*/apps/evince.*
%{_datadir}/icons/hicolor/*/apps/org.gnome.Evince.* %{_datadir}/icons/hicolor/*/apps/evince-symbolic.svg
%{_datadir}/icons/hicolor/*/apps/org.gnome.Evince-symbolic.svg %{_mandir}/man1/*.1*
%{_mandir}/man1/evince.1*
%{_mandir}/man1/evince-previewer.1*
%{_libexecdir}/evinced %{_libexecdir}/evinced
%{_datadir}/dbus-1/services/org.gnome.evince.Daemon.service %{_datadir}/dbus-1/services/org.gnome.evince.Daemon.service
%{_datadir}/glib-2.0/schemas/org.gnome.Evince.gschema.xml %{_datadir}/glib-2.0/schemas/org.gnome.Evince.gschema.xml
%{_datadir}/GConf/gsettings/evince.convert %{_datadir}/GConf/gsettings/evince.convert
%{_datadir}/metainfo/org.gnome.Evince.appdata.xml %{_datadir}/metainfo/evince.appdata.xml
%if ! 0%{?flatpak} %{_datadir}/thumbnailers/evince.thumbnailer
%{_userunitdir}/org.gnome.Evince.service %{_userunitdir}/evince.service
%endif
%files libs %files libs
%doc NEWS AUTHORS %doc README NEWS AUTHORS
%license COPYING %license COPYING
%{_libdir}/libevdocument3.so.4* %{_libdir}/libevview3.so.*
%{_libdir}/libevview3.so.3* %{_libdir}/libevdocument3.so.*
%dir %{_libdir}/evince %dir %{_libdir}/evince
%dir %{_libdir}/evince/4 %dir %{_libdir}/evince/4
%dir %{_libdir}/evince/4/backends %dir %{_libdir}/evince/4/backends
@ -216,10 +234,8 @@ desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/org.gnome.Evince-p
%{_libdir}/evince/4/backends/libtiffdocument.so %{_libdir}/evince/4/backends/libtiffdocument.so
%{_libdir}/evince/4/backends/tiffdocument.evince-backend %{_libdir}/evince/4/backends/tiffdocument.evince-backend
%if 0%{?fedora} || 0%{?rhel} > 7
%{_libdir}/evince/4/backends/libcomicsdocument.so %{_libdir}/evince/4/backends/libcomicsdocument.so
%{_libdir}/evince/4/backends/comicsdocument.evince-backend %{_libdir}/evince/4/backends/comicsdocument.evince-backend
%endif
%{_libdir}/evince/4/backends/libxpsdocument.so %{_libdir}/evince/4/backends/libxpsdocument.so
%{_libdir}/evince/4/backends/xpsdocument.evince-backend %{_libdir}/evince/4/backends/xpsdocument.evince-backend
@ -240,261 +256,96 @@ desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/org.gnome.Evince-p
%{_datadir}/gir-1.0/EvinceDocument-3.0.gir %{_datadir}/gir-1.0/EvinceDocument-3.0.gir
%{_datadir}/gir-1.0/EvinceView-3.0.gir %{_datadir}/gir-1.0/EvinceView-3.0.gir
%if ! 0%{?flatpak} %if 0%{?fedora}
%files dvi %files dvi
%{_libdir}/evince/4/backends/libdvidocument.so* %{_libdir}/evince/4/backends/libdvidocument.so*
%{_libdir}/evince/4/backends/dvidocument.evince-backend %{_libdir}/evince/4/backends/dvidocument.evince-backend
%{_datadir}/metainfo/evince-dvidocument.metainfo.xml %{_datadir}/metainfo/evince-dvidocument.metainfo.xml
%endif
%if 0%{?fedora}
%files djvu %files djvu
%{_libdir}/evince/4/backends/libdjvudocument.so %{_libdir}/evince/4/backends/libdjvudocument.so
%{_libdir}/evince/4/backends/djvudocument.evince-backend %{_libdir}/evince/4/backends/djvudocument.evince-backend
%{_datadir}/metainfo/evince-djvudocument.metainfo.xml %{_datadir}/metainfo/evince-djvudocument.metainfo.xml
%endif %endif
%if ! 0%{?flatpak}
%files nautilus %files nautilus
%{_libdir}/nautilus/extensions-3.0/libevince-properties-page.so %{_libdir}/nautilus/extensions-3.0/libevince-properties-page.so
%endif
%files thumbnailer %files browser-plugin
%{_bindir}/evince-thumbnailer %{_libdir}/mozilla/plugins/libevbrowserplugin.so
%{_datadir}/thumbnailers/evince.thumbnailer
%{_mandir}/man1/evince-thumbnailer.1*
%files previewer
%{_bindir}/evince-previewer
%{_mandir}/man1/evince-previewer.1*
%changelog %changelog
* Tue May 24 2022 Marek Kasik <mkasik@redhat.com> - 40.5-2 * Mon Oct 4 2021 Marek Kasik <mkasik@redhat.com> - 3.28.4-16
- Fix requirements of evince-nautilus - Allow text entries to handle clicks
- Required by CI - Resolves: #2008310
- Related: #2066166
* Mon May 23 2022 Marek Kasik <mkasik@redhat.com> - 40.5-1 * Fri Sep 24 2021 Marek Kasik <mkasik@redhat.com> - 3.28.4-15
- Rebase to 40.5 - Update translations of string "Reset form"
- Resolves: #2066166 - Resolves: #2006333
* Wed Jan 19 2022 Marek Kasik <mkasik@redhat.com> - 40.4-4 * Mon Sep 20 2021 Marek Kasik <mkasik@redhat.com> - 3.28.4-13
- Allow annotation actions for PDFs only - Show password dialog again
- Resolves: #2041333 - if password dialog was cancelled previously
- Resolves: #1927704
* Tue Nov 02 2021 Marek Kasik <mkasik@redhat.com> - 40.4-3 * Mon Mar 22 2021 Marek Kasik <mkasik@redhat.com> - 3.28.4-12
- Remove Ctrl+q shortcut from shortcuts page - Bumping release
- because it does nothing. - Required due to collision of development of 2 y-branches
- Resolves: #2006768 - Resolves: #1917752
* Wed Sep 15 2021 Marek Kasik <mkasik@redhat.com> - 40.4-2 * Mon Mar 22 2021 Marek Kasik <mkasik@redhat.com> - 3.28.4-11
- Remove metainfo for plugins since they are not real addons
- Resolves: #2001781
* Mon Aug 16 2021 Marek Kasik <mkasik@redhat.com> - 40.4-1
- Update to 40.4
- Resolves: #1991425
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 40.2-2
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Tue Jun 29 2021 Marek Kasik <mkasik@redhat.com> - 40.2-1
- Update to 40.2
- Resolves: #1976711
* Thu Jun 24 2021 Marek Kasik <mkasik@redhat.com> - 40.1-5
- Use tmp dir as containing folder for non-native files - Use tmp dir as containing folder for non-native files
- Backport fixes for issues found by Coverity Scan - Resolves: #1917752
- Fix some other issues found by Coverity Scan
- Resolves: #1975150
* Tue Jun 15 2021 Marek Kasik <mkasik@redhat.com> - 40.1-4 * Mon Feb 15 2021 Marek Kasik <mkasik@redhat.com> - 3.28.4-10
- Show password dialog again if cancelled previously - Add available translations of string "Reset form"
- Resolves: #1927705 - Resolves: #1896006
* Tue May 04 2021 Felipe Borges <feborges@redhat.com> - 40.1-3 * Mon Feb 1 2021 Marek Kasik <mkasik@redhat.com> - 3.28.4-9
- Split evince-previewer into its own package - Ship evince-devel
- See https://github.com/fedora-silverblue/issue-tracker/issues/122 - Resolves: #1919423
* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 40.1-2 * Mon Nov 9 2020 Marek Kasik <mkasik@redhat.com> - 3.28.4-8
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 - Handle ResetForm action
- Resolves: #1889793
* Fri Mar 26 2021 Kalev Lember <klember@redhat.com> - 40.1-1 * Fri Jun 5 2020 Marek Kasik <mkasik@redhat.com> - 3.28.4-7
- Update to 40.1 - Set "application-id" property for evince's GApplication
- Remove various minimum version requires - to "org.gnome.evince.Application" to avoid a critical warning.
- Remove old obsoletes - Resolves: #1842017
- Don't use ldconfig_scriptlets
- Filter private library provides
* Fri Mar 26 2021 Kalev Lember <klember@redhat.com> - 40.0-1 * Mon Apr 27 2020 Marek Kasik <mkasik@redhat.com> - 3.28.4-6
- Update to 40.0 - Move annotation popup window to new position
- Tighten soname globs - Resolves: #1450700
* Wed Mar 03 2021 Marek Kasik <mkasik@redhat.com> - 3.39.2-2 * Mon Apr 20 2020 Marek Kasik <mkasik@redhat.com> - 3.28.4-5
- Set page cache size with correct type - Set a11y names for annotation buttons
- Resolves: #1458845 - Backport their translations
- Resolves: #1719328
* Wed Feb 17 2021 Kalev Lember <klember@redhat.com> - 3.39.2-1 * Mon Nov 4 2019 Marek Kasik <mkasik@redhat.com> - 3.28.4-4
- Update to 3.39.2 - Remove metainfo for plugins since they are not real addons
- Resolves: #1760363
* Mon Feb 08 2021 Felipe Borges <feborges@redhat.com> - 3.39.1-3 * Mon Jun 17 2019 Marek Kasik <mkasik@redhat.com> - 3.28.4-3
- Add evince-thumbnailer.1.gz to the evince-thumbnailer subpackage - Add requirement on evince-libs for nautilus and browser-plugin
- subpackages (RPMDiff)
- Related: #1717353
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.39.1-2 * Tue Jun 11 2019 Marek Kasik <mkasik@redhat.com> - 3.28.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - Handle failure from TIFFReadRGBAImageOriented()
- Resolves: #1717353
* Mon Jan 25 2021 Kalev Lember <klember@redhat.com> - 3.39.1-1 * Mon Oct 1 2018 Marek Kasik <mkasik@redhat.com> - 3.28.4-1
- Update to 3.39.1 - Update to 3.28.4
* Tue Nov 10 2020 Felipe Borges <feborges@redhat.com> - 3.38.0-2 * Thu Sep 6 2018 Marek Kasik <mkasik@redhat.com> - 3.28.2-3
- Split evince-thumbnailer into its own package - Fix important issues found by covscan
- See https://github.com/fedora-silverblue/issue-tracker/issues/98 - Resolves: #1602486
* Sat Sep 12 2020 Kalev Lember <klember@redhat.com> - 3.38.0-1 * Tue May 22 2018 Marek Kasik <mkasik@redhat.com> - 3.28.2-2
- Update to 3.38.0 - Disable dvi backend
- Resolves: #1580635
* Sun Aug 23 2020 Kalev Lember <klember@redhat.com> - 3.37.90-1
- Update to 3.37.90
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.37.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jul 07 2020 Marek Kasik <mkasik@redhat.com> - 3.37.3-1
- Update to 3.37.3
* Thu Jun 04 2020 Kalev Lember <klember@redhat.com> - 3.37.2-1
- Update to 3.37.2
* Tue Jun 02 2020 Kalev Lember <klember@redhat.com> - 3.36.3-1
- Update to 3.36.3
- Switch to meson build system
* Tue May 19 2020 Kalev Lember <klember@redhat.com> - 3.36.1-1
- Update to 3.36.1
* Sat Mar 07 2020 Kalev Lember <klember@redhat.com> - 3.36.0-1
- Update to 3.36.0
* Sun Feb 23 2020 Kalev Lember <klember@redhat.com> - 3.35.92-1
- Update to 3.35.92
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.35.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Fri Jan 17 2020 Marek Kasik <mkasik@redhat.com> - 3.35.1-3
- Rebuild for poppler-0.84.0
* Thu Jan 16 2020 Kalev Lember <klember@redhat.com> - 3.35.1-2
- Rebuilt for libgnome-desktop soname bump
* Mon Dec 02 2019 Kalev Lember <klember@redhat.com> - 3.35.1-1
- Update to 3.35.1
* Wed Nov 27 2019 Kalev Lember <klember@redhat.com> - 3.34.2-1
- Update to 3.34.2
- Don't replace upstream screenshots in appdata
* Wed Oct 16 2019 Marek Kasik <mkasik@redhat.com> - 3.34.1-2
- Fix crash during dragging of text on Wayland
- Resolves: #1753830
* Mon Oct 07 2019 Kalev Lember <klember@redhat.com> - 3.34.1-1
- Update to 3.34.1
* Sun Sep 29 2019 Kalev Lember <klember@redhat.com> - 3.34.0-1
- Update to 3.34.0
* Sun Sep 29 2019 Kalev Lember <klember@redhat.com> - 3.32.1-1
- Update to 3.32.1
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.32.0-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sun Jul 21 2019 Kalev Lember <klember@redhat.com> - 3.32.0-7
- Rebuilt for libgnome-desktop soname bump
* Tue Jun 11 2019 Marek Kasik <mkasik@redhat.com> - 3.32.0-6
- Handle failure from TIFFReadRGBAImageOriented
- Related: #1716299
* Sun May 26 2019 Adam Williamson <awilliam@redhat.com> - 3.32.0-5
- Rebuild for libsynctex soname bump (texlive)
* Tue May 14 2019 Marek Kasik <mkasik@redhat.com> - 3.32.0-4
- Protect against NULL variable reaching strcmp()
- Resolves: #1692083
* Wed Apr 17 2019 Kalev Lember <klember@redhat.com> - 3.32.0-3
- Rebuild with Meson fix for #1699099
* Thu Apr 04 2019 Felipe Borges <feborges@redhat.com> - 3.32.0-2
* Make the Evince RPM buildable as a Flatpak
* Thu Mar 14 2019 Kalev Lember <klember@redhat.com> - 3.32.0-1
- Update to 3.32.0
* Tue Feb 19 2019 Kalev Lember <klember@redhat.com> - 3.31.91-1
- Update to 3.31.91
* Tue Feb 05 2019 Kalev Lember <klember@redhat.com> - 3.31.90-1
- Update to 3.31.90
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.31.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jan 11 2019 Marek Kasik <mkasik@redhat.com> - 3.31.4-2
- Require synctex 1.19 during build to not use the bundled one
- Related: #1595910
* Tue Jan 08 2019 Kalev Lember <klember@redhat.com> - 3.31.4-1
- Update to 3.31.4
* Sat Nov 10 2018 Kalev Lember <klember@redhat.com> - 3.30.2-2
- Obsolete evince-browser-plugin (#1644960)
* Fri Oct 26 2018 Kalev Lember <klember@redhat.com> - 3.30.2-1
- Update to 3.30.2
* Tue Oct 2 2018 Marek Kasik <mkasik@redhat.com> - 3.30.1-2
- Enable PostScript backend again
- Resolves: #1635074
* Mon Oct 01 2018 Kalev Lember <klember@redhat.com> - 3.30.1-1
- Update to 3.30.1
* Fri Sep 07 2018 Kalev Lember <klember@redhat.com> - 3.30.0-2
- Rebuilt against fixed atk (#1626575)
* Tue Sep 4 2018 Marek Kasik <mkasik@redhat.com> - 3.30.0-1
- Update to 3.30.0
- Remove browser-plugin, it was disabled by default
- by upstream (see upstream issue #968)
* Tue Aug 28 2018 Marek Kasik <mkasik@redhat.com> - 3.29.92-1
- Update to 3.29.92
- Disable PostScript temporarily (see upstream issue #967)
* Wed Aug 1 2018 Marek Kasik <mkasik@redhat.com> - 3.29.90-2
- Add requirement of gspell
* Wed Aug 1 2018 Marek Kasik <mkasik@redhat.com> - 3.29.90-1
- Update to 3.29.90
- Remove unneeded patches
- Handle renamed evince* files
- Don't list missing README
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.28.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Thu Jul 12 2018 Marek Kasik <mkasik@redhat.com> - 3.28.2-3
- Change build requirement of kpathsea-devel to texlive-lib-devel
- Require gcc and gcc-c++
- Resolves: #1600511
* Wed May 9 2018 Marek Kasik <mkasik@redhat.com> - 3.28.2-2
- Fix crash in EvMediaPlayerKeys
- Resolves: #1359507
* Tue Apr 10 2018 Kalev Lember <klember@redhat.com> - 3.28.2-1 * Tue Apr 10 2018 Kalev Lember <klember@redhat.com> - 3.28.2-1
- Update to 3.28.2 - Update to 3.28.2