use XmNrecomputeSize instead of manually resizing the label (and unmanaging/managing it in process resulting in flicker) (patch 1420899)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37343 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -60,6 +60,7 @@ bool wxStaticText::Create(wxWindow *parent, wxWindowID id,
|
|||||||
XmNalignment, ((style & wxALIGN_RIGHT) ? XmALIGNMENT_END :
|
XmNalignment, ((style & wxALIGN_RIGHT) ? XmALIGNMENT_END :
|
||||||
((style & wxALIGN_CENTRE) ? XmALIGNMENT_CENTER :
|
((style & wxALIGN_CENTRE) ? XmALIGNMENT_CENTER :
|
||||||
XmALIGNMENT_BEGINNING)),
|
XmALIGNMENT_BEGINNING)),
|
||||||
|
XmNrecomputeSize, ((style & wxST_NO_AUTORESIZE) ? TRUE : FALSE),
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
m_mainWidget = borderWidget ? borderWidget : m_labelWidget;
|
m_mainWidget = borderWidget ? borderWidget : m_labelWidget;
|
||||||
@@ -79,29 +80,10 @@ void wxStaticText::SetLabel(const wxString& label)
|
|||||||
// This variable means we don't need so many casts later.
|
// This variable means we don't need so many casts later.
|
||||||
Widget widget = (Widget) m_labelWidget;
|
Widget widget = (Widget) m_labelWidget;
|
||||||
|
|
||||||
if (GetWindowStyle() & wxST_NO_AUTORESIZE)
|
|
||||||
{
|
|
||||||
XtUnmanageChild(widget);
|
|
||||||
Dimension width, height;
|
|
||||||
XtVaGetValues(widget, XmNwidth, &width, XmNheight, &height, NULL);
|
|
||||||
|
|
||||||
XtVaSetValues(widget,
|
XtVaSetValues(widget,
|
||||||
XmNlabelString, label_str(),
|
XmNlabelString, label_str(),
|
||||||
XmNlabelType, XmSTRING,
|
XmNlabelType, XmSTRING,
|
||||||
NULL);
|
NULL);
|
||||||
XtVaSetValues(widget,
|
|
||||||
XmNwidth, width,
|
|
||||||
XmNheight, height,
|
|
||||||
NULL);
|
|
||||||
XtManageChild(widget);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
XtVaSetValues(widget,
|
|
||||||
XmNlabelString, label_str(),
|
|
||||||
XmNlabelType, XmSTRING,
|
|
||||||
NULL);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // wxUSE_STATTEXT
|
#endif // wxUSE_STATTEXT
|
||||||
|
Reference in New Issue
Block a user