WPF - OnLostMouseCapture with active scrolling.
- Lingua principale
- C#
- Stelle
- 10.3k
- Fork
- 2.9k
- Merge medio
- 5g 22h
- PR unite (30g)
- 4
Descrizione
- **What version of the product are you using?**
v85.3.130
- **What architecture x86 or x64?**
Both
- **On what operating system?**
Win10
- **Are you using `WinForms`, `WPF` or `OffScreen`?**
WPF
- **What steps will reproduce the problem?**
1)Draging the scrollbar with left button pressing
2)move the cursor out of the browser control
2)press alt+tab, choose other app.
3)release left button.
4)move mouse in browser, browser is thinking that mouse is pressed.
- **Please provide any additional information below.**
As i said in https://github.com/cefsharp/CefSharp/pull/2871 we have problem with OnLostMouseCapture.
Default wpf implementation does not raise mouse up event after lost mouse capture.
Worked fast fix(SubClass):
```
private bool isLeftMouseDown;
protected override void OnMouseDown(MouseButtonEventArgs e)
{
isLeftMouseDown = e.LeftButton == MouseButtonState.Pressed;
base.OnMouseDown(e);
}
protected override void OnLostMouseCapture(MouseEventArgs e)
{
var modifiers = e.GetModifiers();
var point = e.GetPosition(this);
if (isLeftMouseDown)
{
GetBrowser().GetHost().SendMouseClickEvent((int)point.X, (int)point.Y, MouseButtonType.Left, true, 1, modifiers);
isLeftMouseDown = false;
}
base.OnLostMouseCapture(e);
}
```
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Riproduci lo scenario WPF descritto: trascina la barra di scorrimento, sposta il cursore fuori dal controllo del browser, passa da un’applicazione all’altra con Alt+Tab, rilascia il pulsante e muovi nuovamente il mouse. Inizia dalla gestione di OnLostMouseCapture in WPF e dal workaround mostrato nell’issue; il lavoro è completato quando il browser non considera più premuto il pulsante sinistro del mouse dopo la perdita della cattura.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- csharp
- Ambito
- desktop
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100