steamcompmgr: fix bug where we wouldn't repaint streaming video

Would just sit there if only the video underlay committed.
This commit is contained in:
Pierre-Loup A. Griffais 2021-05-13 22:55:32 -07:00
parent d4c93c3b06
commit 7e27bacc06

View file

@ -159,6 +159,7 @@ static int composite_opcode;
uint32_t currentOutputWidth, currentOutputHeight; uint32_t currentOutputWidth, currentOutputHeight;
static Window currentFocusWindow; static Window currentFocusWindow;
static win* currentFocusWin;
static Window currentInputFocusWindow; static Window currentInputFocusWindow;
static Window currentOverlayWindow; static Window currentOverlayWindow;
static Window currentNotificationWindow; static Window currentNotificationWindow;
@ -1429,6 +1430,7 @@ determine_and_apply_focus (Display *dpy, MouseCursor *cursor)
gameFocused = False; gameFocused = False;
currentFocusWindow = None; currentFocusWindow = None;
currentFocusWin = nullptr;
currentOverlayWindow = None; currentOverlayWindow = None;
currentNotificationWindow = None; currentNotificationWindow = None;
@ -1582,6 +1584,7 @@ determine_and_apply_focus (Display *dpy, MouseCursor *cursor)
} }
currentFocusWindow = focus->id; currentFocusWindow = focus->id;
currentFocusWin = focus;
if ( currentInputFocusWindow != inputFocus->id ) if ( currentInputFocusWindow != inputFocus->id )
{ {
@ -2240,7 +2243,10 @@ static void
destroy_win (Display *dpy, Window id, Bool gone, Bool fade) destroy_win (Display *dpy, Window id, Bool gone, Bool fade)
{ {
if (currentFocusWindow == id && gone) if (currentFocusWindow == id && gone)
{
currentFocusWindow = None; currentFocusWindow = None;
currentFocusWin = nullptr;
}
if (currentInputFocusWindow == id && gone) if (currentInputFocusWindow == id && gone)
currentInputFocusWindow = None; currentInputFocusWindow = None;
if (currentOverlayWindow == id && gone) if (currentOverlayWindow == id && gone)
@ -2789,6 +2795,11 @@ void handle_done_commits( void )
{ {
hasRepaint = true; hasRepaint = true;
} }
if ( w->isSteamStreamingClientVideo && currentFocusWin && currentFocusWin->isSteamStreamingClient )
{
hasRepaint = true;
}
break; break;
} }