WinForms - Enter/Arrow keys not working with DevTool/Popups with MultiThreadedMessageLoop = false
- Vorherrschende Sprache
- C#
- Sterne
- 10.3k
- Forks
- 2.9k
- Ø Merge
- 5 T. 22 Std.
- Gemergte PRs (30 T.)
- 4
Beschreibung
- **What version of the product are you using?**
Multiple versions:
*CefSharp.MinimalExample* with Nuget package 75.1.142.
But it also reproduces with 69 and 73
- **What architecture x86 or x64?**
x64
- **On what operating system?**
Windows 10
- **Are you using `WinForms`, `WPF` or `OffScreen`?**
WinForms
- **What steps will reproduce the problem?**
I used *CefSharp.MinimalExample.WinForms.csproj* as the base. I added `MultiThreadedMessageLoop = false` and called `Cef.DoMessageLoopWork()` on a timer to enable the integrated message loop.
Here is a branch with the changes: https://github.com/kiewic/CefSharp.MinimalExample/tree/kiewic/devtools-enter-key-integrated-message-loop
Once the modified sample is running:
1. Open DevTools
2. Write a command, for example, `console.log("Hello World")`
3. Press `ENTER` key, but nothing happens, the key is ignored
4. Press `left arrow` or `right arrow` to move the cursor left or right, but the cursor does not move
- **What is the expected output? What do you see instead?**
It is expected that `ENTER` and arrow keys work the same as in the multi-threaded message loop. ENTER key should execute the command, and arrow keys should move the cursor.
- **Please provide any additional information below.**
No exceptions.
Nothing relevant in *debug.log*.
- **Does this problem also occur in the `CEF` Sample Application from http://opensource.spotify.com/cefbuilds/index.html?**
This does not reproduce with `cefclient.exe`. I executed it WITHOUT `--multi-threaded-message-loop`. I tried version: `cef_binary_76.1.13+gf19c584+chromium-76.0.3809.132_windows64_client`
Beitragsleitfaden
Rechercherichtung
Beginne mit den Änderungen an CefSharp.MinimalExample.WinForms.csproj im verknüpften Branch, insbesondere mit MultiThreadedMessageLoop = false und dem Timer, der Cef.DoMessageLoopWork() aufruft. Führe das Beispiel aus, öffne die DevTools und reproduziere die Fehler bei der Enter- und den Pfeiltasten; vergleiche das Verhalten mit der Multithread-Schleife und cefclient.exe. Als abgeschlossen gilt die Aufgabe, wenn beide Tastentypen in der integrierten Nachrichtenschleife funktionieren.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- csharp
- Bereich
- desktop, devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 32/100