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