summaryrefslogtreecommitdiff
path: root/lwlib
diff options
context:
space:
mode:
Diffstat (limited to 'lwlib')
-rw-r--r--lwlib/xlwmenu.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/lwlib/xlwmenu.c b/lwlib/xlwmenu.c
index cadd02584af..11dfc2e58db 100644
--- a/lwlib/xlwmenu.c
+++ b/lwlib/xlwmenu.c
@@ -112,6 +112,8 @@ xlwMenuResources[] =
offset(menu.open), XtRCallback, (XtPointer)NULL},
{XtNselect, XtCCallback, XtRCallback, sizeof(XtPointer),
offset(menu.select), XtRCallback, (XtPointer)NULL},
+ {XtNhighlightCallback, XtCCallback, XtRCallback, sizeof(XtPointer),
+ offset(menu.highlight), XtRCallback, (XtPointer)NULL},
{XtNmenu, XtCMenu, XtRPointer, sizeof(XtPointer),
offset(menu.contents), XtRImmediate, (XtPointer)NULL},
{XtNcursor, XtCCursor, XtRCursor, sizeof(Cursor),
@@ -1246,6 +1248,11 @@ remap_menubar (mw)
if (new_selection && !new_selection->enabled)
new_selection = NULL;
+ /* Call callback when the hightlighted item changes. */
+ if (old_selection || new_selection)
+ XtCallCallbackList ((Widget)mw, mw->menu.highlight,
+ (XtPointer) new_selection);
+
/* updates old_state from new_state. It has to be done now because
display_menu (called below) uses the old_stack to know what to display. */
for (i = last_same + 1; i < new_depth; i++)