When the child window and the parent window are no longer in the same process,
the parent window shadow does not update the vis rgn of the child window and
modify the WS_VISIBLE style of the child window. so we need to update the vis
rgn when another process gets the DC of the child window.
Signed-off-by: Jiajin Cui <cuijiajin(a)uniontech.com>
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1306
MR !607 was trying to fix an issue with Life Is Strange Remastered, but
although it fixed some race conditions with presentation end, the issue
it was trying to fix is still there.
The game calls IMFMediaSession_Stop while the presentation is ending, expects
that command to quickly execute, interrupting the presentation end and
emitting a MESessionStopped event instead of the MESessionEnded.
Delaying the Stop command and emitting the MESessionEnded event breaks
the game assumptions and it crashes.
--
v4: mf: Discard end of presentation on IMFMediaSession_Stop.
mf/tests: Test IMFMediaSession_Stop command near presentation end.
mf/tests: Test Start / Pause / Stop IMFMEdiaSession events.
mf/tests: Split wait_media_event helper into wait_next_media_event.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1710
Allowing the job to fail to avoid failing the pipeline. Some new tests
are failing with it, and some are succeeding todo_wine.
--
v5: gitlab: Run user32 32-bit tests with nulldrv driver.
user32/tests: Update todos specific to the X11 display driver.
user32/tests: Check graphics driver and add todos for nulldrv.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1259
Implements navigation bar featuring:
- back/forward buttons
- go up button
- address crumbs
- hides crumbs when there's not enough space to display all of them
- always shows at least 2 crumbs
- truncating them if needed
- first crumb is at least 56px
- aligns label to the left if truncated
- right clicking on the crumb, or free space, opens a menu with `Copy address as text` and `Edit address` options
- reuses existing crumbs to avoid some flickering
- overflow menu
- ~~first crumb is always moved here~~
- removes the split, if there are no items in the menu
- hidden crumbs are moved here
- left ~~or right~~ click on the button starts address editing
- address edit
- accepts an existing path
- expands environment variables, e.g. `%APPDATA%\Microsoft` -> `C:\users\%USERNAME%\AppData\Roaming\Microsoft`
- errors with a `MessageBox` on nonexistent paths
- refresh button
- changes into go to button when editing address
- DPI scaling
Screenshots:






Remaining issues:
- crumbs not lighting up when hovered sometimes
- can be observed in current file dialog, hovering over dropdown arrow of a file type fixes it for a moment
- crumbs flickering on address change sometimes
- mostly when there's not enough space to display all of them
- `DeferWindowPos` doesn't seem to be atomic in Wine, presumably is in native Windows?
- unexpected address conversion for some PIDLs
- e.g. `Desktop` -> `C:\users\%USERNAME%\Desktop`, which is an entirely different location
- or `My Computer` into an empty string
- known folders are not handled by address edit, e.g. `Desktop`, `My Computer`
- icons are not DPI scaled
- while writing this:
```
0024:fixme:bitmap:NtGdiCreateBitmap planes = 0
0024:err:system:user_check_not_lock BUG: holding USER lock
wine/dlls/win32u/sysparams.c:396: user_check_not_lock: Assertion `0' failed.
wine: Assertion failed at address F7FF8549 (thread 0024), starting debugger...
```
- can't reproduce, happened when clicking on an item in overflow menu
- race condition? cosmic ray?
Addresses following bugs:
- https://bugs.winehq.org/show_bug.cgi?id=29912
- https://bugs.winehq.org/show_bug.cgi?id=50338
- https://bugs.winehq.org/show_bug.cgi?id=51855 (partially? no search box)
--
v13: comdlg32: Add Ctrl+Backspace delete word to IFileDialog address edit.
comdlg32: Use path word break in IFileDialog address edit.
comctl32: Fix PathWordBreakProc.
comdlg32: Keep IExplorerBrowser in IFileDialog focused after Backspace.
fixup: comdlg32: Add address edit to IFileDialog navigation bar.
comdlg32: Add refresh/go to button to IFileDialog navigation bar.
comdlg32: Add address edit to IFileDialog navigation bar.
comdlg32: Add breadcrumb overflow menu to IFileDialog navigation bar.
comdlg32: Add address breadcrumbs to IFileDialog navigation bar.
comdlg32: Add go up button to IFileDialog navigation bar.
comdlg32: Add IFileDialog navigation bar.
comdlg32: Enable visual styles when showing IFileDialog.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1857
--
v3: ntdll: Add return address information in __wine_debug_context.
ntdll: Add file and line information in __wine_debug_context.
ntdll: Introduce struct __wine_debug_context for extensible debug info.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2274
--
v3: d2d1/tests: Test IsSupported() for bitmap render targets.
d2d1: Implement d2d_bitmap_render_target_IsSupported().
d2d1/tests: Test IsSupported() for DC render targets.
d2d1: Implement d2d_dc_render_target_IsSupported().
d2d1/tests: Test IsSupported() for hwnd render targets.
d2d1: Implement d2d_hwnd_render_target_IsSupported().
https://gitlab.winehq.org/wine/wine/-/merge_requests/811