summaryrefslogtreecommitdiff
path: root/gtk/gtktextlayout.h
diff options
context:
space:
mode:
authorYevgen Muntyan <muntyan@tamu.edu>2007-06-01 06:25:43 +0000
committerYevgen Muntyan <muntyan@src.gnome.org>2007-06-01 06:25:43 +0000
commit8f4aa8c6d7dd2e8ebc60683088aec23ed2806625 (patch)
tree981869bc6e3311074dc96e26de2bace806d18221 /gtk/gtktextlayout.h
parent5ffdc33df0b329282901ad1a410492248d32b931 (diff)
downloadgtk+-8f4aa8c6d7dd2e8ebc60683088aec23ed2806625.tar.gz
Avoid recreating pangolayouts in GtkTextView on cursor movement (#435405,
2007-06-01 Yevgen Muntyan <muntyan@tamu.edu> Avoid recreating pangolayouts in GtkTextView on cursor movement (#435405, Behdad Esfahbod). * gtk/gtktextlayout.c: * gtk/gtktextlayout.h: new GtkTextLayout method invalidate_cursors(), and functions gtk_text_layout_invalidate_cursors() and gtk_text_layout_cursors_changed(), to use when invalidation is due to moved marks or changed selection. * gtk/gtktextbtree.c: * gtk/gtktextbtree.h: use what's appropriate when invalidating layout. * gtk/gtk.symbols: add new functions. * README.in: added a note about changed GtkTextLayout API. svn path=/trunk/; revision=18000
Diffstat (limited to 'gtk/gtktextlayout.h')
-rw-r--r--gtk/gtktextlayout.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/gtk/gtktextlayout.h b/gtk/gtktextlayout.h
index 21e3d53e12..ffc889f711 100644
--- a/gtk/gtktextlayout.h
+++ b/gtk/gtktextlayout.h
@@ -209,11 +209,14 @@ struct _GtkTextLayoutClass
gint x,
gint y);
+ void (*invalidate_cursors) (GtkTextLayout *layout,
+ const GtkTextIter *start,
+ const GtkTextIter *end);
+
/* Padding for future expansion */
void (*_gtk_reserved1) (void);
void (*_gtk_reserved2) (void);
void (*_gtk_reserved3) (void);
- void (*_gtk_reserved4) (void);
};
struct _GtkTextAttrAppearance
@@ -254,6 +257,8 @@ struct _GtkTextLineDisplay
GtkTextLine *line;
GdkColor *pg_bg_color;
+
+ guint cursors_invalid : 1;
};
extern PangoAttrType gtk_text_attr_appearance_type;
@@ -327,6 +332,9 @@ void gtk_text_layout_get_iter_at_position (GtkTextLayout *layout,
void gtk_text_layout_invalidate (GtkTextLayout *layout,
const GtkTextIter *start,
const GtkTextIter *end);
+void gtk_text_layout_invalidate_cursors(GtkTextLayout *layout,
+ const GtkTextIter *start,
+ const GtkTextIter *end);
void gtk_text_layout_free_line_data (GtkTextLayout *layout,
GtkTextLine *line,
GtkTextLineData *line_data);
@@ -353,6 +361,10 @@ void gtk_text_layout_changed (GtkTextLayout *layout,
gint y,
gint old_height,
gint new_height);
+void gtk_text_layout_cursors_changed (GtkTextLayout *layout,
+ gint y,
+ gint old_height,
+ gint new_height);
void gtk_text_layout_get_iter_location (GtkTextLayout *layout,
const GtkTextIter *iter,
GdkRectangle *rect);