X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a5040b80be64f5a5eea4066c5535ff4b4f018a83..81f6ea4a29eb815dbed0adea369efdc8fece0269:/src/gtk/stattext.cpp diff --git a/src/gtk/stattext.cpp b/src/gtk/stattext.cpp index da7039c8ed..812a9839b2 100644 --- a/src/gtk/stattext.cpp +++ b/src/gtk/stattext.cpp @@ -7,10 +7,6 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "stattext.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -85,9 +81,6 @@ bool wxStaticText::Create(wxWindow *parent, static const float labelAlignments[] = { 0.0, 1.0, 0.5 }; gtk_misc_set_alignment(GTK_MISC(m_widget), labelAlignments[justify], 0.0); - if (size.x == -1) - gtk_label_set_line_wrap( GTK_LABEL(m_widget), FALSE ); - else gtk_label_set_line_wrap( GTK_LABEL(m_widget), TRUE ); m_parent->DoAddChild( this ); @@ -182,12 +175,14 @@ wxSize wxStaticText::DoGetBestSize() const // Do not return any arbitrary default value... wxASSERT_MSG( m_widget, wxT("wxStaticText::DoGetBestSize called before creation") ); - int width = m_width; #ifndef __WXGTK20__ + // This resets the internal GTK1 size calculation, which + // otherwise would be cashed (incorrectly) gtk_label_set_pattern( GTK_LABEL(m_widget), NULL ); - if (width < 3) width = -1; #endif - gtk_widget_set_usize( m_widget, width, -1 ); + + // GetBestSize is supposed to return unwrapped size + gtk_label_set_line_wrap( GTK_LABEL(m_widget), FALSE ); GtkRequisition req; req.width = -1; @@ -195,6 +190,8 @@ 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 ); + return wxSize (req.width, req.height); }