]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkassistant.c
GtkEntry: Sanity check the end_pos value in _get_display_text()
[~andy/gtk] / gtk / gtkassistant.c
index cd78b6cc3c2c9f5b5b8b1733065f1504753e6718..3ba9f227be5abc7934d793a7877a92be13638a2d 100644 (file)
@@ -66,6 +66,7 @@
 #include "gtknotebook.h"
 #include "gtkimage.h"
 #include "gtklabel.h"
+#include "gtksettings.h"
 #include "gtksizegroup.h"
 #include "gtksizerequest.h"
 #include "gtkstock.h"
@@ -718,6 +719,10 @@ set_current_page (GtkAssistant *assistant,
   priv->current_page = (GtkAssistantPage *)g_list_nth_data (priv->pages, page_num);
 
   g_signal_emit (assistant, signals [PREPARE], 0, priv->current_page->page);
+  /* do not continue if the prepare signal handler has already changed the
+   * current page */
+  if (priv->current_page != (GtkAssistantPage *)g_list_nth_data (priv->pages, page_num))
+    return;
 
   update_title_state (assistant);
 
@@ -1004,11 +1009,11 @@ gtk_assistant_init (GtkAssistant *assistant)
   gtk_button_set_image (GTK_BUTTON (priv->forward),
       gtk_image_new_from_stock (GTK_STOCK_GO_FORWARD, GTK_ICON_SIZE_BUTTON));
   priv->back    = gtk_button_new_with_mnemonic (_("Go _Back"));
-  gtk_button_set_image (GTK_BUTTON (priv->forward),
+  gtk_button_set_image (GTK_BUTTON (priv->back),
       gtk_image_new_from_stock (GTK_STOCK_GO_BACK, GTK_ICON_SIZE_BUTTON));
   priv->cancel  = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
   priv->last    = gtk_button_new_with_mnemonic (_("_Finish"));
-  gtk_button_set_image (GTK_BUTTON (priv->forward),
+  gtk_button_set_image (GTK_BUTTON (priv->last),
       gtk_image_new_from_stock (GTK_STOCK_GOTO_LAST, GTK_ICON_SIZE_BUTTON));
   gtk_widget_set_can_default (priv->close, TRUE);
   gtk_widget_set_can_default (priv->apply, TRUE);