[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lwlib/xlwmenu.c,v
From: |
Jan Djärv |
Subject: |
[Emacs-diffs] Changes to emacs/lwlib/xlwmenu.c,v |
Date: |
Mon, 01 Jan 2007 15:20:11 +0000 |
CVSROOT: /cvsroot/emacs
Module name: emacs
Changes by: Jan Djärv <jhd> 07/01/01 15:20:11
Index: xlwmenu.c
===================================================================
RCS file: /cvsroot/emacs/emacs/lwlib/xlwmenu.c,v
retrieving revision 1.71
retrieving revision 1.72
diff -u -b -r1.71 -r1.72
--- xlwmenu.c 23 May 2006 07:19:36 -0000 1.71
+++ xlwmenu.c 1 Jan 2007 15:20:11 -0000 1.72
@@ -161,6 +161,10 @@
offset(menu.select), XtRCallback, (XtPointer)NULL},
{XtNhighlightCallback, XtCCallback, XtRCallback, sizeof(XtPointer),
offset(menu.highlight), XtRCallback, (XtPointer)NULL},
+ {XtNenterCallback, XtCCallback, XtRCallback, sizeof(XtPointer),
+ offset(menu.enter), XtRCallback, (XtPointer)NULL},
+ {XtNleaveCallback, XtCCallback, XtRCallback, sizeof(XtPointer),
+ offset(menu.leave), XtRCallback, (XtPointer)NULL},
{XtNmenu, XtCMenu, XtRPointer, sizeof(XtPointer),
offset(menu.contents), XtRImmediate, (XtPointer)NULL},
{XtNcursor, XtCCursor, XtRCursor, sizeof(Cursor),
@@ -1188,6 +1192,15 @@
*hit_return = val;
else
no_return = 1;
+ if (mw->menu.inside_entry != val)
+ {
+ if (mw->menu.inside_entry)
+ XtCallCallbackList ((Widget)mw, mw->menu.leave,
+ (XtPointer) mw->menu.inside_entry);
+ mw->menu.inside_entry = val;
+ XtCallCallbackList ((Widget)mw, mw->menu.enter,
+ (XtPointer) mw->menu.inside_entry);
+ }
}
if (horizontal_p)
@@ -1465,6 +1478,7 @@
int i;
XPoint relative_pos;
window_state* ws;
+ int inside = 0;
*val = NULL;
@@ -1474,6 +1488,7 @@
ws = &mw->menu.windows [i];
if (ws && motion_event_is_in_menu (mw, ev, i, &relative_pos))
{
+ inside = 1;
display_menu (mw, i, True, NULL, &relative_pos, val, NULL, NULL);
if (*val)
@@ -1483,6 +1498,15 @@
}
}
}
+
+ if (!inside)
+ {
+ if (mw->menu.inside_entry != NULL)
+ XtCallCallbackList ((Widget)mw, mw->menu.leave,
+ (XtPointer) mw->menu.inside_entry);
+ mw->menu.inside_entry = NULL;
+ }
+
return False;
}
@@ -2416,6 +2440,7 @@
next_release_must_exit = 0;
+ mw->menu.inside_entry = NULL;
XtCallCallbackList ((Widget)mw, mw->menu.open, NULL);
if (XtIsShell (XtParent ((Widget)mw)))
- [Emacs-diffs] Changes to emacs/lwlib/xlwmenu.c,v,
Jan Djärv <=