From f980eed4c1b49393fb46f04538f2a9046cdfab2b Mon Sep 17 00:00:00 2001 From: Po Lu Date: Tue, 1 Mar 2022 19:15:46 +0800 Subject: [PATCH] Fix crashes and other bugs on LessTif * lwlib/lwlib-Xm.c (make_menu_in_widget): XmIsRowColumn is broken on the latest LessTif release, so avoid that here. * src/xfns.c (x_window): Add PropertyChangeMask which LessTif doesn't do itself. --- lwlib/lwlib-Xm.c | 2 ++ src/xfns.c | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/lwlib/lwlib-Xm.c b/lwlib/lwlib-Xm.c index 1b8675c0eda..a1114d42556 100644 --- a/lwlib/lwlib-Xm.c +++ b/lwlib/lwlib-Xm.c @@ -496,9 +496,11 @@ make_menu_in_widget (widget_instance* instance, ; children = (Widget*)(void*)XtMalloc (num_children * sizeof (Widget)); +#ifndef LESSTIF_VERSION /* WIDGET should be a RowColumn. */ if (!XmIsRowColumn (widget)) emacs_abort (); +#endif /* Determine whether WIDGET is a menu bar. */ type = -1; diff --git a/src/xfns.c b/src/xfns.c index 65218b3fc07..09bad715025 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -3803,8 +3803,13 @@ x_window (struct frame *f, long window_prompting) FRAME_DISPLAY_INFO (f)->Xatom_wm_protocols, XA_ATOM, 32, PropModeAppend, NULL, 0); +#if !defined USE_MOTIF || !defined HAVE_XINPUT2 /* Make all the standard events reach the Emacs frame. */ attributes.event_mask = STANDARD_EVENT_SET; +#else + /* This is used for Motif menus. */ + attributes.event_mask = STANDARD_EVENT_SET | PropertyChangeMask; +#endif #ifdef HAVE_X_I18N if (FRAME_XIC (f)) -- 2.39.5