Commit f6204768 authored by Germán Poo-Caamaño's avatar Germán Poo-Caamaño

browser-plugin: Remove browser-plugin support

Epiphany deprecated support for NPAPI for 3.30, and when enabled
manually it will not download the PDF document from the network.
Therefore, it does not make sense to keep the browser-plugin
anymore.

Fixes #968
parent fbb0a963
......@@ -25,10 +25,6 @@ if ENABLE_PREVIEWER
SUBDIRS += previewer
endif
if ENABLE_BROWSER_PLUGIN
SUBDIRS += browser-plugin
endif
NULL =
pkgconfigdir = $(libdir)/pkgconfig
......
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright © 2014 Igalia S.L.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
This program is distributed in the hope conf it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<gresources>
<gresource prefix="/org/gnome/evince/browser">
<file alias="ui/evince-browser.css" compressed="true">evince-browser.css</file>
<file alias="ui/thumbnail-frame.png" compressed="true">thumbnail-frame.png</file>
</gresource>
</gresources>
/*
* Copyright (C) 2014 Igalia S.L.
*
* Evince is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* Evince is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifndef EvBrowserPlugin_h
#define EvBrowserPlugin_h
#include <evince-document.h>
#include <evince-view.h>
#include "EvMemoryUtils.h"
#include "npapi.h"
#include "npruntime.h"
typedef union _XEvent XEvent;
struct EvBrowserPluginClass;
class EvBrowserPlugin: public NPObject {
public:
static EvBrowserPlugin* create(NPP);
static const char *nameString();
static const char *descriptionString();
// NPP API
NPError initialize(NPMIMEType, uint16_t mode, int16_t argc, char *argn[], char *argv[], NPSavedData *);
NPError setWindow(NPWindow *);
NPError newStream(NPMIMEType, NPStream *, NPBool seekable, uint16_t *stype);
NPError destroyStream(NPStream *, NPReason);
void streamAsFile(NPStream *, const char *fname);
int32_t writeReady(NPStream *);
int32_t write(NPStream *, int32_t offset, int32_t len, void *buffer);
void print(NPPrint *);
int16_t handleEvent(XEvent *);
void urlNotify(const char *url, NPReason, void *notifyData);
// Viewer API
EvDocumentModel *model() const { return m_model; }
unsigned currentPage() const;
unsigned pageCount() const;
double zoom() const;
void setZoom(double scale);
void goToPreviousPage();
void goToNextPage();
void goToPage(unsigned page);
void goToPage(const char *pageLabel);
void activateLink(EvLink *);
bool isContinuous() const;
void setContinuous(bool);
void toggleContinuous();
bool isDual() const;
void setDual(bool);
void toggleDual();
void zoomIn();
void zoomOut();
EvSizingMode sizingMode() const;
void setSizingMode(EvSizingMode);
void download() const;
void print() const;
bool toolbarVisible() const;
void setToolbarVisible(bool);
bool canDownload() const;
void setSearchModeEnabled(bool);
void search(EvJobFind *);
enum SearchDirection { Next, Previous };
void search(SearchDirection);
void clearSearch();
void restartSearch();
private:
EvBrowserPlugin(NPP);
virtual ~EvBrowserPlugin();
// Scripting interface
static NPObject *allocate(NPP, NPClass *);
static void deallocate(NPObject *);
static void invalidate(NPObject *);
static bool hasMethod(NPObject *, NPIdentifier name);
static bool invoke(NPObject *, NPIdentifier name, const NPVariant *args, uint32_t argCount, NPVariant *result);
static bool hasProperty(NPObject *, NPIdentifier name);
static bool getProperty(NPObject *, NPIdentifier name, NPVariant *);
static bool setProperty(NPObject *, NPIdentifier name, const NPVariant *);
NPP m_NPP;
GtkWidget *m_window;
EvDocumentModel *m_model;
EvView *m_view;
GtkWidget *m_toolbar;
unique_gptr<char> m_url;
static EvBrowserPluginClass s_pluginClass;
};
#endif // EvBrowserPlugin_h
This diff is collapsed.
This diff is collapsed.
/*
* Copyright (C) 2014 Igalia S.L.
*
* Evince is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* Evince is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifndef EvBrowserPluginToolbar_h
#define EvBrowserPluginToolbar_h
#include "EvBrowserPlugin.h"
#include <gtk/gtk.h>
#include <evince-view.h>
G_BEGIN_DECLS
#define EV_TYPE_BROWSER_PLUGIN_TOOLBAR (ev_browser_plugin_toolbar_get_type())
#define EV_BROWSER_PLUGIN_TOOLBAR(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_BROWSER_PLUGIN_TOOLBAR, EvBrowserPluginToolbar))
#define EV_IS_BROWSER_PLUGIN_TOOLBAR(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_BROWSER_PLUGIN_TOOLBAR))
#define EV_BROWSER_PLUGIN_TOOLBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_BROWSER_PLUGIN_TOOLBAR, EvBrowserPluginToolbarClass))
#define EV_IS_BROWSER_PLUGIN_TOOLBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_BROWSER_PLUGIN_TOOLBAR))
#define EV_BROWSER_PLUGIN_TOOLBAR_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_BROWSER_PLUGIN_TOOLBAR, EvBrowserPluginToolbarClass))
typedef struct _EvBrowserPluginToolbar EvBrowserPluginToolbar;
typedef struct _EvBrowserPluginToolbarClass EvBrowserPluginToolbarClass;
typedef struct _EvBrowserPluginToolbarPrivate EvBrowserPluginToolbarPrivate;
struct _EvBrowserPluginToolbar {
GtkToolbar base_instance;
EvBrowserPluginToolbarPrivate *priv;
};
struct _EvBrowserPluginToolbarClass {
GtkToolbarClass base_class;
};
GType ev_browser_plugin_toolbar_get_type (void);
GtkWidget *ev_browser_plugin_toolbar_new (EvBrowserPlugin *plugin);
G_END_DECLS
#endif // EvBrowserPluginToolbar_h
/*
* Copyright (C) 2014 Igalia S.L.
*
* Evince is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* Evince is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifndef EvMemoryUtils_h
#define EvMemoryUtils_h
#include <glib.h>
#include <memory>
template<typename T>
struct unique_gptr_deleter {
void operator()(T* ptr) const { g_free(ptr); }
};
template<typename T>
using unique_gptr = std::unique_ptr<T, unique_gptr_deleter<T>>;
#endif // EvMemoryUtils_h
plugindir = $(BROWSER_PLUGIN_DIR)
plugin_LTLIBRARIES = libevbrowserplugin.la
npapi_sources = \
npapi/npapi.h \
npapi/npfunctions.h \
npapi/npruntime.h \
npapi/nptypes.h
libevbrowserplugin_la_SOURCES = \
$(npapi_sources) \
EvBrowserPluginMain.cpp \
EvBrowserPlugin.h \
EvBrowserPlugin.cpp \
EvBrowserPluginToolbar.h \
EvBrowserPluginToolbar.cpp \
EvMemoryUtils.h
nodist_libevbrowserplugin_la_SOURCES = \
EvBrowserPluginResources.c
libevbrowserplugin_la_CPPFLAGS = \
-I$(top_srcdir) \
-I$(top_srcdir)/browser-plugin/npapi \
-I$(top_srcdir)/libdocument \
-I$(top_srcdir)/libview \
-I$(top_srcdir)/libmisc \
-DGNOMELOCALEDIR=\"$(datadir)/locale\" \
-DEVINCE_COMPILATION \
-DXP_UNIX \
-DMOZ_X11 \
$(BROWSER_PLUGIN_CFLAGS) \
$(AM_CPPFLAGS)
libevbrowserplugin_la_CXXFLAGS = \
-std=c++11 \
-fno-exceptions \
-fno-strict-aliasing \
-fno-rtti \
$(AM_CXXFLAGS)
libevbrowserplugin_la_LDFLAGS = \
-avoid-version \
-export-symbols $(top_srcdir)/browser-plugin/plugin.symbols \
-module \
-no-undefined \
-Wl,-z,nodelete \
$(AM_LDFLAGS)
libevbrowserplugin_la_LIBADD = \
$(top_builddir)/libdocument/libevdocument3.la \
$(top_builddir)/libview/libevview3.la \
$(top_builddir)/libmisc/libevmisc.la \
$(BROWSER_PLUGIN_LIBS)
EvBrowserPluginResources.c: EvBrowserPlugin.gresource.xml Makefile $(shell $(GLIB_COMPILE_RESOURCES) --generate-dependencies --sourcedir=$(srcdir) --sourcedir=$(top_srcdir)/data $(srcdir)/EvBrowserPlugin.gresource.xml)
$(AM_V_GEN) XMLLINT=$(XMLLINT) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --sourcedir=$(top_srcdir)/data --generate-source $<
EXTRA_DIST = \
EvBrowserPlugin.gresource.xml \
evince-browser.css \
plugin.symbols
CLEANFILES = \
EvBrowserPluginResources.c
-include $(top_srcdir)/git.mk
.content-view.document-page {
border-style: solid;
border-width: 3px 3px 6px 4px;
border-image: url("resource:///org/gnome/evince/browser/ui/thumbnail-frame.png") 3 3 6 4;
background-color: @theme_bg_color;
}
EvView {
background-color: @theme_bg_color;
}
EvView:selected {
background-color: @theme_selected_bg_color;
}
EvView.document-page {
background-color: white;
padding: 0;
}
sources = files(
'EvBrowserPlugin.cpp',
'EvBrowserPluginMain.cpp',
'EvBrowserPluginToolbar.cpp',
)
resource_data = files(
'../data/thumbnail-frame.png',
'evince-browser.css',
)
resource = 'EvBrowserPlugin'
sources += gnome.compile_resources(
resource + 'Resources',
resource + '.gresource.xml',
source_dir: data_dir,
dependencies: resource_data,
export: true,
)
incs = [
top_inc,
include_directories('npapi'),
]
cflags = [
'-DGNOMELOCALEDIR="@0@"'.format(ev_localedir),
'-DEVINCE_COMPILATION',
'-DMOZ_X11',
'-DXP_UNIX',
]
cppflags = cflags + cc.get_supported_arguments([
'-std=c++11',
'-fno-exceptions',
'-fno-strict-aliasing',
'-fno-rtti',
])
symbol_map = join_paths(meson.current_source_dir(), 'plugin-symbol.map')
ldflag = cpp.get_supported_link_arguments([
'-Wl,--version-script,' + symbol_map,
'-Wl,-z,nodelete',
])
shared_module(
'evbrowserplugin',
sources: sources,
include_directories: incs,
dependencies: libevmisc_dep,
cpp_args: cppflags,
install: true,
install_dir: browser_plugin_dir,
)
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef nptypes_h_
#define nptypes_h_
/*
* Header file for ensuring that C99 types ([u]int32_t, [u]int64_t and bool) and
* true/false macros are available.
*/
#if defined(WIN32) || defined(OS2)
/*
* Win32 and OS/2 don't know C99, so define [u]int_16/32/64 here. The bool
* is predefined tho, both in C and C++.
*/
typedef short int16_t;
typedef unsigned short uint16_t;
typedef int int32_t;
typedef unsigned int uint32_t;
typedef long long int64_t;
typedef unsigned long long uint64_t;
#elif defined(_AIX) || defined(__sun) || defined(__osf__) || defined(IRIX) || defined(HPUX)
/*
* AIX and SunOS ship a inttypes.h header that defines [u]int32_t,
* but not bool for C.
*/
#include <inttypes.h>
#ifndef __cplusplus
typedef int bool;
#define true 1
#define false 0
#endif
#elif defined(bsdi) || defined(FREEBSD) || defined(OPENBSD)
/*
* BSD/OS, FreeBSD, and OpenBSD ship sys/types.h that define int32_t and
* u_int32_t.
*/
#include <sys/types.h>
/*
* BSD/OS ships no header that defines uint32_t, nor bool (for C)
*/
#if defined(bsdi)
typedef u_int32_t uint32_t;
typedef u_int64_t uint64_t;
#if !defined(__cplusplus)
typedef int bool;
#define true 1
#define false 0
#endif
#else
/*
* FreeBSD and OpenBSD define uint32_t and bool.
*/
#include <inttypes.h>
#include <stdbool.h>
#endif
#elif defined(BEOS)
#include <inttypes.h>
#else
/*
* For those that ship a standard C99 stdint.h header file, include
* it. Can't do the same for stdbool.h tho, since some systems ship
* with a stdbool.h file that doesn't compile!
*/
#include <stdint.h>
#ifndef __cplusplus
#if !defined(__GNUC__) || (__GNUC__ > 2 || __GNUC_MINOR__ > 95)
#include <stdbool.h>
#else
/*
* GCC 2.91 can't deal with a typedef for bool, but a #define
* works.
*/
#define bool int
#define true 1
#define false 0
#endif
#endif
#endif
#endif /* nptypes_h_ */
NP_GetMIMEDescription
NP_GetValue
NP_Initialize
NP_Shutdown
This diff is collapsed.
<html>
<head>
<title>Evince Browser Plugin Test: Iframe</title>
</head>
<body>
<h1>PDF document inside an Iframe</h1>
<button onclick="document.getElementById('container').setAttribute('style', 'display: none');">Hide</button>
<button onclick="document.getElementById('container').setAttribute('style', 'display: block');">Show</button>
<div id="container">
<iframe id="frame" src="test.pdf" width="450" height="450"/>
</div>
</body>
</html>
<html>
<head>
<title>Evince Browser Plugin Test: InitialValues</title>
</head>
<body>
<h1>Default</h1>
<object data="test.pdf" type="application/pdf" widtH="600" height="300">
The pdf could not be rendered.
</object>
<h1>toolbar='false'</h1>
<object data="test.pdf" type="application/pdf" width="600" height="300" toolbar="false">
The pdf could not be rendered.
</object>
<h1>currentPage="2"</h1>
<object data="test.pdf" type="application/pdf" width="600" height="300" currentPage="2">
The pdf could not be rendered.
</object>
<h1>zoomMode="fit-page"</h1>
<object data="test.pdf" type="application/pdf" width="600" height="300" zoomMode="fit-page">
The pdf could not be rendered.
</object>
<h1>continuous="false" dual="true"</h1>
<object data="test.pdf" type="application/pdf" width="600" height="300" continuous="false" dual="true">
The pdf could not be rendered.
</object>
<h1>zoom="2.0"</h1>
<object data="test.pdf" type="application/pdf" width="600" height="300" zoom="2.0">
The pdf could not be rendered.
</object>
</body>
</html>
<html>
<head>
<title>Evince Browser Plugin Test: Local PDF document</title>
</head>
<body>
<h1>Local PDF document</h1>
<object data="test.pdf" type="application/pdf" width="600" height="600">
The pdf could not be rendered.
</object>
</body>
</html>
<html>
<head>
<title>Evince Browser Plugin Test: Multiple PDF documents</title>
</head>
<body>
<h1>Local PDF document</h1>
<object data="test.pdf" type="application/pdf" width="600" height="600">
The pdf could not be rendered.
</object>
<h1>Remote PDF document</h1>
<object data="http://plugindoc.mozdev.org/testpages/test.pdf"
type="application/pdf" width="600" height="600">
The pdf could not be rendered.
</object>
</body>
</html>
<html>
<head>
<title>Evince Browser Plugin Test: Remote document</title>
</head>
<body>
<h1>Remote PDF document</h1>
<object data="http://plugindoc.mozdev.org/testpages/test.pdf" type="application/pdf" width="640" height="480">
The pdf could not be rendered.
</object>
</body>
</html>
<html>
<head>
<title>Evince Browser Plugin Test: Scripting</title>
<script>
function updateProperties() {
document.getElementById('currentPage').textContent = document._pdf.currentPage;
document.getElementById('pageCount').textContent = document._pdf.pageCount;
document.getElementById('zoom').textContent = document._pdf.zoom;
document.getElementById('continuous').textContent = document._pdf.continuous;
document.getElementById('dual').textContent = document._pdf.dual;
document.getElementById('zoomMode').textContent = document._pdf.zoomMode;
document.getElementById('toolbar').textContent = document._pdf.toolbar;
}
function init() {
document._pdf = document.getElementById('pdf');
setInterval(updateProperties, 500);
}
document.addEventListener("DOMContentLoaded", init, false);
</script>
</head>
<body>
<h1>PDF document controlled by JavaScript</h1>
<object id="pdf" data="test.pdf" type="application/pdf" width="600" height="300">
The pdf could not be rendered.
</object>
<br>
<button onclick="document._pdf.currentPage--;">currentPage--</button>
<button onclick="document._pdf.currentPage++;">currentPage++</button>
<button onclick="document._pdf.zoomIn();">Zoom In</button>
<button onclick="document._pdf.zoomOut();">Zoom In</button>
<button onclick="document._pdf.zoom+=0.1;">zoom+=0.1</button>
<button onclick="document._pdf.zoom-=0.1;">zoom-=0.1</button>
<button onclick="document._pdf.zoom=1;">zoom=1</button>
<button onclick="document._pdf.toggleContinuous();">Toggle Continuous</button>
<button onclick="document._pdf.continuous=true;">continuous=true</button>
<button onclick="document._pdf.continuous=false;">continuous=false</button>
<button onclick="document._pdf.toggleDual();">Toggle Dual</button>
<button onclick="document._pdf.dual=true;">dual=true</button>
<button onclick="document._pdf.dual=false;">dual=false</button>
<button onclick="document._pdf.zoomMode='fit-page';">zoomMode='fit-page'</button>
<button onclick="document._pdf.zoomMode='fit-width';">zoomMode='fit-width'</button>
<button onclick="document._pdf.zoomMode='auto';">zoomMode='auto'</button>
<button onclick="document._pdf.print();">Print</button>
<button onclick="document._pdf.download();">Download</button>
<button onclick="document._pdf.toolbar=true;">toolbar=true</button>
<button onclick="document._pdf.toolbar=false;">toolbar=false</button>
<table>
<tr><th>currentPage:</th><td id="currentPage"></td></tr>
<tr><th>pageCount:</th><td id="pageCount"></td></tr>
<tr><th>zoom:</th><td id="zoom"></td></tr>
<tr><th>continuous:</th><td id="continuous"></td></tr>
<tr><th>dual:</th><td id="dual"></td></tr>
<tr><th>zoomMode:</th><td id="zoomMode"></td></tr>
<tr><th>toolbar:</th><td id="toolbar"></td></tr>
</table>
</body>
</html>
......@@ -500,31 +500,6 @@ PREVIEWER_LIBS="$PREVIEWER_LIBS $GTKUNIXPRINT_LIBS -lz"
AC_SUBST(PREVIEWER_CFLAGS)
AC_SUBST(PREVIEWER_LIBS)
# **************
# Browser Plugin
# **************
AC_ARG_ENABLE([browser-plugin],
[AS_HELP_STRING([--disable-browser-plugin],
[Disable the Browser Plugin])],
[],
[enable_browser_plugin=no])
if test x$enable_browser_plugin = "xyes" ; then
PKG_CHECK_MODULES([BROWSER_PLUGIN],[gtk+-3.0 >= $GTK_REQUIRED gthread-2.0 gio-2.0 >= $GLIB_REQUIRED])
if test -z "${BROWSER_PLUGIN_DIR}"; then
BROWSER_PLUGIN_DIR="\${libdir}/mozilla/plugins"
fi
AC_ARG_VAR([BROWSER_PLUGIN_DIR],[Where to install the plugin to])
fi
AM_CONDITIONAL([ENABLE_BROWSER_PLUGIN],[test "$enable_browser_plugin" = "yes"])
BROWSER_PLUGIN_CFLAGS="$BROWSER_PLUGIN_CFLAGS $DEBUG_FLAGS"
AC_SUBST(BROWSER_PLUGIN_CFLAGS)
AC_SUBST(BROWSER_PLUGIN_LIBS)
# ***
# GIR
# ***
......@@ -944,7 +919,6 @@ backend/tiff/Makefile
backend/xps/evince-xpsdocument.metainfo.xml.in
backend/xps/xpsdocument.evince-backend.desktop.in
backend/xps/Makefile
browser-plugin/Makefile
cut-n-paste/Makefile
cut-n-paste/gimpcellrenderertoggle/Makefile
cut-n-paste/synctex/Makefile
......@@ -1022,7 +996,6 @@ Viewer ...................: $enable_viewer
Previewer ................: $enable_previewer
Thumbnailer ..............: $enable_thumbnailer
Nautilus Extensions.......: $enable_nautilus
Browser Plugin............: $enable_browser_plugin
BACKENDS
......
......@@ -460,17 +460,6 @@ if enable_previewer
subdir('previewer')
endif
# *** Browser Plugin ***
enable_browser_plugin = get_option('browser_plugin')
if enable_browser_plugin
browser_plugin_dir = get_option('browser_plugin_dir')
if not browser_plugin_dir.startswith('/')
browser_plugin_dir = join_paths(ev_libdir, browser_plugin_dir)
endif
subdir('browser-plugin')
endif
subdir('data')
headers = files(
......@@ -519,7 +508,6 @@ output += 'Viewer ...................: ' + enable_viewer.to_string() + '\n'
output += 'Previewer ................: ' + enable_previewer.to_string() + '\n'
output += 'Thumbnailer ..............: ' + enable_thumbnailer.to_string() + '\n'
output += 'Nautilus Extensions ......: ' + enable_nautilus.to_string() + '\n'
output += 'Browser Plugin ...........: ' + enable_browser_plugin.to_string() + '\n\n\n'
output += 'BACKENDS\n\n'
output += 'Comics ...................: ' + enable_comics.to_string() + '\n'
output += 'DJVU .....................: ' + enable_djvu.to_string() + '\n'
......
......@@ -20,7 +20,6 @@ backend/tiff/tiff-document.c
backend/tiff/tiffdocument.evince-backend.desktop.in.in
backend/xps/evince-xpsdocument.metainfo.xml.in.in
backend/xps/xpsdocument.evince-backend.desktop.in.in
browser-plugin/EvBrowserPluginToolbar.cpp
data/org.gnome.Evince.desktop.in.in
data/org.gnome.Evince.gschema.xml
data/org.gnome.Evince-previewer.desktop.in.in
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment