If I have the KeePass window on my second monitor, then close its window so that it only has its icon in the tray, change my display settings so that Windows is only using my primary monitor rather than extending my desktop across two monitors (for compatibility with some old games, etc.), then relaunch KeePass from the tray, the KeePass window is then located on the non-existent second monitor and is not easily accessible. What I have to do to get it into view is Shift + right-click on the taskbar icon, choose 'Move' and then use the keyboard arrow keys to move the KeePass window from the non-existent second monitor over to my primary (only) monitor.
With other applications, when their last stored window positions were on the second monitor and I relaunch them, their windows automatically get moved over.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
If you close KeePass, switch to one screen and run KeePass, does it work?
Do you have write access to KeePass.config.xml in %appdata%\KeePass?
What are the MainWindow X and Y values from %appdata%\KeePass\KeePass.config.xml and do they also exist in the config file in the KeePass installation directory - normally C:\Program Files (x86)\KeePass Password Safe 2?
cheers, Paul
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The values for MainWindow are present only in %appdata%\KeePass\KeePass.config.xml and I do have write access to it. The values there are getting stored successfully.
When I close KeePass completely (i.e. 'Exit' from the tray), while its window is on the second monitor, these values are written to the configuration file:
<MainWindow>
<X>2179</X>
<Y>142</Y>
If I then change to just one monitor and launch KeePass, its window appears correctly on the only available monitor. After quitting, the values update appropriately.
<MainWindow>
<X>256</X>
<Y>177</Y>
So the issue is that when restoring KeePass from the tray, it is not doing the same monitor availability check that it does when it is launched from scratch.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have the same issue when I make a remote desktop connection from my laptop with one screen to my desktop with two (where keepass is running). My findings concerning the config.xml location, write-ability, and behavior all match Grindax's.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I right click on the little window that pops up from the taskbar and select move, then I hit the space bar and then an arrow key to engage the mouse in the move command and then I can then use the mouse to move the window into view. It's a non-trival set of steps that I've had to do so many times they are practically automatic.
Last edit: Leigh Riffel 2015-07-28
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
If I have the KeePass window on my second monitor, then close its window so that it only has its icon in the tray, change my display settings so that Windows is only using my primary monitor rather than extending my desktop across two monitors (for compatibility with some old games, etc.), then relaunch KeePass from the tray, the KeePass window is then located on the non-existent second monitor and is not easily accessible. What I have to do to get it into view is Shift + right-click on the taskbar icon, choose 'Move' and then use the keyboard arrow keys to move the KeePass window from the non-existent second monitor over to my primary (only) monitor.
With other applications, when their last stored window positions were on the second monitor and I relaunch them, their windows automatically get moved over.
KeePass has multi screen logic, but there are circumstances where this doesn't work for some reason.
What version of KeePass are you using?
cheers, Paul
I'm running the latest, v2.29
If you close KeePass, switch to one screen and run KeePass, does it work?
Do you have write access to KeePass.config.xml in %appdata%\KeePass?
What are the MainWindow X and Y values from %appdata%\KeePass\KeePass.config.xml and do they also exist in the config file in the KeePass installation directory - normally C:\Program Files (x86)\KeePass Password Safe 2?
cheers, Paul
The values for MainWindow are present only in %appdata%\KeePass\KeePass.config.xml and I do have write access to it. The values there are getting stored successfully.
When I close KeePass completely (i.e. 'Exit' from the tray), while its window is on the second monitor, these values are written to the configuration file:
<MainWindow>
<X>2179</X>
<Y>142</Y>
If I then change to just one monitor and launch KeePass, its window appears correctly on the only available monitor. After quitting, the values update appropriately.
<MainWindow>
<X>256</X>
<Y>177</Y>
So the issue is that when restoring KeePass from the tray, it is not doing the same monitor availability check that it does when it is launched from scratch.
Thanks for the details.
cheers, Paul
I have the same issue when I make a remote desktop connection from my laptop with one screen to my desktop with two (where keepass is running). My findings concerning the config.xml location, write-ability, and behavior all match Grindax's.
With the RDP connection, how do you get KeePass to show if it's on the 2nd monitor?
cheers, Paul
Paul,
I right click on the little window that pops up from the taskbar and select move, then I hit the space bar and then an arrow key to engage the mouse in the move command and then I can then use the mouse to move the window into view. It's a non-trival set of steps that I've had to do so many times they are practically automatic.
Last edit: Leigh Riffel 2015-07-28
Dominik, any chance it could be improved?
I've now added window repositioning code for some more cases.
Here's the latest development snapshot for testing:
http://keepass.info/filepool/KeePass_150806b.zip
Thanks and best regards,
Dominik