Mercurial > emacs
changeset 34039:88c42020e441
(xm_arm_callback): Handle case that W is null;
also see comment there.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Thu, 30 Nov 2000 12:50:08 +0000 |
parents | 743849495725 |
children | dbe2757d6cb8 |
files | lwlib/lwlib-Xm.c |
diffstat | 1 files changed, 21 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/lwlib/lwlib-Xm.c Thu Nov 30 12:41:39 2000 +0000 +++ b/lwlib/lwlib-Xm.c Thu Nov 30 12:50:08 2000 +0000 @@ -265,26 +265,32 @@ widget_value *wv = (widget_value *) client_data; widget_instance *instance; - /* Get the id of the menu bar or popup menu this widget is in. */ - while (1) + /* During the pretest of 21.1, there was a case where this callback + was called with a null widget on hpux 10.2. I think that's + likely a bug in the Motif lib there. */ + if (w != None) { - if (XmIsRowColumn (w)) + /* Get the id of the menu bar or popup menu this widget is in. */ + while (1) { - unsigned char type = 0xff; + if (XmIsRowColumn (w)) + { + unsigned char type = 0xff; - XtVaGetValues (w, XmNrowColumnType, &type, NULL); - if (type == XmMENU_BAR || type == XmMENU_POPUP) - break; + XtVaGetValues (w, XmNrowColumnType, &type, NULL); + if (type == XmMENU_BAR || type == XmMENU_POPUP) + break; + } + + w = XtParent (w); } - w = XtParent (w); - } - - instance = lw_get_widget_instance (w); - if (instance && instance->info->highlight_cb) - { - call_data = cbs->reason == XmCR_DISARM ? NULL : wv; - instance->info->highlight_cb (w, instance->info->id, call_data); + instance = lw_get_widget_instance (w); + if (instance && instance->info->highlight_cb) + { + call_data = cbs->reason == XmCR_DISARM ? NULL : wv; + instance->info->highlight_cb (w, instance->info->id, call_data); + } } }