In the attached patch, you'll find the following changes:
eg.WinApi.Utils:
- Added GetAlwaysOnTop(), which returns the specified window's "always on top" property.
- Added GetBestHwnd(), which returns either the specified hwnd, eg.lastFoundWindows[0], or the foreground window.
- Added GetContainingMonitor(), which returns a wx.Rect describing the monitor on which the specified window is contained.
- Added GetWindowDimensions(), which returns a wx.Rect for use with GetContainingMonitor().
- Added "Dump Result to Log", which dumps eg.result to the EventGhost log for debugging purposes. During the configuration process, I was shocked to learn that, short of writing a Python script, there was no existing mechanism for doing this.
- Added "Change Repeat Track Status", which sets, clears, or toggles the status of its namesake AND returns the new value. "Change Repeat Status" and "Change Shuffle Status" have been modified to do the same.
- Added "Get Repeat Track Status", which gets the status of Repeat Track.
- Added "Jump to File", which opens and focuses the "Jump to File" window.
- Added "Stop After Current", which stops playback after the current track.
- Added "Toggle Always on Top", which toggles "always on top". Regrettably, Winamp doesn't offer the ability to set this property -- only toggle it.
- Modified "Get Currently Playing Song Title" to return the correct result when "General Preferences > Show the playlist number in the Windows taskbar" is disabled in Winamp.
- Added "Dock Window", which moves the specified window to the specified edge(s) of your screen.
- Added "Minimize to Tray", which -- you guessed it -- minimizes the specified window to the system tray.
- Using GetAlwaysOnTop(), "Set always on top property" now returns its result after execution.
P.S.: I'm really, really, REALLY looking forward to a fix for this bug. Of all my bug reports and feature requests to date, that one's the only true deal-breaker. Until it's resolved, I won't be able to use EventGhost full-time, and I probably won't be contributing any further code as a result.