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:
@@ -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;
|
||||
|
Reference in New Issue
Block a user