Compare commits

...
Sign in to create a new pull request.
Author SHA1 Message Date
Wolfgang Ulbrich
7866ab1b7b release 1.10.3 2015-11-28 18:52:09 +01:00
monsta
812e6e2d7d dvi: fix crash due to regression
fixes https://github.com/mate-desktop/atril/issues/164

regression has been introduced in 94dcb761b9
2015-11-07 12:54:18 +01:00
infirit
38a9153150 Retrieve strings directly from gschema
intltool 0.5.1 has support for gsettings schemas.
2015-09-06 13:01:50 +02:00
infirit
a7ba990cf6 Fix POTFILES for gsettings schema 2015-09-05 23:08:27 +02:00
infirit
4fbef69a47 Bump version to 1.10.2 2015-08-31 15:15:50 +02:00
infirit
a44fb640ec Update NEWS 2015-08-31 15:15:22 +02:00
monsta
398a796ed9 configure.ac: drop obsolete macro
It's been a no-op for a long time.
See https://mail.gnome.org/archives/commits-list/2011-December/msg00681.html for example.
2015-08-31 15:02:43 +02:00
infirit
a96da238fa configure: properly show "epub backend: no" in summary if it's off
Thanks to @monsta for reporting the problem.
2015-08-31 15:02:43 +02:00
monsta
52c1c01e2e made --page-index command line option actually work
that logic error was completely ridiculous
2015-08-31 15:02:43 +02:00
monsta
0099f1b6ff corrected code for --page-index and --page-label command line options
partially taken from
https://git.gnome.org/browse/evince/commit/?id=26c0109e67aa02fb0e58b2580a6df41363c78bd5
2015-08-31 15:02:17 +02:00
monsta
4bb208d860 make sure findbar is visible when using --find command line option
from
https://git.gnome.org/browse/evince/commit/?id=a11159d1b8ea994271b26b5c60083c0b07c1722d
2015-08-31 15:02:17 +02:00
monsta
279a156e3c don't show findbar in presentation mode (search doesn't work there)
from
https://git.gnome.org/browse/evince/commit/?id=79b9e1e0d6efa05a875e0db5407c9b760f3939d4
2015-08-31 15:02:03 +02:00
Monsta
dc65c10a21 when findbar is invoked, don't jump straight to result
from
https://git.gnome.org/browse/evince/commit/?id=1c1fe3110118254e3e6ab4661517697d91e99ff8
2015-08-31 15:01:55 +02:00
Carlos Garcia Campos
c8c4ab6524 pdf: Fix compile warning 2015-08-31 15:01:44 +02:00
Daniel Glöckner
bacfeddeb9 pdf: Fix saving annotations added to different pages
Fixes bug #628378.
2015-08-31 15:01:32 +02:00
monsta
f5d201e518 require libgxps >= 0.2.0
code changes from 740263e84f
are already in, but the version bump isn't. fixed that.
2015-08-31 15:01:09 +02:00
9 changed files with 129 additions and 88 deletions

12
NEWS
View file

@ -1,3 +1,15 @@
1.10.3
------
* dvi: fix crash due to regression
* Retrieve strings directly from gschema
1.10.2
------
* Fix several command line options
* Fix several findbar issues
* Make libmatedesktop optional
* [pdf] Fix saving annotations added to different pages
1.10.1
------

View file

