aboutsummaryrefslogtreecommitdiff
path: root/src/gtkutils.c
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-03-08 06:14:33 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-03-08 06:14:33 +0000
commit15ecfbc6effda513ca18e81b419b0eaf02daa0d5 (patch)
tree971ee5597624c66de434b6a01949ebd513803540 /src/gtkutils.c
parenta0a0fdcef601eb96691f2230462828ecbee23fcf (diff)
optimized making of clickable URI.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@153 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src/gtkutils.c')
-rw-r--r--src/gtkutils.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/gtkutils.c b/src/gtkutils.c
index 1047d874..211cd1f5 100644
--- a/src/gtkutils.c
+++ b/src/gtkutils.c
@@ -556,6 +556,31 @@ gboolean gtkut_text_buffer_find_backward(GtkTextBuffer *buffer,
return found;
}
+#define MAX_TEXT_LINE_LEN 8190
+
+void gtkut_text_buffer_insert_with_tag_by_name(GtkTextBuffer *buffer,
+ GtkTextIter *iter,
+ const gchar *text,
+ gint len,
+ const gchar *tag)
+{
+ if (len < 0)
+ len = strlen(text);
+
+ gtk_text_buffer_insert_with_tags_by_name
+ (buffer, iter, text, len, tag, NULL);
+
+ if (text[len - 1] != '\n') {
+ /* somehow returns invalid value first (bug?),
+ so call it twice */
+ gtk_text_iter_get_chars_in_line(iter);
+ if (gtk_text_iter_get_chars_in_line(iter) > MAX_TEXT_LINE_LEN) {
+ gtk_text_buffer_insert_with_tags_by_name
+ (buffer, iter, "\n", 1, tag, NULL);
+ }
+ }
+}
+
gchar *gtkut_text_view_get_selection(GtkTextView *textview)
{
GtkTextBuffer *buffer;