diff -urN xvkbd-2.7a/xvkbd.c xvkbd-2.7a-ark/xvkbd.c --- xvkbd-2.7a/xvkbd.c 2005-05-06 22:46:02.000000000 +0000 +++ xvkbd-2.7a-ark/xvkbd.c 2005-06-09 16:34:30.000000000 +0000 @@ -2498,6 +2498,31 @@ XtMapWidget(toplevel); + if(appres.always_on_top){ + XEvent e; + e.xany.type = ClientMessage; + e.xany.window = XtWindow(toplevel); + e.xclient.message_type = XInternAtom(dpy, "_NET_WM_STATE", False); + e.xclient.format = 32; + e.xclient.data.l[0] = 1 /* NET_WM_STATE_ADD */; + e.xclient.data.l[1] = XInternAtom(dpy, "_NET_WM_STATE_ABOVE", False); + e.xclient.data.l[2] = 0l; + e.xclient.data.l[3] = 0l; + e.xclient.data.l[4] = 0l; + XSendEvent(dpy, DefaultRootWindow(dpy), 0, SubstructureNotifyMask|SubstructureRedirectMask, &e); + + e.xany.type = ClientMessage; + e.xany.window = XtWindow(toplevel); + e.xclient.message_type = XInternAtom(dpy, "_NET_WM_STATE", False); + e.xclient.format = 32; + e.xclient.data.l[0] = 1 /* NET_WM_STATE_ADD */; + e.xclient.data.l[1] = XInternAtom(dpy, "_NET_WM_STATE_STAYS_ON_TOP", False); + e.xclient.data.l[2] = 0l; + e.xclient.data.l[3] = 0l; + e.xclient.data.l[4] = 0l; + XSendEvent(dpy, DefaultRootWindow(dpy), 0, SubstructureNotifyMask|SubstructureRedirectMask, &e); + } + if (wm_delete_window == None) wm_delete_window = XInternAtom(dpy, "WM_DELETE_WINDOW", FALSE); XSetWMProtocols(dpy, XtWindow(toplevel), &wm_delete_window, 1);