Commit graph

169800 commits

Author SHA1 Message Date
Zebediah Figura af7f11bb2a shell32: Implement Paste in the item menu.
Based on a patch by Michael Müller.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=34319
2024-03-04 15:39:06 +01:00
Zebediah Figura 5744ef64a4 shell32: Respect the parent PIDL when pasting from CFSTR_SHELLIDLIST. 2024-03-04 15:39:06 +01:00
Zebediah Figura c4b38894cd shell32: Reimplement pasting from CF_DROP directly.
Don't convert the source to PIDLs just to convert it back to paths.
2024-03-04 15:39:06 +01:00
Zebediah Figura 48bcf74678 shell32: Add a get_data_format() helper.
Make the logic in do_paste() a bit more idiomatic.
2024-03-04 15:39:06 +01:00
Zebediah Figura 35f5997075 shell32: Move DoPaste() up.
And simplify the control flow a bit while we're at it.
2024-03-04 15:39:06 +01:00
Zebediah Figura 0bc47920d3 shell32: Remove useless and commented out code. 2024-03-04 15:39:06 +01:00
Zebediah Figura 08219c02b3 shell32/tests: Add tests for context menu copy/paste. 2024-03-04 15:39:06 +01:00
Zebediah Figura 366398cc53 msi: Create the custom action server as an elevated process.
Dragon Naturally Speaking 12.5 manually validates that the custom action server
is elevated.

One might imagine that the right approach here is to add a manifest to msiexec;
however, msiexec does not always trigger a UAC prompt on Windows.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51143
2024-03-04 15:39:06 +01:00
Zebediah Figura b381f9d095 wine.inf: Set the EnableLUA value to 1.
This signifies that UAC is active.

Foobar2000 checks this value, and won't even try to elevate itself otherwise.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50727
2024-03-04 15:39:06 +01:00
Zebediah Figura 8cc22a60c3 shell32: Elevate the child process for the "runas" verb.
Like all other verbs, the actual command line template is specified in the
registry. The elevation seems to be hardcoded into shell32 for this specific
verb.

The Foobar2000 installer requires administrator privileges, and elevates itself
in this way.

Based on a patch by Michael Müller.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50727
2024-03-04 15:39:06 +01:00
Philip Rebohle ec6879b78e winevulkan: Update to VK spec version 1.3.279.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2024-03-04 15:39:06 +01:00
Hans Leidekker 90f31fbd0a netprofm/tests: Mark a test result as broken on Windows 11. 2024-03-04 15:39:06 +01:00
Shaun Ren 43220a6063 sapi: Implement ISpeechVoice::{get/putref}_Voice. 2024-03-04 15:39:06 +01:00
Shaun Ren 7c384f361a sapi: Implement ISpeechVoice::{get/put}_Volume. 2024-03-04 15:39:06 +01:00
Rémi Bernon bf800b5e76 mfreadwrite/reader: Adjust min_buffer_size to be 1s of audio data. 2024-03-04 15:39:06 +01:00
Zhiyi Zhang 7865026f53 rtworkq: Avoid possible scenarios that an async callback could be called twice.
Consider a thread A running waiting_item_cancelable_callback() and a thread B running queue_cancel_item(),
which is the scenario from canceling a work item right after it gets submitted by RtwqPutWaitingWorkItem().
When the invoke_async_callback() call in queue_cancel_item() for item key with WAIT_ITEM_KEY_MASK in
thread B runs before the queue_release_pending_item() in waiting_item_cancelable_callback() in thread
A, the async callback is called the first time in queue_cancel_item() with RTWQ_E_OPERATION_CANCELLED,
then a second time in waiting_item_cancelable_callback(). We should check in queue_release_pending_item()
whether an item is already removed by queue_cancel_item() before calling async callbacks.

