[gtkhtml] Bug 701247 - Crash at html_text_get_link_at_offset()
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtkhtml] Bug 701247 - Crash at html_text_get_link_at_offset()
- Date: Wed, 26 Aug 2015 12:46:47 +0000 (UTC)
commit c7b997978d3710792d584056b9eafef660203ae2
Author: Milan Crha <mcrha redhat com>
Date: Wed Aug 26 14:45:45 2015 +0200
Bug 701247 - Crash at html_text_get_link_at_offset()
components/editor/gtkhtml-editor-signals.c | 24 +++++++++++++++++-------
1 files changed, 17 insertions(+), 7 deletions(-)
---
diff --git a/components/editor/gtkhtml-editor-signals.c b/components/editor/gtkhtml-editor-signals.c
index e07974a..6cb5c65 100644
--- a/components/editor/gtkhtml-editor-signals.c
+++ b/components/editor/gtkhtml-editor-signals.c
@@ -1053,17 +1053,22 @@ gtkhtml_editor_link_properties_description_changed_cb (GtkWidget *window))
glong length;
Link *link;
- link = html_text_get_link_at_offset (HTML_TEXT (html->engine->cursor->object),
html->engine->cursor->offset);
+ if (HTML_IS_TEXT (html->engine->cursor->object))
+ link = html_text_get_link_at_offset (HTML_TEXT (html->engine->cursor->object),
html->engine->cursor->offset);
+ else
+ link = NULL;
length = g_utf8_strlen (text, -1);
if (link && link->start_offset != link->end_offset) {
+ HTMLObject *cursor_object = html->engine->cursor->object;
+
html_cursor_jump_to (
html->engine->cursor, html->engine,
- html->engine->cursor->object, link->start_offset);
+ cursor_object, link->start_offset);
html_engine_set_mark (html->engine);
html_cursor_jump_to (
html->engine->cursor, html->engine,
- html->engine->cursor->object, link->end_offset);
+ cursor_object, link->end_offset);
html_engine_delete (html->engine);
}
@@ -1109,17 +1114,22 @@ gtkhtml_editor_link_properties_url_changed_cb (GtkWidget *window))
Link *link;
const gchar *descr = gtk_entry_get_text (GTK_ENTRY (dsc_entry));
- link = html_text_get_link_at_offset (HTML_TEXT (html->engine->cursor->object),
html->engine->cursor->offset);
+ if (HTML_IS_TEXT (html->engine->cursor->object))
+ link = html_text_get_link_at_offset (HTML_TEXT (html->engine->cursor->object),
html->engine->cursor->offset);
+ else
+ link = NULL;
length = g_utf8_strlen (descr, -1);
if (link && link->start_offset != link->end_offset) {
+ HTMLObject *cursor_object = html->engine->cursor->object;
+
html_cursor_jump_to (
html->engine->cursor, html->engine,
- html->engine->cursor->object, link->start_offset);
+ cursor_object, link->start_offset);
html_engine_set_mark (html->engine);
html_cursor_jump_to (
html->engine->cursor, html->engine,
- html->engine->cursor->object, link->end_offset);
+ cursor_object, link->end_offset);
html_engine_delete (html->engine);
}
@@ -1158,7 +1168,7 @@ gtkhtml_editor_link_properties_show_window_cb (GtkWidget *window))
cursor->object, cursor->offset);
if (url != NULL) {
- if (!HTML_IS_IMAGE (cursor->object)) {
+ if (HTML_IS_TEXT (cursor->object)) {
Link *link;
link = html_text_get_link_at_offset (
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]