Mouse Exclusivity issues with extended 2 Monitor setup and 2 Windows defined

I’m running PsychoPy 2023.2.3 and Coder.I’ve confirmed the pyglet package is installed (1.4.11).

I’ve run into an issue where mouse exclusivity settings are being ignored when I attempt to use a 2 monitor, extended displays setup and a visual.Window defined for each monitor.

Specifically, I have an experiment setup in a 2 monitor environment, one that faces the participant and one that faces the experimenter. The main action of stimulus presentation and changes (TextStim and ImageStim) is participant side in the stim_win Window. The Experimenter is presented with TextStim about where the experiment is (begin, in progress, end) via the exp_win Window (so they remain blind to image position but have some idea of where things are).

A mouse Event is initialized for stim_win and exclusivity is turned on. The mouse initialization, exclusivity, and visibility settings occur after all window and then stimulus instances have been initialized. However, during run time, it doesn’t function per settings. I am able to see and move the mouse between the two monitors and Windows. The pointer will hide with a button press and as long as the mouse isn’t moved after that. As soon as it is moved, the pointer appears again.

I have tried inserting many mouse.setVisible(False) statements at different key positions in the code to no avail, and EXP logging shows window1: mouseVisible = False occurs when I need it to, and the standard WARNING log about setting mouse exclusivity in Pyglet will cause the cursor to disappear is logged and yet the mouse behavior doesn’t abide by the settings.

The goal is to have the mouse fixed/immobile to the stim_win and invisible for the entire run.
I’ve put my code snippets for initializing the windows and mouse below.

When I have just a single Window (stim_win) initialized things work as expected, so that is the fall back, but I’d really like the experimenter to have some idea of where things stand.

I would greatly appreciate any assistance at troubleshooting.

stim_win = visual.Window(size = (STIM_MON_H_RES, STIM_MON_V_RES),
                         fullscr = True, winType = 'pyglet',
                         screen = STIM_MON_SCR_NUM, allowGUI = False,
                         allowStencil = False, monitor = STIM_MON,
                         color = [-1,-1,-1], colorSpace = 'rgb',
                         blendMode = 'avg', useFBO = True)

exp_win = visual.Window(size = (EXP_MON_H_RES, EXP_MON_V_RES),
                         fullscr = True, winType = 'pyglet',
                         screen = EXP_MON_SCR_NUM, allowGUI = False,
                         allowStencil = False, monitor = EXP_MON,
                         color = [-1,-1,-1], colorSpace = 'rgb',
                         blendMode = 'avg', useFBO = True)

mouse = event.Mouse(visible = False, newPos = [0,0], win = stim_win)