allow closing of help windows with WM x-button
This commit is contained in:
parent
900c188907
commit
46261c4eae
|
|
@ -1,3 +1,6 @@
|
||||||
|
2009-02-20 Holger Vogt
|
||||||
|
* x11disp.c: allow closing of help windows with WM x-button
|
||||||
|
|
||||||
2009-02-14 Dietmar Warning
|
2009-02-14 Dietmar Warning
|
||||||
* src/spicelib/parser/inpdomod.c: map level 10 to bsimsoi4 and map ancient
|
* src/spicelib/parser/inpdomod.c: map level 10 to bsimsoi4 and map ancient
|
||||||
version 4.0 and 4.1 of bsim4 to available version 4.2
|
version 4.0 and 4.1 of bsim4 to available version 4.2
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,24 @@ static bool started = FALSE;
|
||||||
static topic *topics = NULL;
|
static topic *topics = NULL;
|
||||||
void newtopic(Widget w, caddr_t client_data, caddr_t call_data), delete(Widget w, caddr_t client_data, caddr_t call_data), quit(Widget w, caddr_t client_data, caddr_t call_data);
|
void newtopic(Widget w, caddr_t client_data, caddr_t call_data), delete(Widget w, caddr_t client_data, caddr_t call_data), quit(Widget w, caddr_t client_data, caddr_t call_data);
|
||||||
static void sputline(char *buf, char *s);
|
static void sputline(char *buf, char *s);
|
||||||
|
/* atoms for catching window delet by WM x-button */
|
||||||
|
static Atom atom_wm_delete_window;
|
||||||
|
static Atom atom_wm_protocols;
|
||||||
|
static Display *display;
|
||||||
|
|
||||||
|
/* callback function for catching window deletion by WM x-button */
|
||||||
|
static void handle_wm_messages(Widget w, XtPointer client_data, XEvent *event, Boolean *cont) {
|
||||||
|
topic *top = (topic *) client_data;
|
||||||
|
|
||||||
|
if (event->type == ClientMessage
|
||||||
|
&& event->xclient.message_type == atom_wm_protocols
|
||||||
|
&& event->xclient.data.l[0] == atom_wm_delete_window)
|
||||||
|
{
|
||||||
|
hlp_killfamily(top);
|
||||||
|
hlp_fixchildren(top);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Create a new window... */
|
/* Create a new window... */
|
||||||
bool
|
bool
|
||||||
|
|
@ -191,6 +209,14 @@ hlp_xdisplay(topic *top)
|
||||||
top->winlink = topics;
|
top->winlink = topics;
|
||||||
topics = top;
|
topics = top;
|
||||||
|
|
||||||
|
|
||||||
|
/* WM_DELETE_WINDOW protocol */
|
||||||
|
display = XtDisplay(top->shellwidget);
|
||||||
|
atom_wm_protocols = XInternAtom(display, "WM_PROTOCOLS", False);
|
||||||
|
atom_wm_delete_window = XInternAtom(display, "WM_DELETE_WINDOW", False);
|
||||||
|
XtAddEventHandler(top->shellwidget, NoEventMask, True, handle_wm_messages, top);
|
||||||
|
XSetWMProtocols(display, XtWindow(top->shellwidget), &atom_wm_delete_window, 1);
|
||||||
|
|
||||||
return (TRUE);
|
return (TRUE);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue