Nick
  • Nick
  • 50.2% (Neutral)
  • Nestling Topic Starter
2013-11-11T23:31:13Z
I use multiple screens, and tend to have RD tabs on my second (and sometimes third) screen. I also usually set it to run full screen so moving means turn off full screen, un-maximize, move, reset to full screen. It would be good if RDTabs would remember which screen is was last running on as it keeps starting on the Primary monitor despite where it last was. Most multi mon aware apps will try and respect the previous location unless it is no longer within the displayable desktop area, regardless of whether the desktop size has changed.

Also, if RDTabs is not running full screen, a connection is opened, and then RDTabs is set to full screen, it doesn't resize the client connection desktop (yes the desktop is below 1600x1200). Normal mstsc does. Can RDTabs resize automatically?.
Timothy
  • Timothy
  • 100% (Exalted)
  • Flock Leader
2013-11-12T01:30:57Z
RD Tabs will restore on the same monitor it was closed on and in the same mode (normal, maximized, or full screen) as long as it was closed safely (exited normally as opposed to terminated by taskmgr, for example) and as long as the desktop coordinates don't become invalid between runs. If you have a second or third monitor that is not always there and RD Tabs is launched when it's gone, it will start on the primary display because it won't want to open off screen where you can't see it.

If it's always opening on the primary display and the above conditions are met, then check to make sure you don't have some sort of third party desktop manager that is interfering with how applications position their windows when they open. For verification, check the user.config and post the window-state properties, like below...
<WindowWidth>800</WindowWidth>
<WindowHeight>860</WindowHeight>
<WindowState>Maximized</WindowState>
<WindowFullScreen>false</WindowFullScreen>
<WindowX>0</WindowX>
<WindowY>0</WindowY>

I'll have to look into the desktop resizing feature because I wasn't aware that mstsc.exe did that. But I haven't used it in a while. 🙂
Nick
  • Nick
  • 50.2% (Neutral)
  • Nestling Topic Starter
2013-11-12T02:33:08Z
I definitely meet the above conditions.

i.e. Two monitors, same size, always present, closing RDTabs nicely. RDTabs always opens on the primary, I move to the secondary, which entails, turn off full screen, unmaximize, move, maximize, set Full Screen, close (hitting the X at top right), and upon reopen, it starts on the Primary. I've tried without the maximize on the secondary, and it still opens on the primary.

Using Windows XPSP3 (yep still going), RDP 6.1 (although it tells me that 7.0 is available).

Being an SOE it has all sorts of rubbish on it, but no Window managers, unless you count Citrix ICA client and Dameware.


<setting name="WindowWidth" serializeAs="String">
<value>769</value>
</setting>
<setting name="WindowHeight" serializeAs="String">
<value>552</value>
</setting>
<setting name="WindowState" serializeAs="String">
<value>Maximized</value>
</setting>
<setting name="WindowFullScreen" serializeAs="String">
<value>True</value>
</setting>
<setting name="WindowX" serializeAs="String">
<value>-1600</value>
</setting>
<setting name="WindowY" serializeAs="String">
<value>0</value>
</setting>
<setting name="FullScreenHideMenuBar" serializeAs="String">
<value>False</value>
</setting>
<setting name="DetachedTabDefaultHeight" serializeAs="String">
<value>680</value>
</setting>
<setting name="DetachedTabDefaultWidth" serializeAs="String">
<value>900</value>
</setting>
<setting name="Favorites_OpenInNewTabException_ActiveTabNotConnected"
serializeAs="String">
<value>True</value>
</setting>
<setting name="Favorites_OpenInNewTabException_ActiveTabNeverConnected"
serializeAs="String">
<value>False</value>
</setting>
<setting name="CacheConnectionProperties" serializeAs="String">
<value>True</value>
</setting>



Also I was wrong about the autoresizing of the desktop for mstsc.exe. I was confusing myself with Virtual PC/XP Mode, which uses RDP but seems to force a disconnect and reconnect in order to do the desktop resize.


edit:
had a thought. This machine also uses the Intel Graphics Accelerator on the Q45/43 chipset (no idea what that makes it other than crappy). Also, if I set the RDTabs to Maximized, rather than full screen, then the WindowX = -1604, and the WindowY = -4, which is outside of the normal bounds.

And even with the WindowState=Normal, and in a 800x600 window (approx), closing on the secondary, and reopening will still open on the Primary. I'm beginning to wonder if it is a driver problem, although I do have other applications which are recognizing the extra monitor and last Window position.
Timothy
  • Timothy
  • 100% (Exalted)
  • Flock Leader
2013-11-15T02:43:12Z
I can see in the config with WindowX set to 1600, that's the origin of the second monitor's left most boundary, so it should be opening there. Officially what is happening is Windows opens applications based on the stacking method it's had forever where it keeps opening 10 or so pixels further to the bottom right. RD Tabs waits until the window is initialized, then moves it to the value stored in the config. It does this all while the window visibility is 0% so you don't see it jumping around. Maybe that "hack" interferes with the driver somehow as you suggested. After the window is positioned, it then puts it into full screen mode by maximizing it the normal way, then removing all the window borders by turning it into a borderless dialog.

The large negative values are very confusing. RD Tabs does have code where it looks at the position of the window and if it's too far off the screen (I think less than -100 in any direction), it moves it to 0,0. I guess that might be the culprit too, but then I'd expect not to see "1600" as the X position.

Here are some other things to test. Does it show up on the correct monitor if it's not maximized and not full screened? What about just maximized and not full screened?

Nick
  • Nick
  • 50.2% (Neutral)
  • Nestling Topic Starter
2013-11-15T02:56:21Z
WindowX is -1600. The secondary screen is to the left of the primary.

The monitors are different sizes too, which maybe causes a problem??

Secondary is 1600x900
Primary is 1440x900




I've tried with just Normal window state, as below.

<setting name="WindowWidth" serializeAs="String">
<value>761</value>
</setting>
<setting name="WindowHeight" serializeAs="String">
<value>518</value>
</setting>
<setting name="WindowState" serializeAs="String">
<value>Normal</value>
</setting>
<setting name="WindowFullScreen" serializeAs="String">
<value>False</value>
</setting>
<setting name="WindowX" serializeAs="String">
<value>-1286</value>
</setting>
<setting name="WindowY" serializeAs="String">
<value>117</value>
</setting>


In this case, the Splash screen started on the secondary monitor, which provided a brief glimmer of hope (previously if left in full screen the Splash screen starts on the Primary too), but the application still showed up on the primary off to the right again, rather than the saved position from the config file.




Timothy
  • Timothy
  • 100% (Exalted)
  • Flock Leader
2013-11-15T03:08:22Z
Oh I missed the negative value in your post.

That MUST be it... I guess I should remove the bounds check. I always just assumed the left-most monitor was 0,0 but apparently not.
full film