Mark windows changed on Expose
On i3wm, windows aren't unmapped when switching away from a window's workspace, but it does cause OBS to lose the capture. Because switching back will not trigger a MapNotify, the capture fails to restart unless you resize or move the window (ConfigureNotify). An Expose event is fired by the wm, however, so catching this correctly restarts the capture.
This commit is contained in:
parent
d710726e6e
commit
01491a96d3
@ -186,6 +186,9 @@ namespace XCompcap
|
||||
if (ev.type == MapNotify)
|
||||
changedWindows.insert(ev.xmap.event);
|
||||
|
||||
if (ev.type == Expose)
|
||||
changedWindows.insert(ev.xexpose.window);
|
||||
|
||||
if (ev.type == DestroyNotify)
|
||||
changedWindows.insert(ev.xdestroywindow.event);
|
||||
}
|
||||
|
@ -296,7 +296,7 @@ void XCompcapMain::updateSettings(obs_data_t *settings)
|
||||
return;
|
||||
}
|
||||
|
||||
XSelectInput(xdisp, p->win, StructureNotifyMask);
|
||||
XSelectInput(xdisp, p->win, StructureNotifyMask | ExposureMask);
|
||||
XSync(xdisp, 0);
|
||||
|
||||
XWindowAttributes attr;
|
||||
|
Loading…
x
Reference in New Issue
Block a user