diff options
author | Yevgen Muntyan <muntyan@tamu.edu> | 2007-06-01 06:25:43 +0000 |
---|---|---|
committer | Yevgen Muntyan <muntyan@src.gnome.org> | 2007-06-01 06:25:43 +0000 |
commit | 8f4aa8c6d7dd2e8ebc60683088aec23ed2806625 (patch) | |
tree | 981869bc6e3311074dc96e26de2bace806d18221 /gtk/gtktextlayout.h | |
parent | 5ffdc33df0b329282901ad1a410492248d32b931 (diff) | |
download | gtk+-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.h | 14 |
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); |