laurencee / Livestream.Monitor

A windows GUI for livestreamer/streamlink
GNU General Public License v2.0
60 stars 8 forks source link

Game Filter overwrites input, then eats it #26

Closed Tharn closed 7 years ago

Tharn commented 7 years ago
laurencee commented 7 years ago

Yeah that's one I noticed a long time ago, unsure of how to fix it.

I'm querying the api while the typing is going on and delaying populating the dropdown list but it's a bit funky.

Tharn commented 7 years ago

You could just not allow it to modify the input field at all, but leave all suggestions to the drop-down box? That's the first thing that comes to mind anyway.

laurencee commented 7 years ago

Apparently it wasn't that hard, just had to override the default dropdown behaviour not to automatically select the text.

This feels like how the combobox UI control should have functioned in the first place without me having to do this hacky workaround heh.

Tharn commented 7 years ago

Hey, unfortunately it still does effectively the same thing. Even if the text is not auto-selected, it is removed once suggestions pop up, so that when you keep typing you delete everything up to that point.

It might not be such a bad idea to not have the input box changed at all and leave suggestions to be shown and updated only in the drop-down.

It also gave me a crash while I was messing with that input box and the streams were loading simultaneously.

EventType=CLR20r3
EventTime=131313053234669669
ReportType=2
Consent=1
ReportIdentifier=f1e154d0-f079-11e6-8322-001f1636cfec
IntegratorReportIdentifier=f1e154cf-f079-11e6-8322-001f1636cfec
WOW64=1
NsAppName=Livestream.Monitor.exe
Response.type=4
Sig[0].Name=Problem Signature 01
Sig[0].Value=Livestream.Monitor.exe
Sig[1].Name=Problem Signature 02
Sig[1].Value=2.9.2.0
Sig[2].Name=Problem Signature 03
Sig[2].Value=589f1363
Sig[3].Name=Problem Signature 04
Sig[3].Value=PresentationFramework
Sig[4].Name=Problem Signature 05
Sig[4].Value=4.6.1590.0
Sig[5].Name=Problem Signature 06
Sig[5].Value=5787fd16
Sig[6].Name=Problem Signature 07
Sig[6].Value=1909
Sig[7].Name=Problem Signature 08
Sig[7].Value=3d
Sig[8].Name=Problem Signature 09
Sig[8].Value=System.InvalidOperationException
DynamicSig[1].Name=OS Version
DynamicSig[1].Value=6.3.9600.2.0.0.256.48
DynamicSig[2].Name=Locale ID
DynamicSig[2].Value=1031
DynamicSig[22].Name=Additional Information 1
DynamicSig[22].Value=5861
DynamicSig[23].Name=Additional Information 2
DynamicSig[23].Value=5861822e1919d7c014bbb064c64908b2
DynamicSig[24].Name=Additional Information 3
DynamicSig[24].Value=6ee2
DynamicSig[25].Name=Additional Information 4
DynamicSig[25].Value=6ee2432e64e99bdcea5e4be767a3b1a2
UI[2]=C:\Program Files (x86)\Livestream Monitor\Livestream.Monitor.exe
UI[3]=Livestream.Monitor has stopped working
UI[4]=Windows can check online for a solution to the problem.
UI[5]=Check online for a solution and close the program
UI[6]=Check online for a solution later and close the program
UI[7]=Close the program
LoadedModule[0]=C:\Program Files (x86)\Livestream Monitor\Livestream.Monitor.exe
LoadedModule[1]=C:\Windows\SYSTEM32\ntdll.dll
LoadedModule[2]=C:\Windows\SYSTEM32\MSCOREE.DLL
LoadedModule[3]=C:\Windows\SYSTEM32\KERNEL32.dll
LoadedModule[4]=C:\Windows\SYSTEM32\KERNELBASE.dll
LoadedModule[5]=C:\Windows\SYSTEM32\ADVAPI32.dll
LoadedModule[6]=C:\Windows\SYSTEM32\msvcrt.dll
LoadedModule[7]=C:\Windows\SYSTEM32\sechost.dll
LoadedModule[8]=C:\Windows\SYSTEM32\RPCRT4.dll
LoadedModule[9]=C:\Windows\SYSTEM32\SspiCli.dll
LoadedModule[10]=C:\Windows\SYSTEM32\CRYPTBASE.dll
LoadedModule[11]=C:\Windows\SYSTEM32\bcryptPrimitives.dll
LoadedModule[12]=C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscoreei.dll
LoadedModule[13]=C:\Windows\SYSTEM32\SHLWAPI.dll
LoadedModule[14]=C:\Windows\SYSTEM32\combase.dll
LoadedModule[15]=C:\Windows\SYSTEM32\USER32.dll
LoadedModule[16]=C:\Windows\SYSTEM32\GDI32.dll
LoadedModule[17]=C:\Windows\system32\IMM32.DLL
LoadedModule[18]=C:\Windows\SYSTEM32\MSCTF.dll
LoadedModule[19]=C:\Windows\SYSTEM32\kernel.appcore.dll
LoadedModule[20]=C:\Windows\SYSTEM32\VERSION.dll
LoadedModule[21]=C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
LoadedModule[22]=C:\Windows\SYSTEM32\MSVCR120_CLR0400.dll
LoadedModule[23]=C:\Windows\assembly\NativeImages_v4.0.30319_32\mscorlib\7582400666d289c016013ad0f6e0e3e6\mscorlib.ni.dll
LoadedModule[24]=C:\Windows\SYSTEM32\ole32.dll
LoadedModule[25]=C:\Windows\system32\uxtheme.dll
LoadedModule[26]=C:\Windows\assembly\NativeImages_v4.0.30319_32\System\1be7a15b1f33bf22e4f53aaf45518c77\System.ni.dll
LoadedModule[27]=C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Core\eb4cca4f06a15158c3f7e2c56516729b\System.Core.ni.dll
LoadedModule[28]=C:\Windows\assembly\NativeImages_v4.0.30319_32\WindowsBase\9a2107b30cbb02ca475f58ed046eff63\WindowsBase.ni.dll
LoadedModule[29]=C:\Windows\SYSTEM32\CRYPTSP.dll
LoadedModule[30]=C:\Windows\system32\rsaenh.dll
LoadedModule[31]=C:\Windows\SYSTEM32\bcrypt.dll
LoadedModule[32]=C:\Windows\assembly\NativeImages_v4.0.30319_32\PresentationCore\d7a637fdf68801e37fc897b530f9a8a6\PresentationCore.ni.dll
LoadedModule[33]=C:\Windows\assembly\NativeImages_v4.0.30319_32\Presentatio5ae0f00f#\56617af3d6fd992497999aec2be809a4\PresentationFramework.ni.dll
LoadedModule[34]=C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Xaml\ca5d89c8ed4d2a7e542244cd6757e3cd\System.Xaml.ni.dll
LoadedModule[35]=C:\Windows\SYSTEM32\dwrite.dll
LoadedModule[36]=C:\Windows\Microsoft.NET\Framework\v4.0.30319\WPF\wpfgfx_v0400.dll
LoadedModule[37]=C:\Windows\SYSTEM32\OLEAUT32.dll
LoadedModule[38]=C:\Windows\Microsoft.NET\Framework\v4.0.30319\WPF\PresentationNative_v0400.dll
LoadedModule[39]=C:\Windows\Microsoft.NET\Framework\v4.0.30319\clrjit.dll
LoadedModule[40]=C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Runt73a1fc9d#\60a7f8245c39a1b0bf984a11845c6878\System.Runtime.Remoting.ni.dll
LoadedModule[41]=C:\Windows\SYSTEM32\ws2_32.dll
LoadedModule[42]=C:\Windows\SYSTEM32\NSI.dll
LoadedModule[43]=C:\Windows\system32\mswsock.dll
LoadedModule[44]=C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Configuration\fe4b221b4109f0c78f57a792500699b5\System.Configuration.ni.dll
LoadedModule[45]=C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Xml\4fbda26d781323081b45526da6e87b35\System.Xml.ni.dll
LoadedModule[46]=C:\Windows\system32\dwmapi.dll
LoadedModule[47]=C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Runtime\ed81a2773fea4a22e854c221c43ea703\System.Runtime.ni.dll
LoadedModule[48]=C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Thre7bb2aad0#\b51d30adc17307d69b1a4d3eb6a9a52c\System.Threading.Tasks.ni.dll
LoadedModule[49]=C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Reflection\597bd81c0167c6023c23a8a3fc08bfce\System.Reflection.ni.dll
LoadedModule[50]=C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Collections\4a3832ec04e5d914b6d8a385f4dc239d\System.Collections.ni.dll
LoadedModule[51]=C:\Windows\assembly\NativeImages_v4.0.30319_32\System.ObjectModel\c832e17f9ebbbd93cb674ce6b4cba7ec\System.ObjectModel.ni.dll
LoadedModule[52]=C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Linq\2af9e4a0e884758773508e0f9ac48399\System.Linq.ni.dll
LoadedModule[53]=C:\Windows\assembly\NativeImages_v4.0.30319_32\Presentatiod51afaa5#\b1a703270740166d011f1c594e7e5620\PresentationFramework.classic.ni.dll
LoadedModule[54]=C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Resoc6338000#\b0b7fb4b47b826fd5362a97aaa5cd0e2\System.Resources.ResourceManager.ni.dll
LoadedModule[55]=C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Refl9c203d4d#\d701d8d588220c8da9df743b4cdf45ed\System.Reflection.Extensions.ni.dll
LoadedModule[56]=C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Numerics\d3d95e1e349be37505587e7fee918881\System.Numerics.ni.dll
LoadedModule[57]=C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Runtdf6812ee#\660a11dd380151392d3aa9753ee0c777\System.Runtime.Serialization.Primitives.ni.dll
LoadedModule[58]=C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Runteb92aa12#\9b0d0cb232dec8e57df49678532cb923\System.Runtime.Serialization.ni.dll
LoadedModule[59]=C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Xml.Linq\1c4a51c8b46a8f31e3e23690f749182f\System.Xml.Linq.ni.dll
LoadedModule[60]=C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Data\3d8d5aa204390110a4629a103566787f\System.Data.ni.dll
LoadedModule[61]=C:\Windows\Microsoft.Net\assembly\GAC_32\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll
LoadedModule[62]=C:\Windows\SYSTEM32\CRYPT32.dll
LoadedModule[63]=C:\Windows\SYSTEM32\MSASN1.dll
LoadedModule[64]=C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Linqbd02a4fb#\8995acf8f4071d04ea0831eb497d2fae\System.Linq.Expressions.ni.dll
LoadedModule[65]=C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Threading\2a458675814b02cad2df8324768176c8\System.Threading.ni.dll
LoadedModule[66]=C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Runt19c51595#\f1f56b45505fea740d1f3c54ab2cb598\System.Runtime.Caching.ni.dll
LoadedModule[67]=C:\Windows\SYSTEM32\shell32.dll
LoadedModule[68]=C:\Windows\SYSTEM32\SHCORE.dll
LoadedModule[69]=C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Text2f5a8366#\4ec5e92535cf9f8d4214ee234ebacd15\System.Text.RegularExpressions.ni.dll
LoadedModule[70]=C:\Windows\SYSTEM32\d3d9.dll
LoadedModule[71]=C:\Windows\SYSTEM32\igdumdx32.dll
LoadedModule[72]=C:\Windows\SYSTEM32\igdumd32.dll
LoadedModule[73]=C:\Windows\SYSTEM32\PowrProf.dll
LoadedModule[74]=C:\Windows\SYSTEM32\urlmon.dll
LoadedModule[75]=C:\Windows\SYSTEM32\iertutil.dll
LoadedModule[76]=C:\Windows\SYSTEM32\WININET.dll
LoadedModule[77]=C:\Windows\SYSTEM32\USERENV.dll
LoadedModule[78]=C:\Windows\SYSTEM32\profapi.dll
LoadedModule[79]=C:\Windows\SYSTEM32\WindowsCodecs.dll
LoadedModule[80]=C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Drawing\1d52bd4ac5e0a6422058a5d62c9f6d9d\System.Drawing.ni.dll
LoadedModule[81]=C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Net.Http\5faf546a8e018d89b1c277e0be243e4b\System.Net.Http.ni.dll
LoadedModule[82]=C:\Windows\SYSTEM32\iphlpapi.dll
LoadedModule[83]=C:\Windows\SYSTEM32\WINNSI.DLL
LoadedModule[84]=C:\Windows\SYSTEM32\DNSAPI.dll
LoadedModule[85]=C:\Windows\SYSTEM32\dhcpcsvc6.DLL
LoadedModule[86]=C:\Windows\SYSTEM32\dhcpcsvc.DLL
LoadedModule[87]=C:\Windows\SYSTEM32\rasapi32.dll
LoadedModule[88]=C:\Windows\SYSTEM32\rasman.dll
LoadedModule[89]=C:\Windows\SYSTEM32\rtutils.dll
LoadedModule[90]=C:\Windows\SYSTEM32\winhttp.dll
LoadedModule[91]=C:\Windows\SYSTEM32\clbcatq.dll
LoadedModule[92]=C:\Windows\System32\rasadhlp.dll
LoadedModule[93]=C:\Windows\System32\fwpuclnt.dll
LoadedModule[94]=C:\Windows\SYSTEM32\WtsApi32.dll
LoadedModule[95]=C:\Windows\SYSTEM32\WINSTA.dll
LoadedModule[96]=C:\Windows\SYSTEM32\psapi.dll
LoadedModule[97]=C:\Windows\SYSTEM32\secur32.dll
LoadedModule[98]=C:\Windows\SYSTEM32\schannel.dll
LoadedModule[99]=C:\Windows\assembly\NativeImages_v4.0.30319_32\UIAutomationTypes\2209ad4dbd30546de5e512fde664bc7e\UIAutomationTypes.ni.dll
LoadedModule[100]=C:\Windows\SYSTEM32\UIAutomationCore.dll
LoadedModule[101]=C:\Windows\SYSTEM32\sxs.dll
LoadedModule[102]=C:\Windows\SYSTEM32\ncrypt.dll
LoadedModule[103]=C:\Windows\SYSTEM32\NTASN1.dll
LoadedModule[104]=C:\Windows\system32\ncryptsslp.dll
LoadedModule[105]=C:\Windows\SYSTEM32\gpapi.dll
LoadedModule[106]=C:\Windows\system32\msctfui.dll
LoadedModule[107]=C:\Windows\SYSTEM32\WINMM.dll
LoadedModule[108]=C:\Windows\SYSTEM32\WINMMBASE.dll
LoadedModule[109]=C:\Windows\SYSTEM32\cfgmgr32.dll
LoadedModule[110]=C:\Windows\SYSTEM32\DEVOBJ.dll
LoadedModule[111]=C:\Windows\assembly\NativeImages_v4.0.30319_32\UIAutomationProvider\12bbafb0657e4fb036fd2b84ffd1129c\UIAutomationProvider.ni.dll
LoadedModule[112]=C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Deployment\2cae7b890a1870c4314f1e55240b414f\System.Deployment.ni.dll
LoadedModule[113]=C:\Windows\SYSTEM32\ondemandconnroutehelper.dll
LoadedModule[114]=C:\Windows\Microsoft.NET\Framework\v4.0.30319\diasymreader.dll
FriendlyEventName=Stopped working
ConsentKey=CLR20r3
AppName=Livestream.Monitor
AppPath=C:\Program Files (x86)\Livestream Monitor\Livestream.Monitor.exe
NsPartner=windows
NsGroup=windows8
ApplicationIdentity=6976EC803CFEC63C08C81B85ED36E5E9
laurencee commented 7 years ago

