bool MenuCallBack(t_x11 *x11,XEvent *event, Window w, void *data) { t_menu *m; m=(t_menu *)data; switch(event->type) { case Expose: /* Nothing to be done */ if (m->bGrabbed) m->bGrabbed= GrabOK(stderr,XGrabPointer(x11->disp,m->wd.self,True, ButtonReleaseMask,GrabModeAsync, GrabModeAsync,m->wd.self,None,CurrentTime)); break; case ButtonRelease: hide_menu(x11,m); break; case ClientMessage: event->xclient.window=m->Parent; XSendEvent(x11->disp,m->Parent,True,0,event); break; default: break; } return FALSE; }
static void EnterDlg(t_dlg *dlg) { if (dlg->flags & DLG_APPLMODAL) dlg->bGrab=GrabOK(dlg->x11->console, XGrabPointer(dlg->x11->disp,dlg->win.self, True,0,GrabModeAsync,GrabModeAsync, dlg->win.self,None,CurrentTime)); dlg->x11->Flush(dlg->x11); }