XmStringFree (val_string);
}
+static void
+xm_safe_update_label (widget_instance* instance, Widget widget, widget_value* val)
+{
+ /* Don't clobber non-labels. */
+ if (XtIsSubclass (widget, xmLabelWidgetClass))
+ xm_update_label (instance, widget, val);
+}
+
#endif /* defined (LWLIB_DIALOGS_MOTIF) || defined (LWLIB_MENUBARS_MOTIF) */
\f/* update of list */
XtAddCallback (widget, XmNactivateCallback, xm_generic_callback, instance);
}
+#ifdef LWLIB_WIDGETS_MOTIF
static void
xm_update_progress (widget_instance* instance, Widget scale,
widget_value* val)
XtSetValues (scale, al, 1);
}
+#endif /* LWLIB_WIDGETS_MOTIF */
#ifdef LWLIB_MENUBARS_MOTIF
XtSetArg (al [ac], XmNsubMenuId, menu); ac++;
button = XmCreateCascadeButton (widget, cur->name, al, ac);
- xm_update_label (instance, button, cur);
+ xm_safe_update_label (instance, button, cur);
XtAddCallback (button, XmNcascadingCallback, xm_pull_down_callback,
(XtPointer)instance);
else
button = XmCreatePushButtonGadget (widget, cur->name, al, ac);
- xm_update_label (instance, button, cur);
+ xm_safe_update_label (instance, button, cur);
/* don't add a callback to a simple label */
if (cur->type == TOGGLE_TYPE || cur->type == RADIO_TYPE)
/* update the menu button as a label. */
if (val->change >= VISIBLE_CHANGE)
{
- xm_update_label (instance, widget, val);
+ xm_safe_update_label (instance, widget, val);
+
if (XtClass (widget) == xmToggleButtonWidgetClass
|| XtClass (widget) == xmToggleButtonGadgetClass)
{
#if defined (LWLIB_DIALOGS_MOTIF) || defined (LWLIB_MENUBARS_MOTIF) || defined (LWLIB_WIDGETS_MOTIF)
/* Common to all label like widgets */
- if (XtIsSubclass (widget, xmLabelWidgetClass))
- xm_update_label (instance, widget, val);
+ xm_safe_update_label (instance, widget, val);
#endif
class = XtClass (widget);
/* Class specific things */
xm_update_scrollbar (instance, widget, val);
}
#endif
+#ifdef LWLIB_WIDGETS_MOTIF
else if (class == xmScaleWidgetClass)
{
xm_update_progress (instance, widget, val);
}
+#endif
/* Lastly update our global arg values. */
if (val->args && val->args->nargs)
XtSetValues (widget, val->args->args, val->args->nargs);