diff --git a/meson.build b/meson.build index be1ccd4..116f145 100644 --- a/meson.build +++ b/meson.build @@ -21,7 +21,7 @@ gtk_x11_dep = dependency('gtk+-x11-3.0', required: get_option('X11')) gtk_wayland_dep = dependency('gtk+-wayland-3.0', version: '>= 3.21.5', required: get_option('wayland')) gtksourceview_dep = dependency('gtksourceview-4', version: '>=4.0.3') harfbuzz_dep = dependency('harfbuzz', version: '>=0.9.9') -webkit_dep = dependency('webkit2gtk-4.0') +webkit_dep = dependency('webkit2gtk-4.0', required: false) bindir = join_paths(get_option('prefix'), get_option('bindir')) datadir = join_paths(get_option('prefix'), get_option('datadir')) diff --git a/src/ui/main.js b/src/ui/main.js index b0cb7de..2aa0b71 100644 --- a/src/ui/main.js +++ b/src/ui/main.js @@ -39,7 +39,6 @@ pkg.require({ Pango: '1.0', Soup: '2.4', Sushi: '1.0', - WebKit2: '4.0', }); const {Gio, GLib} = imports.gi; diff --git a/src/viewers/html.js b/src/viewers/html.js index 3de4455..28d34de 100644 --- a/src/viewers/html.js +++ b/src/viewers/html.js @@ -23,11 +23,22 @@ * */ -const {Gtk, GLib, GObject, Sushi, WebKit2} = imports.gi; +const {Gtk, GLib, GObject, Sushi} = imports.gi; + +var WebKit2; +try { + imports.gi.versions.WebKit2 = '4.0'; + WebKit2 = imports.gi.WebKit2; +} catch(e) { +} + +function _isAvailable() { + return WebKit2 !== undefined; +} const Renderer = imports.ui.renderer; -var Klass = GObject.registerClass({ +var Klass = _isAvailable() ? GObject.registerClass({ Implements: [Renderer.Renderer], Properties: { fullscreen: GObject.ParamSpec.boolean('fullscreen', '', '', @@ -63,8 +74,10 @@ var Klass = GObject.registerClass({ get moveOnClick() { return false; } -}); +}) : undefined; -var mimeTypes = [ - 'text/html' -]; +var mimeTypes = []; +if (_isAvailable()) + mimeTypes = [ + 'text/html' + ];