4d380903fe
Some checks failed
PikaOS Package Build Only (Canary) (amd64-v3) / build (push) Failing after 1m8s
PikaOS Package Build Only (amd64-v3) / build (push) Failing after 1s
PikaOS Package Build & Release (Canary) (amd64-v3) / build (push) Failing after 1m7s
PikaOS Package Build & Release (amd64-v3) / build (push) Failing after 1s
66 lines
2.0 KiB
Diff
66 lines
2.0 KiB
Diff
diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp
|
|
index d7498e5..d1800a8 100644
|
|
--- a/src/steamcompmgr.cpp
|
|
+++ b/src/steamcompmgr.cpp
|
|
@@ -3271,7 +3271,7 @@ found:;
|
|
if ( window_has_commits( focus ) )
|
|
out->focusWindow = focus;
|
|
else
|
|
- focus->outdatedInteractiveFocus = true;
|
|
+ out->outdatedInteractiveFocus = true;
|
|
|
|
// Always update X's idea of focus, but still dirty
|
|
// the it being outdated so we can resolve that globally later.
|
|
@@ -5995,28 +5995,37 @@ bool handle_done_commit( steamcompmgr_win_t *w, xwayland_ctx_t *ctx, uint64_t co
|
|
// Window just got a new available commit, determine if that's worth a repaint
|
|
|
|
// If this is an overlay that we're presenting, repaint
|
|
- if ( w == global_focus.overlayWindow && w->opacity != TRANSLUCENT )
|
|
+ if ( gameFocused )
|
|
{
|
|
- hasRepaintNonBasePlane = true;
|
|
- }
|
|
+ if ( w == global_focus.overlayWindow && w->opacity != TRANSLUCENT )
|
|
+ {
|
|
+ hasRepaintNonBasePlane = true;
|
|
+ }
|
|
|
|
- if ( w == global_focus.notificationWindow && w->opacity != TRANSLUCENT )
|
|
- {
|
|
- hasRepaintNonBasePlane = true;
|
|
+ if ( w == global_focus.notificationWindow && w->opacity != TRANSLUCENT )
|
|
+ {
|
|
+ hasRepaintNonBasePlane = true;
|
|
+ }
|
|
}
|
|
-
|
|
- // If this is an external overlay, repaint
|
|
- if ( w == global_focus.externalOverlayWindow && w->opacity != TRANSLUCENT )
|
|
+ if ( ctx )
|
|
{
|
|
- hasRepaintNonBasePlane = true;
|
|
+ if ( ctx->focus.outdatedInteractiveFocus )
|
|
+ {
|
|
+ MakeFocusDirty();
|
|
+ ctx->focus.outdatedInteractiveFocus = false;
|
|
+ }
|
|
}
|
|
-
|
|
- if ( w->outdatedInteractiveFocus )
|
|
+ if ( global_focus.outdatedInteractiveFocus )
|
|
{
|
|
MakeFocusDirty();
|
|
- w->outdatedInteractiveFocus = false;
|
|
- }
|
|
+ global_focus.outdatedInteractiveFocus = false;
|
|
|
|
+ // If this is an external overlay, repaint
|
|
+ if ( w == global_focus.externalOverlayWindow && w->opacity != TRANSLUCENT )
|
|
+ {
|
|
+ hasRepaintNonBasePlane = true;
|
|
+ }
|
|
+ }
|
|
// If this is the main plane, repaint
|
|
if ( w == global_focus.focusWindow && !w->isSteamStreamingClient )
|
|
{
|