[gtk+/gtk-3-22] entry: make sure priv->current_pos is valid



commit d9170e19782707e719f63b4aa8417a30917d4fa5
Author: Timm Bäder <mail baedert org>
Date:   Mon Mar 6 18:41:12 2017 +0100

    entry: make sure priv->current_pos is valid
    
    We can e.g. get the entry dispose()d and a focus_out event after that
    (because the toplevel unsets the focus which previously was the entry).
    We then later use priv->current_pos in a call to pango API which makes
    sure the given index is valid for the given layout. Since we lazily
    create a GtkEntryBuffer in get_buffer() and a PangoLayout lazily in
    gtk_entry_create_layout, these 2 are always valid but don't match
    priv->current_pos in this situation.
    
    Fix this by resetting priv->current-pos in dispose().
    
    https://bugzilla.gnome.org/show_bug.cgi?id=785255

 gtk/gtkentry.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c
index 2158613..803024a 100644
--- a/gtk/gtkentry.c
+++ b/gtk/gtkentry.c
@@ -2917,6 +2917,8 @@ gtk_entry_dispose (GObject *object)
   gtk_entry_set_icon_tooltip_markup (entry, GTK_ENTRY_ICON_SECONDARY, NULL);
   gtk_entry_set_completion (entry, NULL);
 
+  priv->current_pos = 0;
+
   if (priv->buffer)
     {
       buffer_disconnect_signals (entry);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]