Mercurial > emacs
comparison lwlib/lwlib-Xlw.c @ 53564:609ef1718642
Changes for lucid popup menus (keyboard traversal enabled) and dialogs
(Xaw and Xm pop down on ESC).
author | Jan Djärv <jan.h.d@swipnet.se> |
---|---|
date | Mon, 12 Jan 2004 01:45:22 +0000 |
parents | 695cf19ef79e |
children | 23a17af379b1 |
comparison
equal
deleted
inserted
replaced
53563:110584d2405e | 53564:609ef1718642 |
---|---|
178 popup_shell, al, ac); | 178 popup_shell, al, ac); |
179 | 179 |
180 XtAddCallback (widget, XtNselect, pick_hook, (XtPointer)instance); | 180 XtAddCallback (widget, XtNselect, pick_hook, (XtPointer)instance); |
181 XtAddCallback (widget, XtNhighlightCallback, highlight_hook, | 181 XtAddCallback (widget, XtNhighlightCallback, highlight_hook, |
182 (XtPointer)instance); | 182 (XtPointer)instance); |
183 | |
183 return popup_shell; | 184 return popup_shell; |
184 } | 185 } |
185 | 186 |
186 widget_creation_entry | 187 widget_creation_entry |
187 xlw_creation_table [] = | 188 xlw_creation_table [] = |
249 void | 250 void |
250 xlw_popup_menu (widget, event) | 251 xlw_popup_menu (widget, event) |
251 Widget widget; | 252 Widget widget; |
252 XEvent *event; | 253 XEvent *event; |
253 { | 254 { |
254 XButtonPressedEvent dummy; | |
255 XlwMenuWidget mw; | 255 XlwMenuWidget mw; |
256 | 256 |
257 if (!XtIsShell (widget)) | 257 if (!XtIsShell (widget)) |
258 return; | 258 return; |
259 | 259 |
260 mw = (XlwMenuWidget)((CompositeWidget)widget)->composite.children [0]; | 260 mw = (XlwMenuWidget)((CompositeWidget)widget)->composite.children [0]; |
261 | 261 |
262 if (event) | 262 if (event) |
263 pop_up_menu (mw, (XButtonPressedEvent*) event); | 263 XtCallActionProc ((Widget) mw, "start", event, NULL, 0); |
264 else | 264 else |
265 { | 265 { |
266 dummy.type = ButtonPress; | 266 XEvent dummy; |
267 dummy.serial = 0; | 267 XButtonPressedEvent *bd = &dummy.xbutton; |
268 dummy.send_event = 0; | 268 |
269 dummy.display = XtDisplay (widget); | 269 bd->type = ButtonPress; |
270 dummy.window = XtWindow (XtParent (widget)); | 270 bd->serial = 0; |
271 dummy.time = CurrentTime; | 271 bd->send_event = 0; |
272 dummy.button = 0; | 272 bd->display = XtDisplay (widget); |
273 XQueryPointer (dummy.display, dummy.window, &dummy.root, | 273 bd->window = XtWindow (XtParent (widget)); |
274 &dummy.subwindow, &dummy.x_root, &dummy.y_root, | 274 bd->time = CurrentTime; |
275 &dummy.x, &dummy.y, &dummy.state); | 275 bd->button = 0; |
276 | 276 XQueryPointer (bd->display, bd->window, &bd->root, |
277 pop_up_menu (mw, &dummy); | 277 &bd->subwindow, &bd->x_root, &bd->y_root, |
278 &bd->x, &bd->y, &bd->state); | |
279 | |
280 XtCallActionProc ((Widget) mw, "start", &dummy, NULL, 0); | |
278 } | 281 } |
279 } | 282 } |
280 | 283 |
281 /* Destruction of instances */ | 284 /* Destruction of instances */ |
282 void | 285 void |