Old 04-01-2020, 01:07 PM   #1
InfiniteDimensionality
Human being with feelings
 
Join Date: Jun 2017
Posts: 187
Default Window positioning insanity.

I have 3 monitors that I routinely use as primary.

1. I use the software nircmd to change monitors as different primaries. The reason for this is because many programs do not work correctly for multi-monitor support. Some position their windows off screen according to some absolute position when they recorded their last window position relative to a different monitor because it was used in an alternate configuration. Others, like reaper, will do a mixture of having some monitors start correctly on the primary monitor and some remember the last monitor.

2. Reaper does not correctly support multi-monitor behavior. I'm not sure why it has such a problem, maybe it is a difficult problem. I will offer my expertise of 25+ years of programming if needed, or any of the other programmers could probably come up with a more appropriate solution involved in the specifics of Reaper workflow(Do not not use reaper much now days precisely because of problems I have encountered. I've found spending more time playing rather than "mixing" is far more fun).

It should be a relatively simple problem.I do realize there are some ways in reaper to manage it after the fact, and I could write a utility that polls all repeaer windows and make sure the positions are correct on first sight but I feel that reaper probably simply has a bug that is making it not work correctly.

3. I will describe the problem as precisely as I can.

I have two monitors(LCD's) I mainly use, call them A and B. Monitor A is my primary while monitor B is used in a separate area dedicated for tracking.

The only two differences between the monitors is one is "landscape" and the other "portrait" and B is slightly smaller by an inch. Other than that the entire setup is "symmetric"(identical). Both have mice and keyboard.

Now, I use nircmd as mentioned.

C:\nircmd.exe setprimarydisplay 1
C:\nircmd.exe setprimarydisplay 2
C:\nircmd.exe setprimarydisplay 3

The reason I use nircmd to set the primary is because all other solutions I've tried failed in some regard(e.g., Ultramon would have issues with icons as I would end up losing them or they would change position(probably a bug). It was also bulky to run(I don't like running any permanent apps to do one rare temporary action)).

Then I can switch between monitor A and monitor B with just a click(I have an icon that runs the commands above).

Now, reaper opens on the primary and that is great. But the add FX window ALWAYS seems to open on the secondary WHEN the secondary was previously used. It seems the FX window is remembering the specific monitor it loaded on. Fine metronome does this too. But it seems to be locked to the 3rd monitor at all times(It used to not do this until I upgraded windows 10. I was able to fix it by using nircmd against to position the window to the primary. I just use a batch file to run it(from an icon) to do all the work). Another app does this: xyplorer. It is a great file management utility for windows but it seems to remember the specific monitor it was loaded on. I'm always having to switch it(I could probably fix it similarly with File Metronome). Almost all other apps seem to work fine, they simply go off thee primary monitor, whatever it is.

This may seem like it might not be a big deal, but realize I'm in another room and have no access to the other monitor to find the FX window and bring it back. I literally have to get up and go back in to the other room, turn on the monitor and drag the FX window back to the primary. Sometimes I want that setup, remember, I have a 3rd monitor(I actually have 4) for a dual side monitor when doing mixing so I have more space and I want the FX window to behave as it does in that case.

Also, some may say you can move it with ctrl-win-left or right... but that simply does not work. Although, I wonder if reaper/sws/etc could have such a command action that will allow one to change the monitor for any focused window. SWS has a "move window to mouse" that might work, just never tried it. In any case, these are not solutions but work arounds... One would still have to use them all the time just to do something very simple that the software could do with a few lines of code.

[I just tried "move window to mouse" and it does not work with add FX window(possibly because it is off screen)... works fine for the FX list window though.]



So this problem exhibits itself as: The add-fx window, when on a primary monitor restore itself to a secondary monitor WHEN that secondary monitor was the primary monitor on the previous run. That is, it seems to be storing the monitor references absolutely: I was on X absolute monitor and now I will pop up next time on X absolute monitor.

It more should be "I was on the monitor relative to the primary, let me figure out how to be in a similar relation on the primary monitor(which usually would be the exact same relationship)).

This way, if the add FX window was on the primary in thee previous run it will stay on the primary.

In fact. A better way may be to simply remember window positions and sizes parameterized(dependent) on the "physical" monitor setup and to set the values from the right profile.

This means one can set up the layout for one monitor and then for another and everything will be remembered. [The only issue I can see here is that sometimes it seems when monitors are off and on they can be treated differently. I have 4 monitors and usually 1 or 2 are on at any given time. But sometimes 3 are on maybe all 4 at times. I wouldn't want to have to create 24 profiles for every combination.]

Last edited by InfiniteDimensionality; 04-01-2020 at 01:15 PM.
InfiniteDimensionality is offline   Reply With Quote
Old 04-01-2020, 01:23 PM   #2
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 12,109
Default

As workaround you may try actíon "Reset position (cascade) all floating windows".
nofish is offline   Reply With Quote
Old 04-03-2020, 07:37 AM   #3
InfiniteDimensionality
Human being with feelings
 
Join Date: Jun 2017
Posts: 187
Default

Quote:
Originally Posted by nofish View Post
As workaround you may try actíon "Reset position (cascade) all floating windows".
This doesn't work because it will do all floating windows. It will reset everything every time requiring me to spend even more time to position. It would be better to write an external app or use nircmd to try and position the add fx window.

Is there a way to use a reascript to position windows? I saw that someone released some win32 api bindings for reascripts, probably could do it with that. Still not optimal but maybe at least it could be transparent. (run on reaper start, have it pop up add fx window, move it, then close it)
InfiniteDimensionality is offline   Reply With Quote
Old 04-03-2020, 11:57 AM   #4
bFooz
Human being with feelings
 
Join Date: Jul 2010
Location: Slovakia
Posts: 2,588
Default

+1 for fixing.

A few days ago I posted a similar bug report here https://forum.cockos.com/showthread.php?t=233562 .
bFooz is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 03:01 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.