Hmm ok cheers for the response, I'll just pull that release for the time being.

laurencee commented 7 years ago

When the app crashes it should put a log into a log subfolder (same directory as the exe), that generally has more useful information for me.

Tharn commented 7 years ago

Oh yeah, here's that log.

17:48:42.1467| System.InvalidOperationException: Internal error: internal WPF code tried to reactivate a BindingExpression that was already marked as detached.
   at System.Windows.Data.BindingExpressionBase.SetStatus(BindingStatusInternal status)
   at MS.Internal.Data.ClrBindingWorker.SetStatus(PropertyPathStatus status)
   at MS.Internal.Data.ClrBindingWorker.CompleteGetValue(AsyncGetValueRequest request)
   at MS.Internal.Data.ClrBindingWorker.OnCompleteGetValueOperation(Object arg)
   at MS.Internal.Data.DataBindOperation.Invoke()
   at MS.Internal.Data.DataBindEngine.ProcessCrossThreadRequests()
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
laurencee commented 7 years ago

What game name were you typing in out of interest? Been trying to find something easy to reproduce the original problem easily so I can test if various solutions work.

Tharn commented 7 years ago

Haha.. I've been using 'Starcraft' on Twitch.TV every single time.

Still on 2.9.2 to check it out... the weird thing is that it mostly works as it should, but if your timing is just wrong, it'll delete the input box. You can get this result most reliably by typing letter after letter at roughly 150 BPM.

My hunch would be that it moves the active cursor into the dropdown list sometimes (or does something depending on speed of input, or enough time passed since last input), and when you return it by typing a letter it'll delete the input box either way. But that could be wrong.

laurencee commented 7 years ago

The search fires after 250ms has elapsed from the last key input. I'm testing a different approach to populating the dropdown list atm, it seems to be a bit more reliable but I've found some odd scenarios in which it can still clear the input but I'm finding it much more difficult to do so.

You can try this debug build for yourself and see if it's any better for you or not. Livestream.Monitor v2.9.2 debug.zip

laurencee commented 7 years ago

Might have to look for/or create a custom control to do this since the wpf combobox doesn't seem to making this particularly easy hehe.

Tharn commented 7 years ago

Debug build seems good, so far I haven't been able to make it eat letters or crash.

laurencee commented 7 years ago

Ok seems good enough for me, doesn't need to be perfect. :)

https://github.com/laurencee/Livestream.Monitor/releases/tag/2.9.2