[evince/wip/remove-annotations: 2/6] libview: add ev_view_remove_annotation
- From: Germán Poó Caamaño <gpoo src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evince/wip/remove-annotations: 2/6] libview: add ev_view_remove_annotation
- Date: Tue, 27 May 2014 00:18:27 +0000 (UTC)
commit 82ed431666277bad1fac120a912c5939566cf21e
Author: Germán Poo-Caamaño <gpoo gnome org>
Date: Fri May 2 18:25:30 2014 -0700
libview: add ev_view_remove_annotation
Hide annotation windows if necessary and unset selected
element before removing an annotation.
https://bugzilla.gnome.org/show_bug.cgi?id=649044
libview/ev-view.c | 29 +++++++++++++++++++++++++++++
libview/ev-view.h | 2 ++
2 files changed, 31 insertions(+), 0 deletions(-)
---
diff --git a/libview/ev-view.c b/libview/ev-view.c
index 039e0bf..d4b3900 100644
--- a/libview/ev-view.c
+++ b/libview/ev-view.c
@@ -3209,6 +3209,35 @@ ev_view_cancel_add_annotation (EvView *view)
ev_view_handle_cursor_over_xy (view, x, y);
}
+void
+ev_view_remove_annotation (EvView *view,
+ EvAnnotation *annot)
+{
+ GtkWidget *window;
+ guint page;
+
+ g_return_if_fail (EV_IS_VIEW (view));
+ g_return_if_fail (EV_IS_ANNOTATION (annot));
+
+ page = ev_annotation_get_page_index (annot);
+
+ if (EV_IS_ANNOTATION_MARKUP (annot)) {
+ window = g_object_get_data (G_OBJECT (annot), "popup");
+ if (window)
+ gtk_widget_hide (window);
+ }
+ ev_view_set_focused_element (view, NULL, -1);
+
+ ev_document_doc_mutex_lock ();
+ ev_document_annotations_remove_annotation (EV_DOCUMENT_ANNOTATIONS (view->document),
+ annot);
+ ev_document_doc_mutex_unlock ();
+
+ ev_page_cache_mark_dirty (view->page_cache, view->current_page);
+
+ ev_view_reload_page (view, page, NULL);
+}
+
static gboolean
ev_view_synctex_backward_search (EvView *view,
gdouble x,
diff --git a/libview/ev-view.h b/libview/ev-view.h
index 193bcce..9baa97d 100644
--- a/libview/ev-view.h
+++ b/libview/ev-view.h
@@ -119,6 +119,8 @@ void ev_view_focus_annotation (EvView *view,
void ev_view_begin_add_annotation (EvView *view,
EvAnnotationType annot_type);
void ev_view_cancel_add_annotation (EvView *view);
+void ev_view_remove_annotation (EvView *view,
+ EvAnnotation *annot);
/* Caret navigation */
gboolean ev_view_supports_caret_navigation (EvView *view);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]