Well I didnt actually need the focus. However the method to place a window on top of all other windows automatically makes a focus all :/ I was trying to call this method everytime the window was no longer the top most window. However what happened was that osu! and KeysPerSecond started a contest and kept overlaying each other xD or osu! minimized.SALZKARTOFFEEEL wrote:
Yeah, i was kind of wondering why you would even need to get the window focus, but I knew about this windows 'bug' that sometimes keeps the inactive window above the active one when the focus changes at some weird point in time, I thought you were trying to use that.Roan wrote:
I'm still using the same technique but I have removed all focus calls. As far as I can tell it still works though. They were kinda left over from when I was trying to render it on top of fullscreen osu! But since that doesn't work anyway I removed them, I hope I didn't break anything xD.
Yeah I though that was usefull so I made it parse spacesSALZKARTOFFEEEL wrote:
Huh, it handles spaces!Roan wrote:
Yup the program takes a single argument which is the config file path (also don't use quotes around the path, spaces in the path are handled). If the config is in the same directory as the executable you only have to specify the filename. Oh and also don't accidentally forget the file extension
I've never seen something like this in command line arguments c: Also great, that the config window doesn't appear in the first place.

I-I-I'm filing a bug reportSALZKARTOFFEEEL wrote:
Okay. After tinkering around with my good old friend AutoHotkey, I've sort of found a workaround for the "overlay osu!" Setting.
I have an AutoHotkey script that lets me have a window in AlwaysOnTop-Mode. I just found out that when I want to have your overlay on top of osu!, I can simply deactivate the AlwaysOnTop property of the osu! window! This keeps the focus on osu! but brings the overlay in front!
But there's a catch, be aware D:
Because osu!'s a dick, every time the focus changes (i.e. I press Alt+Tab), osu! pushes itself back on top of the other windows and the overlay.
Soo, if this helps you, I'm glad, if not, well... I'm gonna keep trying!
Right now the only thing I could probably do would be to (veery inelegantly) write another AHk script that steels the property from the osu! window every time it gets activated and the overlay is present. But that wouldn't be a real solution, would it? D:
EDIT:
This script I wrote fixes the issue. It is a bit wonky, but it works without any input delay or lag (at least for me) and I just wanted to share it c:
It is just 9 simple AHk lines, 3 of which are a Loop, 2 are some setup stuff and only 4 lines are the actual logic.
As I pretty much described earlier, it just tests for the osu! window to be in foreground, tests for the overlay to exist and then just steels the AlwaysOnTop property from the osu! window.Source Code (not that there are any people who know AutoHotkey ^~^);-- setup stuff --;
#SingleInstance, force
#Persistent
Loop {
;-- logic --;
WinWaitActive, osu!
WinWait, ahk_class SunAwtFrame
WinWait, Keys per second
WinSet, AlwaysOnTop, OFF, osu!
}
Return ;-- Return, just in case an error happens and the loop breaks
Yet another EDIT:
osu! seems to have problems with not running on the topmost layer, I am rarely getting stutters here and there, even though the overall performance is not effected o:
I think this is pretty much like disabling fullscreen mode, but with less (pretty much no) input lag. I don't know what I think about this.


However it did give me an idea. I suppose it would be possible to override the alwaysOnTop property using either C or C++. If thats the case then I can just include the functionality in my program since Java can make native calls

Also did I mention you're awesome? If not: you're awesome!