Image viewer in multiscreen environment

There is a weird behaviour with OPUS image display in a multiscreen environment.
I have the option set to remember the location of the image display last used.
OPUS main window is NOT on the Primary Screen.
Double click an image file and move it over the top of the main OPUS window on the Secondary screen.
Close the image display.
Double click the image again.
It will display back on the PRIMARY screen.
However, if instead of leaving the image display on top of the OPUS window, move it outside of it, but still on the SECONDARY Screen, and close it there.
When you double click again on the image file, now it will display on the same location it last occupied on the SECONDARY screen.

In the case where the OPUS main window is on the PRIMARY screen the image display opens correctly on the same location regardless of whether it was on top of the OPUS window or not.

Would be nice if the image display would work the same on the NON PRIMARY window also.

I don't think it is tied to the primary monitor (unless it's the first time it was opened) or where any lister is open.

The viewer remembers the position it was in when it was last closed. New viewers will open in the same place. (Subject to other settings like resizing to fit the image, and centering on the screen it ends up on etc.)

It only updates its stored position on close, not on movement. So if you open two viewers, and move but don't close the first opening the second, the second will open where the first originally opened. If you close the first before opening the second, the second will open where you closed the first.

I invite you to try this just with one Lister and one image:-
1 - Just to make sure the location is saved in a controlled manner, open and close the image on the main screen. When opened again that's where it opens.
2 - Move the Lister to a secondary screen and open the image again. It will open in the last location on primary screen as per step 1.
3. Don't close the image on the main screen but move it ON TOP of the Lister in the Secondary Screen. And then Close the image. When opening it again IT SHOULD open in that same position. on top of the lister in the secondary screen.
4. EXCEPT that IT DOESN'T. It open on the primary screen.
5. HOWEVER, if instead of moving it on top of the lister on the secondary screen, you place it outside the Lister window and close it and reopen it. IT DOES open in the same location on the secondary screen.

SO - Only when the image is on TOP of the LISTER in the SECONDARY screen it does NOT retain its closing location.

Hope this clarifies it a bit.

That's not what happens here. If I move the viewer to a second screen, close it, then open another viewer, it opens on the second screen. Doesn't matter which screen the lister is on.

Do you have any scripts installed that change where the viewer opens? It would not normally even check if it's overlapping a lister or not.

Are you placing the viewer on TOP of the lister?
No I have a plain vanilla OPUS installation with no alterations, except this saving of the image position

Yes, but it shouldn't matter either; AFAIK the viewer doesn't check where any lister windows are when it decides where to open.

Ok then I don't know.
All I can relate is what is happening to me as outlined.

Do you have any utilities installed which move other programs' windows around, make things "on top", change which monitors things open on, or similar?

For example, this is an option in Display Fusion (although it could do with responding a little quicker)

Sorry no as I mentioned earlier my system is pretty much vanilla. I don't use tools which modify the native windows operations, at least not knowingly.
The thing that gets me is that this behaviour only occurs when the viewer is placed on top of the lister on the non primary window, which to me indicates that it knows where it is.
Once you move the viewer at least 2/3 overlapping with the left side of lister this behaviour kicks in.
And my secondary screen is on the left of the primary.
By the way placing the viewer on top, right or bottom of the lister, overlapping or not, does not retain the viewer location at all and ALWAYS causes the viewer location to default back to the left edge of the primary screen in the same vertical position.
In brief, the only time the view location is preserved is when it is on the left of the lister or up to 2/3 overlapping the left side of the lister.

If however the lister size is increased such that the viewer comes fully over the lister, without moving the viewer, the location is preserved.
But the moment you MOVE the viewer fully or at least 2/3 overlapping with the lister the location is not preserved and once reopened the viewer defaults back to the primary screen.
So from what I can glean from all this is the it is dependent on the viewer being moved to overlap the lister which causes this behaviour.

Does the same behaviour occur if the secondary screen is on the right?

What are your Preferences / Viewer / Appearance settings?

I swapped the two displays around in the display settings and the weird thing is that the problem goes away. Not quite sure what to make of that and why it goes away.

That's the only setting I changed was to remove the image centring .
After that the image display still works the same way as before with regard to the screen it displays on,
ie if the image is on top of the secondary screen lister it will centre on the primary screen centre instead.

(absolute?) Coordinates on screens to the left of the primary screen are, I believe, negative. This points to a coding error.

One of my screens has negative coordinates and it still works on there. I don't think it's that.

Are the two screens the same DPI?

What size of images are you opening?

Try turning on the center viewer window option in case that helps. Or turn off the "auto-size viewer window" option. It's possible the viewer is resizing to a size which pushes it off the right hand edge of the monitor it was going to open on, which makes it snap to the next monitor instead, perhaps.

The two screen have the same 100% scaling yes, but the display sizes are different.
Primary screen is 49" 5120x1440 pixels and the Secondary is 36" 3440x1440
The image sizes are small, less than the size of viewer in all cases.
Looks like it is a difficult issue to fix, so I'll work around it.
It's not a huge issue, that I can't manage, but I just thought there might be something obvious to fix it.
But thanks guys for giving it this much time.

I think I've found why this was happening sometimes, and we have a fix coming in the next update for it.

Without going into too much detail, if you had screens A and B, the viewer could snap on to screen B if it had previously been near enough to the right edge of screen A the last time it was closed. (How close depended on a few different factors that can differ per machine/monitor setup, but it didn't always need to be that close.)

Ok great to hear.
I've also got to update my previous diagnosis.
It's not that the image was above the lister, actually not even relevant, but if the image is on the right half of the second screen when closed it resurfaces on the main screen when started again. The right half of the second screen is the half closest to the main screen.
If I keep it on the left half it stays there.
Thanks for all your great work.

1 Like

That's consistent with what I found today, so I'm confident the fix will solve things for you.