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:
parent
2ce89389bf
commit
3fe5be6e01
@ -60,6 +60,7 @@ bool wxStaticText::Create(wxWindow *parent, wxWindowID id,
|
||||
XmNalignment, ((style & wxALIGN_RIGHT) ? XmALIGNMENT_END :
|
||||
((style & wxALIGN_CENTRE) ? XmALIGNMENT_CENTER :
|
||||
XmALIGNMENT_BEGINNING)),
|
||||
XmNrecomputeSize, ((style & wxST_NO_AUTORESIZE) ? TRUE : FALSE),
|
||||
NULL);
|
||||
|
||||
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.
|
||||
Widget widget = (Widget) m_labelWidget;
|
||||
|
||||
if (GetWindowStyle() & wxST_NO_AUTORESIZE)
|
||||
{
|
||||
XtUnmanageChild(widget);
|
||||
Dimension width, height;
|
||||
XtVaGetValues(widget, XmNwidth, &width, XmNheight, &height, NULL);
|
||||
|
||||
XtVaSetValues(widget,
|
||||
XmNlabelString, label_str(),
|
||||
XmNlabelType, XmSTRING,
|
||||
NULL);
|
||||
XtVaSetValues(widget,
|
||||
XmNwidth, width,
|
||||
XmNheight, height,
|
||||
NULL);
|
||||
XtManageChild(widget);
|
||||
}
|
||||
else
|
||||
{
|
||||
XtVaSetValues(widget,
|
||||
XmNlabelString, label_str(),
|
||||
XmNlabelType, XmSTRING,
|
||||
NULL);
|
||||
}
|
||||
}
|
||||
|
||||
#endif // wxUSE_STATTEXT
|
||||
|
Loading…
Reference in New Issue
Block a user