]> git.saurik.com Git - wxWidgets.git/commitdiff
don't call gtk_label_set_line_wrap() from DoGetBestSize() as this results in an infin...
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 30 Mar 2007 12:14:23 +0000 (12:14 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 30 Mar 2007 12:14:23 +0000 (12:14 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45131 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/changes.txt
src/gtk/stattext.cpp

index e3f0d309f9fcd8c9540e4474add85fadb0f08def..b4178c01a5a3d938eadaad58cd9d7fffada840ea 100644 (file)
@@ -123,9 +123,12 @@ wxMSW:
 - Don't lose combobox text when it's opened and closed (Kolya Kosenko)
 - Corrected GetChecked() for events from checkable menu items (smanders)
 - Fixed popup menus under Windows NT 4
+- Fixed bug in wxThread::Wait() in console applications introduced in 2.8.3
+- Compilation fixed with WXWIN_COMPATIBILITY_2_6==0
 
 wxGTK:
 
+- Fix infinite loop when adding a wxStaticText control to a toolbar
 - Fix wxNO_BORDER style for wxRadioBox (David Hart)
 
 
index 6fe31c64c634923521cbeff0e98b69b1503d2f25..67eec8eef5132a98c127369d6b3f2fae65d12af4 100644 (file)
@@ -178,8 +178,11 @@ wxSize wxStaticText::DoGetBestSize() const
     // Do not return any arbitrary default value...
     wxASSERT_MSG( m_widget, wxT("wxStaticText::DoGetBestSize called before creation") );
 
-    // GetBestSize is supposed to return unwrapped size
-    gtk_label_set_line_wrap( GTK_LABEL(m_widget), FALSE );
+    // GetBestSize is supposed to return unwrapped size but calling
+    // gtk_label_set_line_wrap() from here is a bad idea as it queues another
+    // size request by calling gtk_widget_queue_resize() and we end up in
+    // infinite loop sometimes (notably when the control is in a toolbar)
+    GTK_LABEL(m_widget)->wrap = FALSE;
 
     GtkRequisition req;
     req.width = -1;
@@ -187,7 +190,7 @@ wxSize wxStaticText::DoGetBestSize() const
     (* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(m_widget) )->size_request )
         (m_widget, &req );
 
-    gtk_label_set_line_wrap( GTK_LABEL(m_widget), TRUE );
+    GTK_LABEL(m_widget)->wrap = TRUE; // restore old value
 
     // Adding 1 to width to workaround GTK sometimes wrapping the text needlessly
     return wxSize (req.width+1, req.height);