mirror of
https://github.com/vale981/spectrwm
synced 2025-03-05 09:51:38 -05:00
Make sure we unmange windows in non active workspaces; this sometimes
lead to leftover blank holes. Fix some non c89 shit too.
This commit is contained in:
parent
9a3cc89493
commit
33babfbdd7
1 changed files with 8 additions and 12 deletions
20
scrotwm.c
20
scrotwm.c
|
@ -3165,10 +3165,7 @@ unmanage_window(struct ws_win *win)
|
|||
|
||||
DNPRINTF(SWM_D_MISC, "unmanage_window: %lu\n", win->id);
|
||||
|
||||
/* don't unmanage if we are switching workspaces */
|
||||
ws = win->ws;
|
||||
if (ws->restack)
|
||||
return;
|
||||
|
||||
/* find a window to focus */
|
||||
if (ws->focus == win)
|
||||
|
@ -3312,23 +3309,22 @@ focusin(XEvent *e)
|
|||
void
|
||||
focusout(XEvent *e)
|
||||
{
|
||||
struct swm_screen *s;
|
||||
Window rr, cr;
|
||||
int x, y, wx, wy;
|
||||
unsigned int mask;
|
||||
|
||||
DNPRINTF(SWM_D_EVENT, "focusout: window: %lu\n", e->xfocus.window);
|
||||
|
||||
if (cur_focus && cur_focus->ws->r &&
|
||||
cur_focus->id == e->xfocus.window) {
|
||||
struct swm_screen *s = cur_focus->ws->r->s;
|
||||
Window rr, cr;
|
||||
int x, y, wx, wy;
|
||||
unsigned int mask;
|
||||
|
||||
/* Try to detect synergy hiding the cursor. */
|
||||
s = cur_focus->ws->r->s;
|
||||
if (XQueryPointer(display, cur_focus->id,
|
||||
&rr, &cr, &x, &y, &wx, &wy, &mask) != False &&
|
||||
cr == 0 && !mask &&
|
||||
x == DisplayWidth(display, s->idx)/2 &&
|
||||
y == DisplayHeight(display, s->idx)/2) {
|
||||
x == DisplayWidth(display, s->idx) / 2 &&
|
||||
y == DisplayHeight(display, s->idx) / 2)
|
||||
unfocus_win(cur_focus);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue