DonationCoder.com Software > Circle Dock
work around for middle button not working on X64 Win 7 Logitech mouse
worick:
no current setpoint for my mouse. I had tried older versions of logitech software and they didn't work.
Markham:
Worick and Sarge:
Thank you for looking at this issue. Like the "X_Mouse Button Control" utility, Circle Dock does use SetWindowsHookEx() to insert its handlers into the chain. The problem was that the hook was somehow getting lost in certain circumstances - usually on Windows 7-64bit. Unfortunately it was - and still is - an issue I can not replicate here.
However I have been reading up more about dotNet and in particular about its automatic Garbage Collection. This examines the application's working space, frees no-longer-required variable space and reorganises the working space so that the freed areas are joined to produce larger blocks which are then deallocated to the OS pool. Now C# doesn't have pointers per-se but it does have "Delegates" (which are a hybrid equivalent to C/C++'s pointers) and as SetWindowsHookEx() requires a pointer to a function, what is actually passed is a delegate to that function. It appears that the Garbage Collector was freeing the delegates - since they themselves are never referenced again - even though they pointed to the internal handler. Everything I had read previously seemed to suggest that delegates were preserved: obviously not!
Fortunately you can tell the Garbage Collector not to mess with certain objects using GC.KeepAlive(ObjectName) - but this has to be done within the same routine as the delegate is declared. I have added such calls to the keyboard and mouse handling routines. Both the 32-bit and 64-bit versions are working flawlessly here and I'm really hoping that this finally fixes the issue once and for all.
Here's the 64-bit executable modified as above: perhaps you would test this version without the use of any third-party utilities, such as X-Mouse Button and SetPoint, and let me know your findings.
Mark
[attachment Removed][/attachment]
joby_toss:
Thank you for this test version!
It works fine for me ... but something strange happened! I reverted to the original .exe and guess what?! That one works fine now, to! :huh:
How is this possible? Could this issue be related to something in the settings that your new .exe corrected (or something stayed in memory longer - I'll try later with a system restart in between the switch)?
I'm puzzled! :)
The two executables work OK for me now.
Windows7x64 ----- CircleDock 1.5.5.16
worick:
Downloaded and testing now. No 3rd party apps. Initially it seems to be working. I'll use it for a day and report back.
Markham:
There was an unfortunate bug in the 64-bit executable I uploaded to this thread yesterday which made it difficult to return from a lower level to a higher, or top level - the left mouse button wasn't acted upon when clicking on a lower level's Centre Button. This, incidentally, was caused by an "else" clause being in slightly the wrong place which came about when I added enhancements to the Centre Button handling. (The Centre Button can now be configured to provide to do other actions than show the Start Menu.)
I have revised the global mouse handling routines and removed the automatic "repair" facility which is no longer required and was actually causing more problems than it fixed. Should you lose touch with the mouse, one of the Tray Icon's context menu items can do this manually. However, I think it's unlikely you'll use this!
I have added a new configuration item to "Visibility" (General Settings), "Do not pass mouse toggle on to other applications". The recommended setting is to enable this option which reserves the mouse button used for toggling the dock's visibility for Circle Dock's private use. This prevents unwanted side-effects particularly noticeable when the middle button performs this function and the foreground application uses the middle button to set scrolling (eg Microsoft Office, Open Office, Firefox etc).
A revised beta of the 64-bit executable is attached. Do NOT download this unless your Circle Dock configuration is set for the default (English) language; please wait for the official v1.56 release. Updated language files are not included.
Mark
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version