A different scenario could happen for scheduled_item_cancelable_callback() with the function ends
up calling its async callback even after it has been canceled by queue_cancel_item().
2024-03-04 15:39:06 +01:00
Zhiyi Zhang f3bab6c5b7 rtworkq: Avoid closing a thread pool object while its callbacks are running.
Consider a thread A running scheduled_item_cancelable_callback() and a thread B running queue_cancel_item(),
which is the scenario from canceling a work item right after it gets submitted by RtwqScheduleWorkItem().
When the CloseThreadpoolTimer() call in queue_cancel_item() in thread B runs before the queue_release_pending_item()
in scheduled_item_cancelable_callback() in thread A, scheduled_item_cancelable_callback() ends up
calling work_item_Release() and CloseThreadpoolTimer() is called again for the same timer object. So
the thread pool timer object end up getting released while the scheduled_item_cancelable_callback()
is running, triggering the '!object->num_running_callbacks' assertion in tp_object_release(). This
is actually a double free but the assertion happens before the second free could happen. The same
thing could happen for thread pool wait objects as well.

Fix mf and mfmediaengine tests sometimes trigger the '!object->num_running_callbacks' assertion.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55724
2024-03-04 15:39:06 +01:00
Tim Clem c5f9d9188a winebus.sys: Only attempt to open joysticks and gamepads in the IOHID backend.
An extension of 3985b7c5. Opening the device for the Touch Bar on
older MacBooks also triggers a permission prompt, so for now it makes
sense to restrict the devices we open.
2024-03-04 15:39:06 +01:00
Zebediah Figura 4a227c62a5 msi: Multiply by 512 in dialog_vcl_add_drives().
The main motivation here is to avoid overflow, and multiplying in one place seems simpler.
2024-03-04 15:39:06 +01:00
Zebediah Figura d7bbe884ef msi: Store component cost in 512-byte units.
This avoids overflow when component costs exceed 4 GB.
2024-03-04 15:39:06 +01:00
Zebediah Figura 9725a2286a msi: Round costs up to 4096 bytes instead of clamping. 2024-03-04 15:39:05 +01:00
Zebediah Figura 674efeb1f7 msi/tests: Expand costing tests. 2024-03-04 15:39:05 +01:00
Alexandre Julliard 0c35e9adce ntdll: Use the correct structure for non-volatile registers on ARM. 2024-03-04 14:07:28 +01:00
Alexandre Julliard 42cebcca3c ntdll: Use the correct structure for non-volatile registers on ARM64. 2024-03-04 14:07:28 +01:00
Alexandre Julliard a9671befc1 ntdll: Always use SEH support on ARM. 2024-03-03 23:10:35 +01:00
Alexandre Julliard 40bda46795 ntdll: Port the RtlRaiseException test to ARM. 2024-03-03 23:10:13 +01:00
Alexandre Julliard 077252f13b ntdll: Port the RtlRaiseException test to ARM64. 2024-03-03 23:10:13 +01:00
Tim Clem 0fb7c99c33 win32u: Don't mask keyboard scan codes when processing them for IME.
Fixes missed key up events on older macOS versions, which could
result in out-of-order input.

Fix via Rémi Bernon <rbernon@codeweavers.com>.
2024-03-01 23:14:22 +01:00
Tim Clem 93bc97e54f winemac.drv: Exclude the emoji Touch Bar when looking for input methods.
Fixes weird keyboard behavior on MacBooks with the Touch Bar.
2024-03-01 23:14:22 +01:00
Esme Povirk 55f71fd846 gdiplus: Implement font linking in GdipAddPathString. 2024-03-01 23:14:22 +01:00
Esme Povirk 3ca8204837 gdiplus: Fix use after free in GdipAddPathString. 2024-03-01 23:14:22 +01:00
Paul Gofman 02b68a0ac1 qcap: Force debug info in critical sections. 2024-03-01 23:14:22 +01:00
Paul Gofman 6e1e52cbc3 ole32: Force debug info in critical sections. 2024-03-01 23:14:22 +01:00
Paul Gofman e02b3379eb mcicda: Force debug info in critical sections. 2024-03-01 23:14:22 +01:00
Paul Gofman a7d3d574c0 comctl32: Force debug info in critical sections. 2024-03-01 23:14:22 +01:00
Paul Gofman 7c387c0b0e winexinput.sys: Force debug info in critical sections. 2024-03-01 23:14:22 +01:00
Michael Müller cfab11e16a wine.inf: Register the New menu as a directory background context menu handler.
CDBurnerXP expects the ContextMenuHandlers key to exist, and apparently
enumerates it until it receives ERROR_NO_MORE_ITEMS. If it fails to open the
key, it will spin forever trying to call RegEnumKeyExW(NULL) and getting
ERROR_INVALID_HANDLE.

