diff options
author | Havoc Pennington <hp@pobox.com> | 2000-12-02 07:51:37 +0000 |
---|---|---|
committer | Havoc Pennington <hp@src.gnome.org> | 2000-12-02 07:51:37 +0000 |
commit | 35876710dc133b5cab14241174ba0e680ca854af (patch) | |
tree | cab3760bbea08fdcb20e9a9a9f10f6eff3c00b07 /gtk/gtktextmark.c | |
parent | fb14d1299e3b81a70938462f841f17ea1e217ded (diff) | |
download | gtk+-35876710dc133b5cab14241174ba0e680ca854af.tar.gz |
don't create dangling pointers to the appearance attributes from the line
2000-11-30 Havoc Pennington <hp@pobox.com>
* gtk/gtktextdisplay.c (gtk_text_layout_draw): don't create
dangling pointers to the appearance attributes from the
line display
* gdk/gdkdraw.c (gdk_drawable_get_image): allow negative
width/height to mean "full width/height of drawable"
* gtk/gtktextview.h, gtk/gtktextview.c: Implement double/triple
click to select word/line
* gtk/gtktextiter.c (test_log_attrs): include paragraph delimiters
when getting log attrs. Get a slice, so that pixmaps and stuff
are properly handled.
* gtk/gtktextbuffer.c (paste): Fix pasting to work properly if you
paste into the selection (replaces selection now, previously
crashed or added to selection). Reveals longstanding btree bug -
select multiple lines, middle-click on the selection, boom. This
isn't related to my changes though.
* gtk/gtkentry.c (gtk_entry_move_forward_word): Update to reflect
PangoLogAttrs changes
(gtk_entry_move_backward_word): ditto
* gtk/gtktextlayout.h, gtk/gtktextlayout.c: Make the iter motion
functions return bool whether the iter moved onto a
dereferenceable position.
* gtk/gtktextview.h, gtk/gtktextview.c: Add a bunch of public
functions for motion in terms of display lines.
* gtk/gtktextmark.c (gtk_text_mark_get_buffer): Add function to
get the buffer a mark is inside
Diffstat (limited to 'gtk/gtktextmark.c')
-rw-r--r-- | gtk/gtktextmark.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/gtk/gtktextmark.c b/gtk/gtktextmark.c index 4e20eb300c..e18ea3295e 100644 --- a/gtk/gtktextmark.c +++ b/gtk/gtktextmark.c @@ -179,7 +179,7 @@ gtk_text_mark_get_deleted (GtkTextMark *mark) { GtkTextLineSegment *seg; - g_return_val_if_fail (mark != NULL, FALSE); + g_return_val_if_fail (GTK_IS_TEXT_MARK (mark), FALSE); seg = mark->segment; @@ -189,6 +189,30 @@ gtk_text_mark_get_deleted (GtkTextMark *mark) return seg->body.mark.tree == NULL; } +/** + * gtk_text_mark_get_buffer: + * @mark: a #GtkTextMark + * + * Gets the buffer this mark is located inside, + * or NULL if the mark is deleted. + * + * Return value: the mark's #GtkTextBuffer + **/ +GtkTextBuffer* +gtk_text_mark_get_buffer (GtkTextMark *mark) +{ + GtkTextLineSegment *seg; + + g_return_val_if_fail (GTK_IS_TEXT_MARK (mark), FALSE); + + seg = mark->segment; + + if (seg->body.mark.tree == NULL) + return NULL; + else + return gtk_text_btree_get_buffer (seg->body.mark.tree); +} + /* * Macro that determines the size of a mark segment: */ |