[gtk+] Fix an infinite loop in gtk_dialog_map()



commit 87f48634f45ac6de1959971dd5dee99a59bbad8c
Author: Matthias Clasen <mclasen redhat com>
Date:   Mon Mar 8 10:36:11 2010 -0500

    Fix an infinite loop in gtk_dialog_map()
    
    The new focus handling with links in labels tripped up the code
    that tries to avoid focussing labels. Bug 612066

 gtk/gtkdialog.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)
---
diff --git a/gtk/gtkdialog.c b/gtk/gtkdialog.c
index 04f2539..d6b7bcd 100644
--- a/gtk/gtkdialog.c
+++ b/gtk/gtkdialog.c
@@ -414,12 +414,11 @@ gtk_dialog_map (GtkWidget *widget)
 	  if (first_focus == NULL)
 	    first_focus = window->focus_widget;
 	  else if (first_focus == window->focus_widget)
-	    break;
-
+            break;
 	  if (!GTK_IS_LABEL (window->focus_widget))
 	    break;
-	  else
-	    gtk_label_select_region (GTK_LABEL (window->focus_widget), 0, 0);
+          if (!gtk_label_get_current_uri (GTK_LABEL (window->focus_widget)))
+            gtk_label_select_region (GTK_LABEL (window->focus_widget), 0, 0);
 	}
       while (TRUE);
 



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