@ -177,7 +177,7 @@ dvi_document_render (EvDocument *document,
*/
g_mutex_lock (&dvi_context_mutex);
mdvi_setpage (&dvi_document->context, rc->page->index);
mdvi_setpage (dvi_document->context, rc->page->index);
mdvi_set_shrink (dvi_document->context,
(int)((dvi_document->params->hshrink - 1) / rc->scale) + 1,

View file

@ -1167,6 +1167,9 @@ ev_link_from_action (PdfDocument *pdf_document,
}
break;
case POPPLER_ACTION_JAVASCRIPT:
unimplemented_action = "POPPLER_ACTION_JAVASCRIPT";
break;
case POPPLER_ACTION_UNKNOWN:
unimplemented_action = "POPPLER_ACTION_UNKNOWN";
}
@ -2891,16 +2894,21 @@ pdf_document_annotations_add_annotation (EvDocumentAnnotations *document_annotat
if (pdf_document->annots) {
mapping_list = (EvMappingList *)g_hash_table_lookup (pdf_document->annots,
GINT_TO_POINTER (page->index));
} else {
pdf_document->annots = g_hash_table_new_full (g_direct_hash,
g_direct_equal,
(GDestroyNotify)NULL,
(GDestroyNotify)ev_mapping_list_unref);
mapping_list = NULL;
}
if (mapping_list) {
list = ev_mapping_list_get_list (mapping_list);
name = g_strdup_printf ("annot-%d-%d", page->index, g_list_length (list) + 1);
ev_annotation_set_name (annot, name);
g_free (name);
list = g_list_append (list, annot_mapping);
} else {
pdf_document->annots = g_hash_table_new_full (g_direct_hash,
g_direct_equal,
(GDestroyNotify)NULL,
(GDestroyNotify)ev_mapping_list_unref);
name = g_strdup_printf ("annot-%d-0", page->index);
ev_annotation_set_name (annot, name);
g_free (name);

View file

@ -4,7 +4,7 @@
m4_define([ev_major_version], [1])
m4_define([ev_minor_version], [10])
m4_define([ev_micro_version], [1])
m4_define([ev_micro_version], [3])
m4_define([ev_extra_version], [])
m4_define([ev_version], [ev_major_version.ev_minor_version.ev_micro_version()ev_extra_version])
@ -53,9 +53,6 @@ AM_MAINTAINER_MODE([enable])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
AC_ISC_POSIX
AC_PROG_CC
AM_PROG_CC_C_O
AC_PROG_CXX
@ -73,7 +70,7 @@ dnl FIXME: remove this when required gtk+ >= 2.19.7
DISABLE_DEPRECATED=
AC_SUBST([DISABLE_DEPRECATED])
IT_PROG_INTLTOOL([0.35.0])
IT_PROG_INTLTOOL([0.50.1])
GETTEXT_PACKAGE=atril
AC_SUBST(GETTEXT_PACKAGE)
@ -671,7 +668,7 @@ AC_ARG_ENABLE(xps,
[enable_xps=yes])
if test "x$enable_xps" = "xyes"; then
GXPS_REQUIRED=0.0.1
GXPS_REQUIRED=0.2.0
PKG_CHECK_MODULES(GXPS, libgxps >= $GXPS_REQUIRED,enable_xps=yes,enable_xps=no)
if test "x$enable_xps" = "xyes"; then
@ -695,6 +692,7 @@ AC_ARG_ENABLE(epub,
[enable_epub=$enableval],
[enable_epub=yes])
have_webkit="no"
if test "x$enable_epub" = "xyes"; then
case "$with_gtk" in
2.0)
@ -717,7 +715,6 @@ esac
if test "x$have_webkit" = "xyes"; then
AC_DEFINE([ENABLE_EPUB], [1], [Enable support for ePub documents.])
else
have_webkit="no"
AC_MSG_WARN(["ePub support is disabled."])
fi
fi

View file

@ -58,9 +58,7 @@ appdata_DATA = $(appdata_in_files:.xml.in=.xml)
#
# GSettings schema
#
gsettingsschema_in_files = org.mate.Atril.gschema.xml.in
# gsettings_SCHEMAS is a list of all the schemas you want to install
gsettings_SCHEMAS = $(gsettingsschema_in_files:.xml.in=.xml)
gsettings_SCHEMAS = org.mate.Atril.gschema.xml
.PRECIOUS: $(gsettings_SCHEMAS)
@ -99,7 +97,7 @@ EXTRA_DIST = \
$(ui_DATA) \
$(DESKTOP_IN_FILES) \
$(appdata_in_files) \
$(gsettingsschema_in_files) \
$(gsettings_SCHEMAS) \
org.mate.atril.Daemon.service.in \
$(man_MANS) \
atril.ico \
@ -115,7 +113,6 @@ CLEANFILES = \
DISTCLEANFILES = \
$(DESKTOP_FILES) \
$(gsettings_SCHEMAS) \
$(service_DATA)
-include $(top_srcdir)/git.mk

View file

@ -9,8 +9,8 @@
<schema id="org.mate.Atril" path="/org/mate/atril/" gettext-domain="atril">
<key name="override-restrictions" type="b">
<default>true</default>
<_summary>Override document restrictions</_summary>
<_description>Override document restrictions, like restriction to copy or to print.</_description>
<summary>Override document restrictions</summary>
<description>Override document restrictions, like restriction to copy or to print.</description>
</key>
<child name="default" schema="org.mate.Atril.Default"/>
</schema>

View file

@ -24,7 +24,7 @@ cut-n-paste/toolbar-editor/egg-toolbar-editor.c
cut-n-paste/zoom-control/ephy-zoom.h
data/atril.appdata.xml.in
data/atril.desktop.in.in
[type: gettext/gsettings]data/org.mate.Atril.gschema.xml.in
[type: gettext/gsettings]data/org.mate.Atril.gschema.xml
previewer/ev-previewer.c
previewer/ev-previewer-window.c
properties/ev-properties-main.c

View file

@ -254,15 +254,20 @@ ev_spawn (const char *uri,
g_string_append_printf (cmd, " %s", path);
g_free (path);
/* Page label */
/* Page label or index */
if (dest) {
const gchar *page_label;
page_label = ev_link_dest_get_page_label (dest);
if (page_label)
g_string_append_printf (cmd, " --page-label=%s", page_label);
else
g_string_append_printf (cmd, " --page-label=%d", ev_link_dest_get_page (dest));
switch (ev_link_dest_get_dest_type (dest)) {
case EV_LINK_DEST_TYPE_PAGE_LABEL:
g_string_append_printf (cmd, " --page-label=%s",
ev_link_dest_get_page_label (dest));
break;
case EV_LINK_DEST_TYPE_PAGE:
g_string_append_printf (cmd, " --page-index=%d",
ev_link_dest_get_page (dest) + 1);
break;
default:
break;
}
}
/* Find string */
@ -440,10 +445,10 @@ on_register_uri_cb (GObject *source_object,
g_variant_get (value, "(&s)", &owner);
/* This means that the document wasn't already registered; go
* ahead with opening it.
*/
* ahead with opening it.
*/
if (owner[0] == '\0') {
g_variant_unref (value);
g_variant_unref (value);
application->doc_registered = TRUE;
@ -456,38 +461,47 @@ on_register_uri_cb (GObject *source_object,
data->timestamp);
ev_register_doc_data_free (data);
return;
}
return;
}
/* Already registered */
g_variant_builder_init (&builder, G_VARIANT_TYPE ("(a{sv}u)"));
g_variant_builder_open (&builder, G_VARIANT_TYPE ("a{sv}"));
g_variant_builder_add (&builder, "{sv}",
"display",
g_variant_new_string (gdk_display_get_name (gdk_screen_get_display (data->screen))));
g_variant_builder_add (&builder, "{sv}",
"screen",
g_variant_new_int32 (gdk_screen_get_number (data->screen)));
g_variant_builder_open (&builder, G_VARIANT_TYPE ("a{sv}"));
g_variant_builder_add (&builder, "{sv}",
"display",
g_variant_new_string (gdk_display_get_name (gdk_screen_get_display (data->screen))));
g_variant_builder_add (&builder, "{sv}",
"screen",
g_variant_new_int32 (gdk_screen_get_number (data->screen)));
if (data->dest) {
g_variant_builder_add (&builder, "{sv}",
"page-label",
g_variant_new_string (ev_link_dest_get_page_label (data->dest)));
switch (ev_link_dest_get_dest_type (data->dest)) {
case EV_LINK_DEST_TYPE_PAGE_LABEL:
g_variant_builder_add (&builder, "{sv}", "page-label",
g_variant_new_string (ev_link_dest_get_page_label (data->dest)));
break;
case EV_LINK_DEST_TYPE_PAGE:
g_variant_builder_add (&builder, "{sv}", "page-index",
g_variant_new_uint32 (ev_link_dest_get_page (data->dest)));
break;
default:
break;
}
}
if (data->search_string) {
g_variant_builder_add (&builder, "{sv}",
"find-string",
g_variant_new_string (data->search_string));
g_variant_builder_add (&builder, "{sv}",
"find-string",
g_variant_new_string (data->search_string));
}
if (data->mode != EV_WINDOW_MODE_NORMAL) {
g_variant_builder_add (&builder, "{sv}",
"mode",
g_variant_new_uint32 (data->mode));
g_variant_builder_add (&builder, "{sv}",
"mode",
g_variant_new_uint32 (data->mode));
}
g_variant_builder_close (&builder);
g_variant_builder_close (&builder);
g_variant_builder_add (&builder, "u", data->timestamp);
g_variant_builder_add (&builder, "u", data->timestamp);
g_dbus_connection_call (connection,
g_dbus_connection_call (connection,
owner,
APPLICATION_DBUS_OBJECT_PATH,
APPLICATION_DBUS_INTERFACE,
@ -776,6 +790,8 @@ method_call_cb (GDBusConnection *connection,
mode = g_variant_get_uint32 (value);
} else if (strcmp (key, "page-label") == 0 && g_variant_classify (value) == G_VARIANT_CLASS_STRING) {
dest = ev_link_dest_new_page_label (g_variant_get_string (value, NULL));
} else if (strcmp (key, "page-index") == 0 && g_variant_classify (value) == G_VARIANT_CLASS_UINT32) {
dest = ev_link_dest_new_page (g_variant_get_uint32 (value));
} else if (strcmp (key, "find-string") == 0 && g_variant_classify (value) == G_VARIANT_CLASS_STRING) {
search_string = g_variant_get_string (value, NULL);
}

View file

@ -1532,10 +1532,21 @@ ev_window_setup_document (EvWindow *ev_window)
info = ev_document_get_info (document);
update_document_mode (ev_window, info->mode);
if (EV_IS_DOCUMENT_FIND (document)) {
if (ev_window->priv->search_string &&
!EV_WINDOW_IS_PRESENTATION (ev_window)) {
ev_window_cmd_edit_find (NULL, ev_window);
egg_find_bar_set_search_string (EGG_FIND_BAR (ev_window->priv->find_bar), ev_window->priv->search_string);
}
g_clear_pointer (&ev_window->priv->search_string, g_free);
}
/*FIXME*/
if (EV_WINDOW_IS_PRESENTATION (ev_window) && document->iswebdocument == FALSE)
gtk_widget_grab_focus (ev_window->priv->presentation_view);
else {
else if (!gtk_widget_get_visible (ev_window->priv->find_bar)) {
if ( document->iswebdocument == FALSE )
gtk_widget_grab_focus (ev_window->priv->view);
#if ENABLE_EPUB
@ -1672,7 +1683,7 @@ static void
ev_window_handle_link (EvWindow *ev_window,
EvLinkDest *dest)
{
if (ev_window->priv->document->iswebdocument == FALSE ) {
if (ev_window->priv->document->iswebdocument == TRUE ) {
return;
}
if (dest) {
@ -1749,15 +1760,6 @@ ev_window_load_job_cb (EvJob *job,
break;
}
if (ev_window->priv->search_string && EV_IS_DOCUMENT_FIND (document)) {
ev_window_cmd_edit_find (NULL, ev_window);
egg_find_bar_set_search_string (EGG_FIND_BAR (ev_window->priv->find_bar),
ev_window->priv->search_string);
}
g_free (ev_window->priv->search_string);
ev_window->priv->search_string = NULL;
/* Create a monitor for the document */
ev_window->priv->monitor = ev_file_monitor_new (ev_window->priv->uri);
g_signal_connect_swapped (ev_window->priv->monitor, "changed",
@ -2285,7 +2287,8 @@ ev_window_open_document (EvWindow *ev_window,
break;
}
if (search_string && EV_IS_DOCUMENT_FIND (document)) {
if (search_string && EV_IS_DOCUMENT_FIND (document) &&
mode != EV_WINDOW_MODE_PRESENTATION) {
ev_window_cmd_edit_find (NULL, ev_window);
egg_find_bar_set_search_string (EGG_FIND_BAR (ev_window->priv->find_bar),
search_string);
@ -3873,12 +3876,13 @@ ev_window_cmd_edit_select_all (GtkAction *action, EvWindow *ev_window)
static void
ev_window_cmd_edit_find (GtkAction *action, EvWindow *ev_window)
{
g_return_if_fail (EV_IS_WINDOW (ev_window));
if (ev_window->priv->document == NULL || !EV_IS_DOCUMENT_FIND (ev_window->priv->document)) {
g_error ("Find action should be insensitive since document doesn't support find");
return;
}
}
if (EV_WINDOW_IS_PRESENTATION (ev_window))
return;
update_chrome_flag (ev_window, EV_CHROME_FINDBAR, TRUE);
update_chrome_visibility (ev_window);
@ -3888,7 +3892,8 @@ ev_window_cmd_edit_find (GtkAction *action, EvWindow *ev_window)
static void
ev_window_cmd_edit_find_next (GtkAction *action, EvWindow *ev_window)
{
g_return_if_fail (EV_IS_WINDOW (ev_window));
if (EV_WINDOW_IS_PRESENTATION (ev_window))
return;
update_chrome_flag (ev_window, EV_CHROME_FINDBAR, TRUE);
update_chrome_visibility (ev_window);
@ -3906,7 +3911,8 @@ ev_window_cmd_edit_find_next (GtkAction *action, EvWindow *ev_window)
static void
ev_window_cmd_edit_find_previous (GtkAction *action, EvWindow *ev_window)
{
g_return_if_fail (EV_IS_WINDOW (ev_window));
if (EV_WINDOW_IS_PRESENTATION (ev_window))
return;
update_chrome_flag (ev_window, EV_CHROME_FINDBAR, TRUE);
update_chrome_visibility (ev_window);
@ -5457,27 +5463,16 @@ find_bar_close_cb (EggFindBar *find_bar,
}
static void
find_bar_search_changed_cb (EggFindBar *find_bar,
GParamSpec *param,
EvWindow *ev_window)
ev_window_search_start (EvWindow *ev_window)
{
gboolean case_sensitive;
EggFindBar *find_bar = EGG_FIND_BAR (ev_window->priv->find_bar);
const char *search_string;
if (!ev_window->priv->document || !EV_IS_DOCUMENT_FIND (ev_window->priv->document))
return;
/* Either the string or case sensitivity could have changed. */
case_sensitive = egg_find_bar_get_case_sensitive (find_bar);
search_string = egg_find_bar_get_search_string (find_bar);
#if ENABLE_EPUB
if (ev_window->priv->document->iswebdocument) {
ev_web_view_find_search_changed(EV_WEB_VIEW(ev_window->priv->webview));
} else
#endif
{
ev_view_find_search_changed (EV_VIEW (ev_window->priv->view));
}
ev_window_clear_find_job (ev_window);
if (search_string && search_string[0]) {
@ -5485,7 +5480,7 @@ find_bar_search_changed_cb (EggFindBar *find_bar,
ev_document_model_get_page (ev_window->priv->model),
ev_document_get_n_pages (ev_window->priv->document),
search_string,
case_sensitive);
egg_find_bar_get_case_sensitive (find_bar));
g_signal_connect (ev_window->priv->find_job, "finished",
G_CALLBACK (ev_window_find_job_finished_cb),
@ -5496,14 +5491,31 @@ find_bar_search_changed_cb (EggFindBar *find_bar,
ev_job_scheduler_push_job (ev_window->priv->find_job, EV_JOB_PRIORITY_NONE);
} else {
ev_window_update_actions (ev_window);
egg_find_bar_set_status_text (EGG_FIND_BAR (ev_window->priv->find_bar),
NULL);
egg_find_bar_set_status_text (find_bar, NULL);
if (ev_window->priv->document->iswebdocument == FALSE) {
gtk_widget_queue_draw (GTK_WIDGET (ev_window->priv->view));
}
}
}
static void
find_bar_search_changed_cb (EggFindBar *find_bar,
GParamSpec *param,
EvWindow *ev_window)
{
/* Either the string or case sensitivity could have changed. */
#if ENABLE_EPUB
if (ev_window->priv->document->iswebdocument) {
ev_web_view_find_search_changed(EV_WEB_VIEW (ev_window->priv->webview));
} else
#endif
{
ev_view_find_search_changed (EV_VIEW (ev_window->priv->view));
}
ev_window_search_start (ev_window);
}
static void
find_bar_visibility_changed_cb (EggFindBar *find_bar,
GParamSpec *param,
@ -5517,7 +5529,6 @@ find_bar_visibility_changed_cb (EggFindBar *find_bar,
if (!ev_window->priv->document->iswebdocument) {
ev_view_find_set_highlight_search (EV_VIEW (ev_window->priv->view), visible);
ev_view_find_search_changed (EV_VIEW (ev_window->priv->view));
}
#if ENABLE_EPUB
else {
@ -5531,7 +5542,7 @@ find_bar_visibility_changed_cb (EggFindBar *find_bar,
ev_window_update_actions (ev_window);
if (visible)
find_bar_search_changed_cb (find_bar, NULL, ev_window);
ev_window_search_start (ev_window);
else
egg_find_bar_set_status_text (EGG_FIND_BAR (ev_window->priv->find_bar), NULL);
}