Compare commits
No commits in common. 'c9' and 'i8c' have entirely different histories.
@ -1 +1 @@
|
||||
67c0f99cdb64f0b919e5f50604ab1824caf3d4ca SOURCES/evince-40.5.tar.xz
|
||||
230997237a449bc71b2c6769f5d30a2d616fba03 SOURCES/evince-3.28.4.tar.xz
|
||||
|
@ -1 +1 @@
|
||||
SOURCES/evince-40.5.tar.xz
|
||||
SOURCES/evince-3.28.4.tar.xz
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
@ -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);
|
||||
}
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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"><Primary>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"><Primary>Q</property>
|
||||
- </object>
|
||||
- </child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">True</property>
|
||||
--
|
||||
2.31.1
|
||||
|
Loading…
Reference in new issue