dotnet / dotnet/wpf

PenImc do not update when the cross thread main windows moved

Open
#2,892 3 comments 6 reactions 0 assignees View on GitHub
Bug
Dominant language
C#
Stars
7.7k
Forks
1.3k
Avg merge
1d 11h
Merged PRs (30d)
61

Description

* .NET Core Version: 3.0.102
* Windows version: 10.0.18362
* Does the bug reproduce also in WPF for .NET Framework 4.8?: Yes



**Problem description:**

When we set the other windows as the parent window and the parent window on the different threads, the window will not update the touch position in PenImc.

That means that we can not get the correct position when we touch the screen after we move the parent window.

Why the PenImc not update? Because the PimcManager.cpp use the `WM_SIZE` and `WM_MOVE` message to update the window bounds. And it can not receive the `WM_MOVE` message when we move the parent window. That means that the PenImc will use the old bounds

https://github.com/dotnet/wpf/blob/eafaf5e68d812914e99a04b202fffcf9f4749702/src/Microsoft.DotNet.Wpf/src/PenImc/dll/PimcManager.cpp#L863-L865

**Actual behavior:**

![](https://i.loli.net/2020/04/16/Jj3lYaxmTU7Fu1C.gif)

**Expected behavior:**

We can receive the correct position after we move the parent window.

**Minimal repro:**

https://github.com/lindexi/lindexi_gd/tree/000b6674fccdfbb69aa8a4d1249553b2998464a8/BallkowhejallColalljaygairwair

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.