AdmiralGeneral - thanks, I think I understand. I think a little Javascript to send the PinballY DMD window to the background will do the trick. PinballY by default makes its own windows "topmost" when you tell it to continue showing media, which forces them into the foreground. That's because the typical use case is that people *want* the PinballY window to block the game's window, so that they can replace (for example) a static backglass display from the game with an animated video from PinballY.
Let's see... here's a first draft of what you'd need, but I haven't tested it.
mainWindow.on("gamestarted", ev => {
// Check for FX3 games
// Note: change the "fx3" part if your display name for FX3 is set to something else
if (/fx3/i.test(ev.game.system.displayName))
dmdWindow.setWindowPos(HWND.BOTTOM, -1, -1, -1, -1, SWP_NOACTIVATE | SWP_MOVE | SWP_NOSIZE);
});
This will send the PinballY DMD window to the bottom of the window stack right after the game is started. Hopefully that'll do the trick, but sometimes this window ordering stuff can have weird timing dependencies - it depends on things like how quickly FX3 opens its windows and how it processes its event input. If this doesn't work, or doesn't work reliably, the next step would probably be to try adding a little delay, by replacing the dmd.setWindowPos() line with something like this:
setTimeout(function() { dmdWindow.setWindowPos(/*same args as above*/); }, 500);
And if *that* doesn't work, try increasing the timer a bit, maybe up as high as 2500 or 5000, to see if a longer delay helps.
For Javascript code, by the way, you just create a file called main.js in your PinballY Scripts folder, and copy in the code. You can use Notepad or any other plain text editor.
Edited by mjr, 06 February 2021 - 11:15 PM.