Hi,
since I have installed 3.1.8, I am unable to use two applications that make use of other desktops. I mean "other desktops" in terms of Windows API calls CreateDesktop/SwitchDesktop and so on. I suspect DisplayFusion to be yet another program using the
old flawed IsWorkstationLocked code that I lately blogged about at:
http://my.opera.com/Tringi/blog/desktops-on-windows-ultimately-broken-by-every-other-application
To make long story short, and not to force anyone to read that long article, please use this code instead:
bool IsWorkstationLocked () {
if (HDESK hDesk = OpenInputDesktop (0, FALSE, DESKTOP_SWITCHDESKTOP)) {
CloseDesktop (hDesk);
return false;
} else
return true;
}
This one works just the same, and does not breaks other applications by periodically switching back to main desktop.
Anyway, is that periodical checking even necessary?
It seems that after unlocking the desktop, applications on other monitors sometimes maximize as if the TaskBars weren't there! It seems to me as if the DisplayFusion were not setting the work area correctly. Isn't it using SPI_SETWORKAREA instead of SHAppBarMessage?
I would love to see this fixed soon.
Jan