altdrag
altdrag copied to clipboard
Simplify AltDrag
Hello everyone.
When I prepared to release v1.1, I realized that the source code has gotten quite complicated. I think it reached this state because I tried to make everyone happy and support everything I could think of.
In order to make sure I have the interest to actually work on AltDrag more, I want to make it simpler. Hopefully if it is simpler, it is easier for other people to become interested in helping with development. I have really written almost all of the code in AltDrag myself, even though I've tried to encourage development by others.
Anyway, here is my proposal to simplify the source code:
- Remove official support for XP. I will make sure to test Win7 and Win10.
- This will help with #38 as
DwmGetWindowAttribute
does not exist on XP. - If you are using XP, you can always download an old version.
- This will help with #38 as
- Stop mixing 32-bit and 64-bit code. This will result in
HookWindows
only working on 64-bit windows if you are running a 64-bit version of AltDrag. - Remove the ability to hide the tray icon. See #14 for the reason.
- Remove the Scroll inactive windows feature as it is built in to Windows 10.
- Remove less known features (or extract the code into separate files).
Do you disagree? What other features do you think I can remove/change in order to make AltDrag simpler? What is preventing you from developing on AltDrag?
I am fine with all the proposed changes, except the one to remove the ability to hide the tray icon. See my answer in #14, to keep this one free from details.
Whats preventing me from contributing? I am not into C in any way and I really love the tool just the way it is. There is nothing I am missing :)
I disagree with removing Scroll inactive windows, because there are many people (like myself) who refuse to use Windows 10 because of privacy issues.
Stop mixing 32-bit and 64-bit code. This will result in
HookWindows
only working on 64-bit windows if you are running a 64-bit version of AltDrag.
Will 32-bit applications' windows still be hooked if 64-bit-only AltDrag is running?
Remove the Scroll inactive windows feature as it is built in to Windows 10.
Strongly disagree! I find it very useful, and I plan to keep Win7 my primary system as long as possible.
Remove the Scroll inactive windows feature as it is built in to Windows 10.
Strongly disagree! I find it very useful, and I plan to keep Win7 my primry system as long as possible.
+1. I know I'm going to be using Windows 7 at work for quite a while longer, and it's the main reason I sought out AltDrag.
My vote is to go for it and remove them all. None of these are critical for me. I've never changed a thing under Alt+Drag's "configure". I suspect you will read exceptions here on unusual use cases rather than the norm from typical users.
I plan to continue using Windows 7, but I'm content with the existing version for use there to be honest, so I'm all for making the code simpler to make sure it continues to exist. :+1:
Stop mixing 32-bit and 64-bit code. This will result in HookWindows only working on 64-bit windows if you are running a 64-bit version of AltDrag.
Will 32-bit applications' windows still be hooked if 64-bit-only AltDrag is running?
This is an important item for me as well, can someone please elaborate on this?
Will 32-bit applications' windows still be hooked if 64-bit-only AltDrag is running?
No, they would not.
But as always something could be done to run a 32-bit version of that feature at the same time. This is actually how it works right now, the main AltDrag hooks.dll
file hooks 32-bit windows. Then hooks_x64.dll
is initialized by HookWindows_x64.exe
, which hooks all 64-bit windows concurrently.
So I could simply flip that relationship and let people download a standalone 32-bit version of HookWindows. But I might not bundle it with the normal installer. Actually, I haven't made up my mind on this.
If we don't have to keep 2 copies of AltDrag running (and therefore, have 2 tray icons which cannot be hidden), I suppose it's OK.
I disliked the last version (1.3) of SuperF4, and searching why, I discovered this very useful AltDrag (bye DisplayFusion). So for the 2 softwares it is a shame to:
- remove translations (I'm French and not confortable with english)
- remove the "hide tray icon" feature, because these little programs are for me "launch, configure and forget" ones, native-like added features if you understand what I mean. It should not add an other tray icon.
- remove any features, it is a regression... You should manage code problems without regression, only to improve the software. So I will keep the old version of SuperF4 and AltDrag. Very useful softwares anyway, thank you.
First of all: YOU ARE AWESOME and thank you again for updating this genius little utility. I NEED IT to keep my sanity whenever I'm forced to work on Windows.
- I'd be sad to see XP support go, but I understand. As you say, an older version will have to do.
- I'd be much more sad to se Windows 7 support go, because, as others have said, Windows 10 is a long way off for many of us (not least corporate users).
- I don't understand the 64-bit window thing. Does it mean I can't use the 64-bit utility on a 64-bit Windows to control 32-bit applications? I'm confused.
Will you be keeping the functionality of adjusting volume (with eg. Alt-wheel)? I hope so. In my opinion, the feature set of AltDrag is NOT too complex and you could easily keep all the functionality. Cleaning up the code, of course, is another matter and I understand if features are affected in the process.
Again: THANK YOU for helping me stay sane. You're doing good work.
I would like to see the scroll inactive windows features stay in the program. It is an incredibly useful feature and keeps me from having to download another program just to have this functionality. Like others have said, I have no plans to update to Windows 10 anytime soon. You could, as you have now, leave it off by default so that it doesn't interfere with Windows 10 users and those of us on W7 can turn it on.
@KlaymenDK The 32/64-bit thing would only affect the HookWindows
feature. In the config window it is under the Advanced tab. You will still be able to drag any window normally.
Thank you for your work on this great helper that helps making Windows usable!
Remove the Scroll inactive windows feature as it is built in to Windows 10.
This is exactly the feature that i was moving to AltDrag for. So I would love to see the support continued.
I would like to back up other people stating that they will not move to Windows10 soon. Please continue the support for Win7 as long as possible. I would also drop support for Windows XP though.
Nice that you have notified though update component that Google Code is shutting down. I am OK with code cleanup, but not with removing features. Due to that I am going to stick with current release.
@krogon What features are/have been removed? I haven't seen anything about this.
Remove the Scroll inactive windows feature as it is built in to Windows 10.
I have no plan to move to Windows 10, and this feature is the reason I use AltDrag. Please keep it!
Agreed that "Scroll inactive" should be kept, even in Windows 10 it could be useful if user wanted to disable this behavior.
I agree with tjkirch, since I have no plans to install W10; W10 is forbidden in some companies due to privacy issues.
If you wish to keep using an old version of Windows, you can also use an old version of AltDrag... That's not an argument towards keeping a feature in future versions.
"Old" is a bad word. I'd like to use "the most popular".
If you don't like "old", you can use "OS Version Appropriate" version of AltDrag, version 1.1.
Microsoft is working on extending the Windows 10 shell with an application called, Power Toys. I recommend everyone to upvote this issue so Microsoft prioritizes Alt-Drag and Alt Resizing. https://github.com/microsoft/PowerToys/issues/269
Unfortunately it seems the PowerToys branch is no longer in development. I did simplify AltDrag and fixed a ton of bugs. Builds are available here: https://github.com/RamonUnch/AltDrag/releases/
I did not make exactly the same choices Stefan is proposing: I did remove the HookWindows feature because it was very unstable in my experience and in my opinion undesirable, because the point of moving windows normally when you could do it with AltDrag is to avoid AltDrag. I also removed the focus on typing.
There is no more mixing of 32 and 64bit code. I build a 32bit release that works on almost all windows NT versions. It should be easy to make an x64 build but I do not see a benefit for now.
My focus is on later windows 10 x64 but I kept compatibility with older windows because after simplification it is absolutely trivial and the old windows are one of the reasons I still have to use windows.