WinForms - Enter/Arrow keys not working with DevTool/Popups with MultiThreadedMessageLoop = false
- Langage dominant
- C#
- Étoiles
- 10.3k
- Forks
- 2.9k
- Merge moyen
- 5 j 22 h
- PR mergées (30 j)
- 4
Description
- **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`
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par les modifications de CefSharp.MinimalExample.WinForms.csproj dans la branche liée, en particulier MultiThreadedMessageLoop = false et le timer qui appelle Cef.DoMessageLoopWork(). Exécutez l’exemple, ouvrez DevTools et reproduisez les échecs de la touche Entrée et des touches fléchées ; comparez le comportement avec la boucle multithread et cefclient.exe. Le travail est terminé lorsque les deux types de touches fonctionnent dans la boucle de messages intégrée.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- csharp
- Domaine
- desktop, devtools
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 32/100