ttencate / taekwindow

Taekwindow is a simple, lightweight and free Windows program that allows you to move and resize windows by dragging them with the Alt key, similar to many X11 window managers.
http://taekwindow.net/
59 stars 7 forks source link

Taekwindow "deactivates" after a while #99

Open ttencate opened 13 years ago

ttencate commented 13 years ago

Converted from SourceForge issue 3136714, submitted by kire456

After a while, Taekwindow seems to stop responding to any events until I click the tray icon four times (slowly, to avoid double-clicking). The icon states are color (click) color (click) color (click) grey (click) color. A few hours after this (or cycling Taekwindow) I need to do it again. I've has the bug for a long while already, and can't remember if it was introduced by installing Win7 or by updating Taekwindow, I'll try to roll back to a previous version when I've got time. If you know any other way I could poke the bug around, I'd be pleased to.

ttencate commented 13 years ago

Submitted by ttencate

This is a known issue (to me) and I think I know what causes it; thanks for putting it on the list! The problem should be reduced or solved in the next version. Unfortunately, I can't make any promises when this will be, since I'm very busy at the moment.

Technical note: This is caused by Windows 7 being very aggressive about window hooks. If a program spends too much time in a hook, it gets silently unhooked without any notification. The only solution (as far as I know) is to push as much work out of the hook procedure as possible, which is exactly what the next release will be doing (albeit for other reasons).

stefansundin commented 11 years ago

I am pretty sure the "feature" introduced in Win7 has a bug that makes it wrongly detect hooks as taking too long sometimes when the user hibernates, sleeps or locks his computer (as some people do a lot). In the next version of AltDrag, I will have a check that rehooks the keyboard if it hasn't detected a keypress in the last ~5 seconds. For the mouse I just check if the last reported position from the mouse hook is different from GetCursorPos(). I really don't know of a better solution at the moment.

See http://code.google.com/p/altdrag/wiki/About#AltDrag_mysteriously_stops_working