The drag and drop helpers are mainly used for providing visual feedback for drag and drop operations. While they do not actually influence the dragging process, some applications may expect it to succeed before initiating dragging. If the functions are not implemented, however, then dragging may fail.
This patch set contains tests for basic functionality of the functions involved. It does not account for displaying the drag-image, it just tests for enough functionality to create a basic implementation and allow dragging operations to carry on. Drag-image handling will be added later.
The patch set contains only the tests. The implementation will be added in a separate MR.
--
v5: shell32/tests: Add tests for drag and drop helpers
include/shlobj.h: Add DI_GETDRAGIMAGE message
include/shobjidl.idl: Add DSH_ALLOWDROPDESCRIPTIONTEXT constant
https://gitlab.winehq.org/wine/wine/-/merge_requests/1371
This fixes a crash with .NET application running with such locales, for example en-DE. The crash happens early in initialization, due to failure to return preferred UI language, which happens because there is no LCID -> locale name conversion for custom locales. It doesn't affect just preferred language, but also system default language, and other derived values.
--
v3: ntdll: Do not set system locales that resolve to custom-unspecified.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1417
- v2:
- Allocate 3 buffers instead of 100.
- Add support for MFSampleExtension_Discontinuity.
--
v2: winegstreamer: Set the discontinuity flag in wg_transform.
include: Add MFSampleExtension_Discontinuity to mfapi.h.
winegstreamer: Allocate at least 3 buffers for MPEG audio in quartz parser.
winegstreamer: Release the samples when stopping the quartz transform.
winegstreamer: Hold the streaming lock while destroying wg_transform.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1384
This implements some events related to document/window load and unload / visibility changes. The latter is related in that native partially implements it, and only sends it when it is minimized or restored from being minimized, not on navigation or anything else.
The main issue for me is the visibilitychange patch. Since we don't control the container hwnd, and it can even be in another process, there is no way to be notified cleanly when it changes its minimization state. We can't subclass it either, as the tests show, it's not subclassed.
I implemented it now using an internal timer that polls for that, since it was the least invasive and works in all cases, including other process hwnd. Hooks wouldn't be able to do that, and are also more invasive IMO. I'm hoping for better ideas, though.
--
v4: mshtml: Implement pagehide event.
mshtml: Implement unload event.
mshtml: Dispatch beforeunload event to the window.
mshtml: Store the nsevent listener descs in a table.
mshtml: Implement pageshow event.
mshtml: Add visibilitychange event stub.
mshtml: Dispatch Gecko events to the window if there's no node.
mshtml: Do not register Gecko load event handler twice.
mshtml: Allow EVENT_BIND_TO_TARGET to bind to the window.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1373
This is my first time implementing an interface so thorough feedback would be appreciated.
--
v5: windows.media: Implement IClosedCaptionPropertiesStatics interface.
include/windowscontracts: Bump contractversion to 14.
windows.media: Add stub DLL.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1343
It is possible that a stream is destroyed while another thread is waiting on
event_empty_cond or event_cond. The waiting thread should have the opportunity
to be rescheduled and exit the critical section before the condition variables
and the mutex are destroyed.
--
v3: winegstreamer: Synchronize media source async commands and shutdown.
winegstreamer: Free the GStreamer buffer when freeing a WG parser stream.
winegstreamer: Synchronize access to the media source from callbacks.
winegstreamer: Synchronize concurrent access to the media stream.
winegstreamer: Synchronize concurrent access to the media source.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1278
I was watching some random YouTube stream and then heard a voice telling me to do this.
This can run wglgears on wow, though there's plenty of missing pieces which I don't have any idea how to fix (like buffer mapping, etc.). Opening it as a draft for now to show the whole thing, if it seems alright I'll send it in batches.
--
v5: winex11.drv: Avoid crashing on invalid pixel format pointer.
opengl32: Use the +opengl debug channel everywhere.
opengl32: Implement wow64 thunks for glMapBuffer (et al.).
opengl32: Use manual win32 thunks for glMapBuffer (et al.).
opengl32: Implement wow64 thunk for glGetString (et al.).
opengl32: Implement wow64 thunks for glFenceSync (et al.).
opengl32: Implement wow64 thunks for input pointer arrays.
opengl32: Implement wow64 thunk for wglGetPbufferDCARB.
opengl32: Implement wow64 thunk for wglCreatePbufferARB.
opengl32: Implement wow64 thunk for wglCreateContextAttribsARB.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1010
These invalid formats are rejected when creating WIC render targets. Otherwise, Wine may create a WIC render target with an unsupported format and in turn, will make testing IsSupported() method difficult.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1321
This allows 32-bit packages to be found when the user has specified
PKG_CONFIG_PATH for some other reason.
This also mirrors the way e.g. i686-linux-gnu-pkg-config is implemented on
Debian, and possibly other distributions as well.
This also prevents 64-bit .pc files from being found. This was originally
intended as a benefit [1], but can contribute to misdetection of headers which
are not actually multiarch (e.g. GStreamer, although at the time that [1] was
written that was a preëxisting problem). In general a distribution which
provides .pc files for one architecture should be expected to provide them for
any architecture that it actually provides libraries for; even if that was not
true of Debian in 2017, it is now. I moreover assert it is better to fail to
find a present library than to incorrectly find the wrong one.
Note that we can't easily use i686-linux-gnu-pkg-config, as would otherwise be
preferable, for reasons also described in [1].
[1] https://www.winehq.org/pipermail/wine-devel/2017-June/118002.html
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1432