The server's idea of the cursor position is never really initialized. Normally that's not a problem, since the first mouse movement and a number of other X events will update it. But in the case where the user never moves the mouse, it can remain out of sync. That manifests as `GetCursorPos` bouncing between the server's incorrect value and the real one from the user driver, depending on the age of the position on the server.
I've marked this as a draft for two reasons:
1. I don't quite know where this belongs. We want to do it early in the lifespan of a user driver but after there's a desktop, so I've put it behind a `pthread_once` called from `get_desktop_window`.
2. I'm calling `NtUserSetCursorPos` to update the server, rather than a direct `set_cursor` request, because it contains some DPI logic. That has the side effect of potentially warping the cursor. That's not desirable or necessary, but it shouldn't be a problem. It's easily factored around if we want to avoid it.
Any guidance would be greatly appreciated!
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1250
Used LCG algorithm and its parameters are documented in various places. Parts that were not obvious - negative argument handling in Rnd(), and Randomize() use of current state were taken from LGPL2 FreeBASIC rtlib.
--
v2: vbscript: Implement PRNG functions.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1246
Used LCG algorithm and its parameters are documented in various places. Parts that were not obvious - negative argument handling in Rnd(), and Randomize() use of current state were taken from LGPL2 FreeBASIC rtlib.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1246
Signed-off-by: Jinoh Kang <jinoh.kang.kr(a)gmail.com>
--
v9: server: Don't invalidate the newly exposed child region on the parent if it doesn't clip children.
server: Redraw composited window child when its z-order changes.
server: Correctly expose composited parent window and its child on position change.
https://gitlab.winehq.org/wine/wine/-/merge_requests/231
This series improves Wine's support for delete-on-close flag and
delete disposition information on files:
- adapts tests for Windows 10
- extend and fix some tests
- implement some missing features in ntdll & server
--
v3: server: Let file creation fail depending unlink status.
server: Propagate the unlink status to all opened/closed files.
ntdll: Query FILE_STANDARD_INFORMATION.DeletePending from server.
ntdll: Extend file tests about delete-on-close and disposition.
ntdll: Fix share mode for some delete-on-close/delete disposition tests.
ntdll: Adapt file tests on delete-on-close / delete disposition to Windows 10.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1231
The storage event url prop fix is tested after the location.hash tests are added, implicitly. I didn't find a need to add extra tests for no reason there.
The super_navigate changes for fragments is also necessary for the location.hash tests (and its behavior, apparently)…
--
v3: mshtml: Implement document.importNode.
mshtml: Implement HTMLLocation_put_hash.
mshtml: Always use super_navigate when navigating fragments.
mshtml: Don't include fragment in storage event's url prop.
mshtml: Return E_ABORT if wine-gecko's OnDataAvailable aborts the binding.
mshtml: Improve locale stub for KeyboardEvent.
mshtml: Implement isContentEditable for HTML elements.
mshtml/tests: Handle broken localStorage on native.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1206
I’d advice against building wine against Xcode11, the included version of cctools will cause weird breakages for 32Bit binaries.
The default Xcode 10 command Line Tools version for Mojave is fine and comes with the headers package that installs the DevSDK like prior macOS versions.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1219#note_12984
Current solution of _set_direction() is very imprecise. This MR replaces it with more precise needs_conversion() functions. It already fixes a few cases and will be more important in the future, when we will use more generated conversion functions.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1243
On Thu Nov 3 10:12:10 2022 +0000, Piotr Caban wrote:
> I don't know why it crashes on startup on your machine but it's not
> caused by _Condition_variable_notify_one being redefined in multiple .so
> files (I guess you're using no-mingw build of Wine). Maybe there's e.g.
> some kind of memory corruption that happens to be hidden by that change.
> If you don't believe me that it's not the problem - the application
> loads both msvcp120 and msvcp140, there are much more global symbols
> with the same names and you don't see any problem caused by it.
> Please change the commit message (patch title you set with git while
> committing the patch, not only merge request title).
Thanks for the tip I've updated the commit info
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1229#note_12971
_Condition_variable_notify_one and DEFINE_THISCALL_WRAPPER(_Condition_variable_notify_one, 4) are redefined in other dynamic libraries.
Therefore, it caused the problem of global symbol coverage, which caused crash.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1229