Windows 10 multi-desktop and completion
I've got a weird behavior on Windows 10 when using completion and switching desktop.
Say I've got desktop 1 with HeidiSQL opened, I write an SQL query with help from completion. The completion panel hides automatically when it's not needed anymore.
If then I switch to desktop 2 (like with Ctrl+Win+Right) the HeidiSQL's completion panel appears now on desktop 2 above everything. (see attached screenshot)
I didn't find any other solution than closing HeidiSQL to make the panel disappear from other desktops.
When I switch back to the desktop where HeidiSQL is, same behavior applies until I give focus to HeidiSQL window.
It makes sometimes HeidiSQL crash, I'll update my post with crash report if it ever happens again.
Thanks
date/time : 2015-10-15, 08:15:56, 878ms
computer name : **********
user name : **********
registered owner : Windows-Benutzer / *********
operating system : Windows 8 x64 build 9200
system language : German
system up time : 3 days
program up time : 2 days 1 hour
processors : 4x Intel(R) Core(TM) i3-3220 CPU @ 3.30GHz
physical memory : 4436/7888 MB (free/total)
free disk space : (C:) 25,72 GB
display mode : 1920x1080, 32 bit
process id : $c20
allocated memory : 82,40 MB
largest free block : 131029,99 GB
executable : heidisql.exe
exec. date/time : 2015-09-16 07:52
version : 9.3.0.4991
compiled with : Delphi XE5
madExcept version : 4.0.8.1
callstack crc : $04a03c3b, $b3ade354, $b3ade354
exception number : 1
exception class : EAccessViolation
exception message : Access violation at address 000000000087CF24 in module 'heidisql.exe'. Read of address 0000000000000630.
main thread ($250):
0087cf24 heidisql.exe SynEdit 10465 +1 TCustomSynEdit.AddFocusControl
0090ada5 heidisql.exe SynCompletionProposal 1391 +3 TSynBaseCompletionProposalForm.Activate
0080a077 heidisql.exe Vcl.Forms TCustomForm.CMActivate
0040cb1e heidisql.exe System TObject.Dispatch
00693403 heidisql.exe Vcl.Controls TControl.WndProc
0069aace heidisql.exe Vcl.Controls TWinControl.WndProc
0080479b heidisql.exe Vcl.Forms TCustomForm.WndProc
00699d0a heidisql.exe Vcl.Controls TWinControl.MainWndProc
005da643 heidisql.exe System.Classes StdWndProc
7fff0884 user32.dll SendMessageW
007ff794 heidisql.exe Vcl.Forms SendFocusMessage
008081b4 heidisql.exe Vcl.Forms TCustomForm.SetFocusedControl
0069a4fa heidisql.exe Vcl.Controls TWinControl.WndProc
0080479b heidisql.exe Vcl.Forms TCustomForm.WndProc
00699d0a heidisql.exe Vcl.Controls TWinControl.MainWndProc
005da643 heidisql.exe System.Classes StdWndProc
7fff0b1b ntdll.dll KiUserCallbackDispatcher
7fff0885 user32.dll PeekMessageW
00812e1c heidisql.exe Vcl.Forms TApplication.ProcessMessage
00812f93 heidisql.exe Vcl.Forms TApplication.HandleMessage
0081347f heidisql.exe Vcl.Forms TApplication.Run
00c6c3d7 heidisql.exe heidisql 78 +24 initialization
7fff0a61 KERNEL32.DLL BaseThreadInitThunk
7fff0b12 ntdll.dll RtlUserThreadStart
This only works when you use the minimized start menu ( like the Windows 7 menu ). Its little more complex when you use the fullscreen start menu and than it only works with more than one monitor. Klick windows key -> switch to other desktop with STRG + WINDOWS + LEFT/RIGHT -> klick on the other monitor ( where the start menu wasn't opened ) on the desktop ( or something shown there ) ... When you Press the windows key again instead of klicking, you will be switched again to the previous desktop.
@ansgar Please fix this annoying issue.
Are you all on the latest build of HeidiSQL?
I'm asking because I updated the relevant SynEdit component recently, which is responsible for that completion proposal. If the bug still persists in the latest build then I'm a bit stuck, as SynEdit is not maintained by me. They are located at SourceForge and someone should file a bugreport there.
Thank you for your replay. I've installed a few minutes ago the newest version ( 9.3.0.5045 ) and still having there the same issue :( I will check if i can find out something to fix this issue. I like to use heidi with the multi desktop support of windows 10 ^^
Maybe you can try https://github.com/TurboPack/SynEdit ... The SourceForge project isn't supported since 2013 :-/ Maybe this will work?
I see there are several forks of SynEdit, of which TurboPack SynEdit is only one of some. Others are searching for the latest clone as well: http://stackoverflow.com/questions/4505588/what-is-the-latest-synedit-version-or-clone
I just found Mystix but that seems to be outdated too.
So trying TurboPack looks like a good idea. But I highly guess that TurboPack also does not fix the multi-monitor issue.
Never programmed delphi so far, but feel free to send me a testversion via mail when it's possible to integrate the TurboPack version in an acceptable timeframe.
Tested a bit around. Only the Popup window of the Autocompleter cause this issue. When you minimize HeidiSQL actively ( with using _ Button ) after using the autocompleter, the error won't occur until heidisql was maximized again.
Switching Desktops with Windows + Tab (uncommon way, because STRG + WINDOWS + ARROW is faster ) also works without any issue.
Switch Desktop (Autocomplete prompt is there), reswitch to previous desktop with HeidiSQL, minimizing HeidiSQL, switch back to the other desktop ( prompt still there ), click into prompt, press esc cause an EInvalidOperation exception. ( see both attached screenshots and the bugreport )
Was also able to cause another EInvalidOperation exception with more entries in call stack. ( see bugreport_2.txt )
The Text Editor prompt ( seems to be SynEdit too? ) disappears without any issues and isn't visible on the other Desktop. Also the prompt for editing ENUM and SET Fields.
Only the Autocompleter cause the mentioned issues.
Attachement bugreport_2.txt ;)
I just merged latest changes from the SynEdit project into HeidiSQL's source. And I see there were some changes in the completion popup, wrt to the window behaviour. So, there is a slight chance that this is fixed now. Please update your HeidiSQL to the latest build so you can check that. I have no Win10 here around.
Please login to leave a reply, or register at first.