58 if(
OCCUPY(tmp,
Scr->currentvs->wsw->currentwspc)) {
105 return e->xkey.window;
108 return e->xbutton.window;
110 return e->xmotion.window;
113 return e->xcrossing.window;
116 return e->xfocus.window;
118 return e->xkeymap.window;
120 return e->xexpose.window;
122 return e->xgraphicsexpose.drawable;
124 return e->xnoexpose.drawable;
125 case VisibilityNotify:
126 return e->xvisibility.window;
128 return e->xcreatewindow.window;
130 return e->xdestroywindow.window;
132 return e->xunmap.window;
134 return e->xmap.window;
136 return e->xmaprequest.window;
138 return e->xreparent.window;
139 case ConfigureNotify:
140 return e->xconfigure.window;
141 case ConfigureRequest:
142 return e->xconfigurerequest.window;
144 return e->xgravity.window;
146 return e->xresizerequest.window;
147 case CirculateNotify:
148 return e->xcirculate.window;
149 case CirculateRequest:
150 return e->xcirculaterequest.window;
152 return e->xproperty.window;
154 return e->xselectionclear.window;
155 case SelectionRequest:
156 return e->xselectionrequest.requestor;
157 case SelectionNotify:
158 return e->xselection.requestor;
160 return e->xcolormap.window;
162 return e->xclient.window;
173 if(
Scr->Root ==
Scr->RealRoot) {
180 e->xkey.x_root -=
Scr->rootx;
181 e->xkey.y_root -=
Scr->rooty;
182 e->xkey.root =
Scr->Root;
186 e->xbutton.x_root -=
Scr->rootx;
187 e->xbutton.y_root -=
Scr->rooty;
188 e->xbutton.root =
Scr->Root;
191 e->xmotion.x_root -=
Scr->rootx;
192 e->xmotion.y_root -=
Scr->rooty;
193 e->xmotion.root =
Scr->Root;
197 e->xcrossing.x_root -=
Scr->rootx;
198 e->xcrossing.y_root -=
Scr->rooty;
199 e->xcrossing.root =
Scr->Root;
214 (XPointer *)&scr) == XCNOENT) {
238 XWindowAttributes attr;
242 if(XGetWindowAttributes(
dpy, w, &attr)) {
243 for(scrnum = 0; scrnum <
NumScreens; scrnum++) {
262 fprintf(stderr,
"Synthesizing FocusOut on %x\n", w);
265 event.type = FocusOut;
266 event.xfocus.window = w;
267 event.xfocus.mode = NotifyNormal;
268 event.xfocus.detail = NotifyPointer;
270 XPutBackEvent(
dpy, &event);
280 fprintf(stderr,
"Synthesizing FocusIn on %x\n", w);
283 event.type = FocusIn;
284 event.xfocus.window = w;
285 event.xfocus.mode = NotifyNormal;
286 event.xfocus.detail = NotifyPointer;
288 XPutBackEvent(
dpy, &event);
300 Event.xmaprequest.window = w;
int NumScreens
How many Screens are on our display.
ScreenInfo ** ScreenList
List of ScreenInfo structs for each Screen.
void HandleMapRequest(void)
void FixRootEvent(XEvent *e)
static ScreenInfo * FindScreenInfo(Window w)
void SimulateMapRequest(Window w)
void SynthesiseFocusOut(Window w)
void AutoRaiseWindow(TwmWindow *tmp)
void SetRaiseWindow(TwmWindow *tmp)
void SynthesiseFocusIn(Window w)
ScreenInfo * GetTwmScreen(XEvent *event)
void AutoLowerWindow(TwmWindow *tmp)
void AutoPopupMaybe(TwmWindow *tmp)
Window WindowOfEvent(XEvent *e)
void * LookInList(name_list *list_head, const char *name, XClassHint *class)
void OtpLower(TwmWindow *twm_win, WinType wintype)
void OtpRaise(TwmWindow *twm_win, WinType wintype)
Info and control for each X Screen we control.
int screen
Which screen (i.e., the x after the dot in ":0.x").
Info and control for every X Window we take over.
char * name
Current window name. Points into TwmWindow::names.
bool mapped
Is the window mapped ?
XClassHint class
Window class info. From XGetClassHint().
void DeIconify(TwmWindow *tmp_win)
void WMapLower(TwmWindow *win)
void WMapRaise(TwmWindow *win)