kinda fix edge case unmapping/destroying window immediately after switching from empty desktop
This commit is contained in:
parent
e94234055d
commit
53bd15ab89
4 changed files with 132 additions and 7 deletions
8
client.c
8
client.c
|
@ -429,10 +429,14 @@ Window getrevert(Client* c) {
|
||||||
} else {
|
} else {
|
||||||
m = getmonitorbyclient(c);
|
m = getmonitorbyclient(c);
|
||||||
for (cc = c->revert; cc && cc->revert; cc = cc->revert) {
|
for (cc = c->revert; cc && cc->revert; cc = cc->revert) {
|
||||||
if (getmonitorbyclient(cc) == m) {
|
#ifdef AUTOSTICK
|
||||||
|
if (getmonitorbyclient(cc) == m && normal(cc) && !isautostick(cc)) {
|
||||||
|
#else
|
||||||
|
if (getmonitorbyclient(cc) == m && normal(cc)) {
|
||||||
|
#endif
|
||||||
return cc->window;
|
return cc->window;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
3
event.c
3
event.c
|
@ -256,7 +256,6 @@ void mapreq(XMapRequestEvent* e) {
|
||||||
|
|
||||||
void unmap(XUnmapEvent* e) {
|
void unmap(XUnmapEvent* e) {
|
||||||
Client *c, *revertc;
|
Client *c, *revertc;
|
||||||
Window revert;
|
|
||||||
int m;
|
int m;
|
||||||
|
|
||||||
curtime = CurrentTime;
|
curtime = CurrentTime;
|
||||||
|
@ -354,7 +353,6 @@ void destroy(Window w) {
|
||||||
int i;
|
int i;
|
||||||
Client *c, *revertc;
|
Client *c, *revertc;
|
||||||
Window revert;
|
Window revert;
|
||||||
int monitor;
|
|
||||||
|
|
||||||
curtime = CurrentTime;
|
curtime = CurrentTime;
|
||||||
c = getclient(w, 0);
|
c = getclient(w, 0);
|
||||||
|
@ -362,7 +360,6 @@ void destroy(Window w) {
|
||||||
return;
|
return;
|
||||||
|
|
||||||
revert = getrevert(c);
|
revert = getrevert(c);
|
||||||
monitor = getmonitorbyclient(c);
|
|
||||||
|
|
||||||
if (numvirtuals > 1)
|
if (numvirtuals > 1)
|
||||||
for (i = 0; i < numvirtuals; i++)
|
for (i = 0; i < numvirtuals; i++)
|
||||||
|
|
6
menu.c
6
menu.c
|
@ -311,16 +311,18 @@ void move(Client* c, int but) {
|
||||||
|
|
||||||
void delete (Client* c, int shift) {
|
void delete (Client* c, int shift) {
|
||||||
Client* revertc;
|
Client* revertc;
|
||||||
|
int m;
|
||||||
|
|
||||||
if (c == 0)
|
if (c == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (c == current) {
|
if (c == current) {
|
||||||
|
m = getmonitorbyclient(c);
|
||||||
if (revertc = getclient(getrevert(c), 0)) {
|
if (revertc = getclient(getrevert(c), 0)) {
|
||||||
top(revertc);
|
top(revertc);
|
||||||
active(revertc);
|
active(revertc);
|
||||||
} else {
|
} else {
|
||||||
nofocus();
|
shuffleonmonitor(m);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -349,7 +351,7 @@ void hide(Client* c) {
|
||||||
top(revertc);
|
top(revertc);
|
||||||
active(revertc);
|
active(revertc);
|
||||||
} else {
|
} else {
|
||||||
nofocus();
|
shuffleonmonitor(monitor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (reversehide) {
|
if (reversehide) {
|
||||||
|
|
122
ryudo.log
Normal file
122
ryudo.log
Normal file
|
@ -0,0 +1,122 @@
|
||||||
|
modprobe cpufreq_stats failedLoaded 0 prior measurements
|
||||||
|
RAPL device for cpu 0
|
||||||
|
RAPL Using PowerCap Sysfs : Domain Mask d
|
||||||
|
RAPL device for cpu 0
|
||||||
|
RAPL Using PowerCap Sysfs : Domain Mask d
|
||||||
|
Devfreq not enabled
|
||||||
|
glob returned GLOB_ABORTED
|
||||||
|
darkhttpd: bind(port 9001): Address already in use
|
||||||
|
9pserve: announce unix!/tmp/ns.nilix.:0/plumb: Address already in use
|
||||||
|
plumber: post9pservice plumb: 9pserve failed
|
||||||
|
Gtk-Message: 22:07:46.335: Failed to load module "colorreload-gtk-module"
|
||||||
|
Gtk-Message: 22:07:46.335: Failed to load module "window-decorations-gtk-module"
|
||||||
|
Warning: Missing charsets in String to FontSet conversion
|
||||||
|
draw_border 0x55f1803bf7a0 pixel 0 active 0 hold 0
|
||||||
|
draw_border 0x55f1803c0970 pixel 0 active 0 hold 0
|
||||||
|
Gtk-Message: 22:07:46.445: Failed to load module "colorreload-gtk-module"
|
||||||
|
Gtk-Message: 22:07:46.445: Failed to load module "window-decorations-gtk-module"
|
||||||
|
Could not find Xinerama screen number 1
|
||||||
|
Leaving PowerTOP
|
||||||
|
draw_border 0x55f1803c0c50 pixel 1536876 active 1 hold 0
|
||||||
|
draw_border 0x55f1803c0c50 pixel 0 active 0 hold 0
|
||||||
|
ryudo: active(c==0)
|
||||||
|
ryudo: (nil) not on client list in top()
|
||||||
|
ryudo: active(c==0)
|
||||||
|
ryudo: (nil) not on client list in top()
|
||||||
|
ryudo: active(c==0)
|
||||||
|
ryudo: (nil) not on client list in top()
|
||||||
|
ryudo: WM_STATE: format 32 data 0 431 w 0x180002f
|
||||||
|
ryudo: WM_STATE: format 32 data 0 432 w 0x180002f
|
||||||
|
draw_border 0x55f1803e3000 pixel 1536876 active 1 hold 0
|
||||||
|
ryudo: WM_STATE: format 32 data 0 431 w 0x18000aa
|
||||||
|
ryudo: WM_STATE: format 32 data 0 432 w 0x18000aa
|
||||||
|
ryudo: WM_STATE: format 32 data 0 431 w 0x18000af
|
||||||
|
ryudo: WM_STATE: format 32 data 0 432 w 0x18000af
|
||||||
|
ryudo: WM_STATE: format 32 data 1 431 w 0x18000b4
|
||||||
|
ryudo: WM_STATE: format 32 data 0 432 w 0x18000b4
|
||||||
|
ryudo: WM_STATE: format 32 data 0 431 w 0x18000bd
|
||||||
|
ryudo: WM_STATE: format 32 data 0 432 w 0x18000bd
|
||||||
|
ryudo: WM_STATE: format 32 data 0 431 w 0x18000c2
|
||||||
|
ryudo: WM_STATE: format 32 data 0 432 w 0x18000c2
|
||||||
|
ryudo: WM_STATE: format 32 data 0 431 w 0x18000e3
|
||||||
|
ryudo: WM_STATE: format 32 data 0 432 w 0x18000e3
|
||||||
|
ryudo: WM_STATE: format 32 data 1 431 w 0x18000f4
|
||||||
|
ryudo: WM_STATE: format 32 data 0 432 w 0x18000f4
|
||||||
|
ryudo: WM_STATE: format 32 data 0 431 w 0x18000fd
|
||||||
|
ryudo: WM_STATE: format 32 data 0 432 w 0x18000fd
|
||||||
|
ryudo: WM_STATE: format 32 data 0 431 w 0x1800102
|
||||||
|
ryudo: WM_STATE: format 32 data 0 432 w 0x1800102
|
||||||
|
ryudo: WM_STATE: format 32 data 0 431 w 0x1800107
|
||||||
|
ryudo: WM_STATE: format 32 data 0 432 w 0x1800107
|
||||||
|
ryudo: WM_STATE: format 32 data 1 431 w 0x180010c
|
||||||
|
ryudo: WM_STATE: format 32 data 0 432 w 0x180010c
|
||||||
|
ryudo: WM_STATE: format 32 data 0 431 w 0x180011d
|
||||||
|
ryudo: WM_STATE: format 32 data 0 432 w 0x180011d
|
||||||
|
ryudo: WM_STATE: format 32 data 0 431 w 0x1800122
|
||||||
|
ryudo: WM_STATE: format 32 data 0 432 w 0x1800122
|
||||||
|
ryudo: WM_STATE: format 32 data 0 431 w 0x1800127
|
||||||
|
ryudo: WM_STATE: format 32 data 0 432 w 0x1800127
|
||||||
|
ryudo: WM_STATE: format 32 data 0 431 w 0x180012c
|
||||||
|
ryudo: WM_STATE: format 32 data 0 432 w 0x180012c
|
||||||
|
ryudo: WM_STATE: format 32 data 0 431 w 0x1800131
|
||||||
|
ryudo: WM_STATE: format 32 data 0 432 w 0x1800131
|
||||||
|
ryudo: WM_STATE: format 32 data 0 431 w 0x1800136
|
||||||
|
ryudo: WM_STATE: format 32 data 0 432 w 0x1800136
|
||||||
|
ryudo: WM_STATE: format 32 data 0 431 w 0x1800153
|
||||||
|
ryudo: WM_STATE: format 32 data 0 432 w 0x1800153
|
||||||
|
draw_border 0x55f1803e3000 pixel 0 active 0 hold 0
|
||||||
|
draw_border 0x55f1803e3680 pixel 1536876 active 1 hold 0
|
||||||
|
draw_border 0x55f1803e3680 pixel 0 active 0 hold 0
|
||||||
|
draw_border 0x55f1803e3000 pixel 1536876 active 1 hold 0
|
||||||
|
draw_border 0x55f1803e3000 pixel 0 active 0 hold 0
|
||||||
|
draw_border 0x55f1803e3680 pixel 1536876 active 1 hold 0
|
||||||
|
right
|
||||||
|
right
|
||||||
|
right
|
||||||
|
right
|
||||||
|
right
|
||||||
|
right
|
||||||
|
right
|
||||||
|
right
|
||||||
|
right
|
||||||
|
right
|
||||||
|
right
|
||||||
|
right
|
||||||
|
right
|
||||||
|
right
|
||||||
|
right
|
||||||
|
right
|
||||||
|
right
|
||||||
|
right
|
||||||
|
but: e x=62 y=340 c x=0 y=0 dx=1600 dy=900 BORDR 4
|
||||||
|
draw_border 0x55f1803e3680 pixel 0 active 0 hold 0
|
||||||
|
draw_border 0x55f1803e3000 pixel 1536876 active 1 hold 0
|
||||||
|
ryudo: WM_STATE: format 32 data 1 431 w 0x180018c
|
||||||
|
ryudo: WM_STATE: format 32 data 0 432 w 0x180018c
|
||||||
|
ryudo: WM_STATE: format 32 data 1 431 w 0x18001bd
|
||||||
|
ryudo: WM_STATE: format 32 data 0 432 w 0x18001bd
|
||||||
|
ryudo: WM_STATE: format 32 data 1 431 w 0x18001d6
|
||||||
|
ryudo: WM_STATE: format 32 data 0 432 w 0x18001d6
|
||||||
|
ryudo: WM_STATE: format 32 data 1 431 w 0x18001db
|
||||||
|
ryudo: WM_STATE: format 32 data 0 432 w 0x18001db
|
||||||
|
ryudo: WM_STATE: format 32 data 1 431 w 0x18001e0
|
||||||
|
ryudo: WM_STATE: format 32 data 0 432 w 0x18001e0
|
||||||
|
ryudo: WM_STATE: format 32 data 1 431 w 0x18001e5
|
||||||
|
ryudo: WM_STATE: format 32 data 0 432 w 0x18001e5
|
||||||
|
draw_border 0x55f1803e3000 pixel 0 active 0 hold 0
|
||||||
|
draw_border 0x55f1803e3680 pixel 1536876 active 1 hold 0
|
||||||
|
draw_border 0x55f1803e3680 pixel 0 active 0 hold 0
|
||||||
|
draw_border 0x55f1803e3000 pixel 1536876 active 1 hold 0
|
||||||
|
ryudo: WM_STATE: format 32 data 0 431 w 0x1800202
|
||||||
|
ryudo: WM_STATE: format 32 data 0 432 w 0x1800202
|
||||||
|
draw_border 0x55f1803e3000 pixel 0 active 0 hold 0
|
||||||
|
draw_border 0x55f1803e3680 pixel 1536876 active 1 hold 0
|
||||||
|
draw_border 0x55f1803e3680 pixel 0 active 0 hold 0
|
||||||
|
draw_border 0x55f1803e3000 pixel 1536876 active 1 hold 0
|
||||||
|
draw_border 0x55f1803e3000 pixel 0 active 0 hold 0
|
||||||
|
draw_border 0x55f1803e3680 pixel 1536876 active 1 hold 0
|
||||||
|
draw_border 0x55f1803e3680 pixel 0 active 0 hold 0
|
||||||
|
draw_border 0x55f1803e3000 pixel 1536876 active 1 hold 0
|
||||||
|
draw_border 0x55f1803e3000 pixel 0 active 0 hold 0
|
||||||
|
draw_border 0x55f1803e3680 pixel 1536876 active 1 hold 0
|
||||||
|
X connection to :0 broken (explicit kill or server shutdown).
|
Loading…
Reference in a new issue