We could simply create an empty ContextMenuHandlers key here, but this will
allow the New menu to work in the builtin explorer view once shellex handlers
are implemented.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=29523
2024-03-01 23:14:22 +01:00
Yuxuan Shui f0fc4a0d89 dmime: Parse MIDI Set Tempo meta events and generate a tempotrack. 2024-03-01 23:14:22 +01:00
Yuxuan Shui 1b1f216278 dmime: Implement setting TempoParam for tempotracks.
And add some tests.
2024-03-01 23:14:22 +01:00
Yuxuan Shui 6a3f067eca dmime: Use linked list for tempotrack.
Preparation for supporting setting TempoParam on tempotracks.
2024-03-01 23:14:22 +01:00
Henri Verbeet 9e79b9ffd9 wined3d: Pass "shader->function" as source to vkd3d_shader_scan() in shader_spirv_scan_shader().
Much like we do in shader_spirv_find_graphics_program_variant_vk() for
shader_spirv_compile_shader(). When compiling an Aon9 shader,
"shader->byte_code" points to the DXBC container, while
"shader->function" points to the contained d3dbc shader.
2024-03-01 23:14:22 +01:00
Rémi Bernon 440edde5e1 mfreadwrite/reader: Implement IMFSourceReaderEx_GetTransformForStream. 2024-03-01 23:14:22 +01:00
Rémi Bernon ea4b9bafb2 mfreadwrite/reader: Create and append a converter transform.
This enables advanced color conversion in all cases, and thus allows
NV12 -> RGB32 conversion even when MF_SOURCE_READER_ENABLE_ADVANCED_VIDEO_PROCESSING
is not set. This should be harmless and makes the code simpler as we
can simply append a VideoProcessor transform in all cases.

The tests todos is tweaked to reflect cases where a single processor
is used, which outputs slightly different attributes to when it is
connected to an upstream decoder. Ultimately we could try to match
native here, but it shouldn't matter too much in the meantime.
2024-03-01 23:14:22 +01:00
Rémi Bernon d6c9ac94d2 mfreadwrite/reader: Keep the stream transforms in a list. 2024-03-01 23:14:22 +01:00
Rémi Bernon 48cb5297e7 mfreadwrite/reader: Call SetOutputType directly on the decoder transform. 2024-03-01 23:14:22 +01:00
Rémi Bernon ba3799527c mf/topology_loader: Only propagate some media type attributes. 2024-03-01 23:14:22 +01:00
Rémi Bernon 7325dd4a5a mfreadwrite/reader: Split source_reader_create_decoder_for_stream helper. 2024-03-01 23:14:22 +01:00
Alexandre Julliard f9dd0fca4c qwave/tests: Remove todo from a succeeding test. 2024-03-01 23:14:22 +01:00
Alexandre Julliard 577c327a44 kernelbase: Implement RaiseException on ARM64EC. 2024-03-01 19:12:10 +01:00
Alexandre Julliard f35e2d513d ntdll: Implement RtlRaiseException on ARM64EC. 2024-03-01 19:12:10 +01:00