static void ev_window_update_max_min_scale (EvWindow *window);
#ifdef ENABLE_DBUS
static void ev_window_emit_closed (EvWindow *window);
+static void ev_window_emit_doc_loaded (EvWindow *window);
#endif
static guint ev_window_n_copies = 0;
ev_view_get_has_selection (view));
}
+static void
+view_layers_changed_cb (EvView *view,
+ EvWindow *window)
+{
+ ev_sidebar_layers_update_layers_state (EV_SIDEBAR_LAYERS (window->priv->sidebar_layers));
+}
+
static void
ev_window_page_changed_cb (EvWindow *ev_window,
gint old_page,
if (!ev_job_is_failed (job)) {
ev_document_model_set_document (ev_window->priv->model, document);
+#ifdef ENABLE_DBUS
+ ev_window_emit_doc_loaded (ev_window);
+#endif
setup_chrome_from_metadata (ev_window);
update_chrome_actions (ev_window);
setup_document_from_metadata (ev_window);
gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_CLOSE);
gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (dialog)), 5);
gtk_box_set_spacing (GTK_BOX (content_area), 2);
+#if !GTK_CHECK_VERSION (2, 90, 7)
gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE);
+#endif
gtk_window_set_default_size (GTK_WINDOW (dialog), 500, 400);
toolbar = EGG_EDITABLE_TOOLBAR (ev_window->priv->toolbar);
g_dbus_connection_flush_sync (connection, NULL, NULL);
}
+static void
+ev_window_emit_doc_loaded (EvWindow *window)
+{
+ GDBusConnection *connection;
+ GError *error = NULL;
+
+ if (window->priv->dbus_object_id <= 0)
+ return;
+
+ connection = ev_application_get_dbus_connection (EV_APP);
+ if (!connection)
+ return;
+
+ g_dbus_connection_emit_signal (connection,
+ NULL,
+ window->priv->dbus_object_path,
+ EV_WINDOW_DBUS_INTERFACE,
+ "DocumentLoaded",
+ g_variant_new("(s)", window->priv->uri),
+ &error);
+ if (error) {
+ g_printerr ("Failed to emit DBus signal DocumentLoaded: %s\n",
+ error->message);
+ g_error_free (error);
+
+ return;
+ }
+}
+
static void
method_call_cb (GDBusConnection *connection,
const gchar *sender,
if (window->priv->document && ev_document_has_synctex (window->priv->document)) {
EvSourceLink link;
+ guint32 timestamp;
- g_variant_get (parameters, "(&s(ii))", &link.filename, &link.line, &link.col);
+ g_variant_get (parameters, "(&s(ii)u)", &link.filename, &link.line, &link.col, ×tamp);
ev_view_highlight_forward_search (EV_VIEW (window->priv->view), &link);
- gtk_window_present (GTK_WINDOW (window));
+ gtk_window_present_with_time (GTK_WINDOW (window), timestamp);
}
g_dbus_method_invocation_return_value (invocation, g_variant_new ("()"));
"<method name='SyncView'>"
"<arg type='s' name='source_file' direction='in'/>"
"<arg type='(ii)' name='source_point' direction='in'/>"
+ "<arg type='u' name='timestamp' direction='in'/>"
"</method>"
"<signal name='SyncSource'>"
"<arg type='s' name='source_file' direction='out'/>"
"<arg type='(ii)' name='source_point' direction='out'/>"
"</signal>"
"<signal name='Closed'/>"
+ "<signal name='DocumentLoaded'>"
+ "<arg type='s' name='uri' direction='out'/>"
+ "</signal>"
"</interface>"
"</node>";
g_signal_connect_object (ev_window->priv->view, "annot-added",
G_CALLBACK (view_annot_added),
ev_window, 0);
+ g_signal_connect_object (ev_window->priv->view, "layers-changed",
+ G_CALLBACK (view_layers_changed_cb),
+ ev_window, 0);
#ifdef ENABLE_DBUS
g_signal_connect_swapped (ev_window->priv->view, "sync-source",
G_CALLBACK (ev_window_sync_source),