First change is to avoid creating and mapping windows concurrently, this is completely racy and can cause random results later on depending on which window ends up being focused and depending on the X11 events. In addition, FVWM focus tracking suffers from various race conditions already, which only makes it worse.
Second change is to avoid failing the tests because of spurious window resize messages on the dummy window. I'm not sure what the window is for exactly but I believe it's not meaningful in the message sequence as it never appears there. As it is maximized, the window is sometimes resized by some WMs when the display mode changes, which cause the spurious WM_SIZE messages.
--
v3: d3d8/tests: Use static class for the dummy window.
d3d8/tests: Avoid creating visible windows concurrently.
d3d9/tests: Use static class for the dummy window.
d3d9/tests: Avoid creating visible windows concurrently.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6700
On Thu Oct 24 16:32:46 2024 +0000, Vijay Kiran Kamuju wrote:
> changed this line in [version 28 of the diff](/wine/wine/-/merge_requests/4661/diffs?diff_id=139983&start_sha=704c7862cdae2a5c380fe8e52a0889864ffbb9e6#02bb3b4ad98d91472456efe7c9f200666067cf8d_5682_5665)
I removed the GdipSetEffectParameters implementation till tests are working.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4661#note_85981
On Thu Oct 24 16:32:46 2024 +0000, Vijay Kiran Kamuju wrote:
> changed this line in [version 28 of the diff](/wine/wine/-/merge_requests/4661/diffs?diff_id=139983&start_sha=704c7862cdae2a5c380fe8e52a0889864ffbb9e6#02bb3b4ad98d91472456efe7c9f200666067cf8d_5682_5665)
I removed the GdipSetEffectParameters implementation till tests are working.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4661#note_85980
On Thu Oct 24 16:32:45 2024 +0000, Vijay Kiran Kamuju wrote:
> changed this line in [version 28 of the diff](/wine/wine/-/merge_requests/4661/diffs?diff_id=139983&start_sha=704c7862cdae2a5c380fe8e52a0889864ffbb9e6#02bb3b4ad98d91472456efe7c9f200666067cf8d_5676_5665)
I removed the GdipSetEffectParameters implementation till tests are working.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4661#note_85979
On Thu Oct 24 16:32:45 2024 +0000, Vijay Kiran Kamuju wrote:
> changed this line in [version 28 of the diff](/wine/wine/-/merge_requests/4661/diffs?diff_id=139983&start_sha=704c7862cdae2a5c380fe8e52a0889864ffbb9e6#7c8ca2b5a97a42676b2979286a5fe74c047f321f_5537_5441)
I removed the implementation of GdipSetEffectParameters.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4661#note_85978
On Thu Oct 24 16:32:44 2024 +0000, Vijay Kiran Kamuju wrote:
> changed this line in [version 28 of the diff](/wine/wine/-/merge_requests/4661/diffs?diff_id=139983&start_sha=704c7862cdae2a5c380fe8e52a0889864ffbb9e6#02bb3b4ad98d91472456efe7c9f200666067cf8d_5668_5665)
I removed the implementation for GdipSetEffectParameters, till I can perfect the tests.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4661#note_85977
On Thu Oct 24 17:14:33 2024 +0000, Vijay Kiran Kamuju wrote:
> I have changed the structure a bit to fix a bit of issues
I removed the implementation of GdipSetEffectParameters, till I can perfect the tests for it.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4661#note_85976
This should be functionally no-op as the new state tracker has no side effect other than printing traces. It introduces a new pending/current states on the win data to track the requested changes, as well as the associated request serial for each of the property being changed.
Later, this tracker will help making the requests more asynchronous (removing the need for wait_for_withdrawn_state), avoid duplicate requests, and better decide whether the received updates are expected or should be applied back to the win32 window state:
- any update that is older than our last request, expected and matching our request, or unexpected but no-op can be ignored,
- any update that wasn't requested or doesn't match the request (because the WM decided so) will need to be applied on the win32 state.
Tracking the current X11 window state separately will also allow us to later delay these updates on the win32 state, possibly by posting an internal message for win32u to call us back to get the necessary changes, when every other message has been processed and avoid calling SetWindowPos / syscommand directly from within the driver event handlers.
--
v2: winex11: Track window config requests and updates.
winex11: Introduce a new window_set_config helper.
winex11: Track _NET_WM_STATE window property requests and updates.
winex11: Introduce a new window_set_net_wm_state helper.
winex11: Introduce a new window_set_wm_state helper.
winex11: Track _XEMBED_INFO window property changes.
winex11: Track WM_STATE window property requests and updates.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6729
This should be functionally no-op as the new state tracker has no side effect other than printing traces. It introduces a new pending/current states on the win data to track the requested changes, as well as the associated request serial for each of the property being changed.
Later, this tracker will help making the requests more asynchronous (removing the need for wait_for_withdrawn_state), avoid duplicate requests, and better decide whether the received updates are expected or should be applied back to the win32 window state:
- any update that is older than our last request, expected and matching our request, or unexpected but no-op can be ignored,
- any update that wasn't requested or doesn't match the request (because the WM decided so) will need to be applied on the win32 state.
Tracking the current X11 window state separately will also allow us to later delay these updates on the win32 state, possibly by posting an internal message for win32u to call us back to get the necessary changes, when every other message has been processed and avoid calling SetWindowPos / syscommand directly from within the driver event handlers.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6729