Compare commits

..

16 Commits
v7.10 ... v7.12

Author SHA1 Message Date
Alistair Leslie-Hughes
8699d2c2f6 Release v7.12 2022-07-02 14:31:17 +10:00
Alistair Leslie-Hughes
e7622edfc9 Rebase against 67f9c76386c8f67363f1fa90d7f7ac0ac84fdcd7. 2022-07-01 15:50:23 +10:00
Alistair Leslie-Hughes
c9652a68e1 Rebase against 29dd84443976005a8ec713dd1c75458e27346591. 2022-06-29 11:14:16 +10:00
Alistair Leslie-Hughes
6be691c005 Rebase against af8ed02b572081206be6c505261f5f2e98a8053c. 2022-06-25 21:09:49 +10:00
Alistair Leslie-Hughes
850b7f6540 Added winepulse-aux_channels patchset 2022-06-22 20:55:52 +10:00
Alistair Leslie-Hughes
776c47da46 Updated winepulse-PulseAudio_Support patchset 2022-06-21 08:49:58 +10:00
Alistair Leslie-Hughes
a51c679f34 Merge pull request #83 from Gcenx/action-update-deps
macOS.yml: Cleanup workflows
2022-06-20 10:40:29 +10:00
Gcenx
366a9020dc macOS.yml: Cleanup workflows
- Use brews mingw-w64 formula again
- Cleanup notes
- Remove unneeded formulas from wine-devel
2022-06-19 18:51:01 -04:00
Alistair Leslie-Hughes
a8e56928ef Release v7.11 2022-06-18 10:48:28 +10:00
Alistair Leslie-Hughes
f0e38f512c Fix Rebase 2022-06-16 10:08:01 +10:00
Alistair Leslie-Hughes
3d9f724967 Rebase against 712c547e0869b0caf797694137e36bacea614aa6. 2022-06-16 09:05:11 +10:00
Alistair Leslie-Hughes
4e4376778f Fix Rebase 2022-06-14 17:22:11 +10:00
Alistair Leslie-Hughes
94e31f7578 Rebase against f86a66b660267bf245817350a6012e0c5c6547df. 2022-06-14 14:43:45 +10:00
Alistair Leslie-Hughes
560db77d41 Rebase against 35939bbe0c04534da07ece7f6a47a560d356f7a1. 2022-06-11 12:19:21 +10:00
Zebediah Figura
2d5e6b24dc Rebase against 561a5b8f84db68e608df022a8dbd71803f506946. 2022-06-09 18:45:26 -05:00
Alistair Leslie-Hughes
37c1363814 Rebase against d95780ba39816e3eb1139366236f3835564beadd. 2022-06-08 08:02:38 +10:00
21 changed files with 228 additions and 378 deletions

View File

@@ -19,7 +19,7 @@ jobs:
brew install bison \
gphoto2 \
gst-plugins-base \
gcenx/wine/mingw-w64@9 \
mingw-w64 \
molten-vk \
sdl2
@@ -28,7 +28,6 @@ jobs:
set -eu
echo "$(brew --prefix bison)/bin" >> $GITHUB_PATH
echo "$(brew --prefix krb5)/bin" >> $GITHUB_PATH
echo "$(brew --prefix mingw-w64@9)/bin" >> $GITHUB_PATH
- name: Get upstream-commit
run: |
@@ -62,8 +61,6 @@ jobs:
--x-lib=/opt/X11/lib
- name: Build wine64
# mingw-w64 brew formula bumped binutils 2.38 causing a regression in parallel builds
# use gcenx/wine/mingw-w64@9 this uses binutils 2.37
run: |
cd $GITHUB_WORKSPACE/wine
make -j$(sysctl -n hw.ncpu 2>/dev/null)
@@ -79,12 +76,9 @@ jobs:
brew update
brew install --cask xquartz
brew install bison \
faudio \
gphoto2 \
gst-plugins-base \
jxrlib \
little-cms2 \
gcenx/wine/mingw-w64@9 \
mingw-w64 \
molten-vk \
mpg123
@@ -93,7 +87,6 @@ jobs:
set -eu
echo "$(brew --prefix bison)/bin" >> $GITHUB_PATH
echo "$(brew --prefix krb5)/bin" >> $GITHUB_PATH
echo "$(brew --prefix mingw-w64@9)/bin" >> $GITHUB_PATH
- name: Get upstream-commit
run: |
@@ -125,8 +118,6 @@ jobs:
--x-lib=/opt/X11/lib
- name: Build wine64
# mingw-w64 brew formula bumped binutils 2.38 causing a regression in parallel builds
# use gcenx/wine/mingw-w64@9 this uses binutils 2.37
run: |
cd $GITHUB_WORKSPACE/wine
make -j$(sysctl -n hw.ncpu 2>/dev/null)

View File

@@ -1,4 +1,4 @@
From 415ededb3cceae15cb05a1860cef1d4e5e055b27 Mon Sep 17 00:00:00 2001
From 5d29a2de174042ce7bdd52d92337591933e0f761 Mon Sep 17 00:00:00 2001
From: Mark Harmstone <mark@harmstone.com>
Date: Fri, 27 Mar 2015 20:58:37 +0000
Subject: [PATCH] dsound: Add EAX init and free stubs.
@@ -10,10 +10,10 @@ Subject: [PATCH] dsound: Add EAX init and free stubs.
3 files changed, 33 insertions(+), 1 deletion(-)
diff --git a/dlls/dsound/buffer.c b/dlls/dsound/buffer.c
index 6bbf468d136..e27fdfdecc4 100644
index e8b3fb4a832..28f2e95994e 100644
--- a/dlls/dsound/buffer.c
+++ b/dlls/dsound/buffer.c
@@ -1110,6 +1110,8 @@ HRESULT secondarybuffer_create(DirectSoundDevice *device, const DSBUFFERDESC *ds
@@ -1153,6 +1153,8 @@ HRESULT secondarybuffer_create(DirectSoundDevice *device, const DSBUFFERDESC *ds
DSOUND_RecalcVolPan(&(dsb->volpan));
InitializeSRWLock(&dsb->lock);
@@ -22,20 +22,20 @@ index 6bbf468d136..e27fdfdecc4 100644
/* register buffer */
err = DirectSoundDevice_AddBuffer(device, dsb);
@@ -1150,6 +1152,8 @@ void secondarybuffer_destroy(IDirectSoundBufferImpl *This)
@@ -1194,6 +1196,8 @@ void secondarybuffer_destroy(IDirectSoundBufferImpl *This)
HeapFree(GetProcessHeap(), 0, This->filters);
}
+ free_eax_buffer(This);
+
HeapFree(GetProcessHeap(), 0, This);
TRACE("(%p) released\n", This);
HeapFree(GetProcessHeap(), 0, This);
diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h
index 3b4c4f290a4..8dbb9edb594 100644
index 267b2c044bc..c906eb2adb1 100644
--- a/dlls/dsound/dsound_private.h
+++ b/dlls/dsound/dsound_private.h
@@ -234,6 +234,8 @@ HRESULT WINAPI EAX_Get(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
@@ -240,6 +240,8 @@ HRESULT WINAPI EAX_Get(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
HRESULT WINAPI EAX_Set(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
ULONG dwPropID, void *pInstanceData, ULONG cbInstanceData, void *pPropData,
ULONG cbPropData) DECLSPEC_HIDDEN;
@@ -45,7 +45,7 @@ index 3b4c4f290a4..8dbb9edb594 100644
/* mixer.c */
void DSOUND_CheckEvent(const IDirectSoundBufferImpl *dsb, DWORD playpos, int len) DECLSPEC_HIDDEN;
diff --git a/dlls/dsound/eax.c b/dlls/dsound/eax.c
index 3931681d295..c0afb0f1acf 100644
index 03b6e0a9813..91438efc335 100644
--- a/dlls/dsound/eax.c
+++ b/dlls/dsound/eax.c
@@ -92,20 +92,46 @@ static const EFXEAXREVERBPROPERTIES efx_presets[] = {
@@ -97,5 +97,5 @@ index 3931681d295..c0afb0f1acf 100644
HRESULT WINAPI EAX_Get(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
--
2.27.0
2.35.1

View File

@@ -1,134 +0,0 @@
From bdd925e61fa6ba20272960bfea8e0638d20060f1 Mon Sep 17 00:00:00 2001
From: Jactry Zeng <jzeng@codeweavers.com>
Date: Fri, 3 Jun 2022 02:50:29 -0500
Subject: [PATCH 1/2] dwmapi: Fill rateRefresh/rateCompose and qpcRefreshPeriod
of DWM_TIMING_INFO from DwmGetCompositionTimingInfo().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53035
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53038
Signed-off-by: Jactry Zeng <jzeng@codeweavers.com>
---
dlls/dwmapi/Makefile.in | 1 +
dlls/dwmapi/dwmapi_main.c | 27 ++++++++++++++++++++++++++-
dlls/dwmapi/tests/Makefile.in | 2 +-
dlls/dwmapi/tests/dwmapi.c | 22 ++++++++++++++++++++++
4 files changed, 50 insertions(+), 2 deletions(-)
diff --git a/dlls/dwmapi/Makefile.in b/dlls/dwmapi/Makefile.in
index e63dbc2ea00..37411a57608 100644
--- a/dlls/dwmapi/Makefile.in
+++ b/dlls/dwmapi/Makefile.in
@@ -1,4 +1,5 @@
MODULE = dwmapi.dll
+IMPORTS = user32
IMPORTLIB = dwmapi
EXTRADLLFLAGS = -Wb,--prefer-native
diff --git a/dlls/dwmapi/dwmapi_main.c b/dlls/dwmapi/dwmapi_main.c
index 6bb086a87d1..1fb522e389a 100644
--- a/dlls/dwmapi/dwmapi_main.c
+++ b/dlls/dwmapi/dwmapi_main.c
@@ -211,12 +211,28 @@ HRESULT WINAPI DwmRegisterThumbnail(HWND dest, HWND src, PHTHUMBNAIL thumbnail_i
return E_NOTIMPL;
}
+static int get_display_frequency(void)
+{
+ DEVMODEA mode;
+
+ memset(&mode, 0, sizeof(mode));
+ mode.dmSize = sizeof(mode);
+ if (EnumDisplaySettingsA(NULL, ENUM_CURRENT_SETTINGS, &mode))
+ return mode.dmDisplayFrequency;
+ else
+ {
+ WARN("Failed to query display frequency, returning a fallback value.\n");
+ return 60;
+ }
+}
+
/**********************************************************************
* DwmGetCompositionTimingInfo (DWMAPI.@)
*/
HRESULT WINAPI DwmGetCompositionTimingInfo(HWND hwnd, DWM_TIMING_INFO *info)
{
- static int i;
+ LARGE_INTEGER performance_frequency;
+ static int i, display_frequency;
if (!info)
return E_INVALIDARG;
@@ -229,6 +245,15 @@ HRESULT WINAPI DwmGetCompositionTimingInfo(HWND hwnd, DWM_TIMING_INFO *info)
memset(info, 0, info->cbSize);
info->cbSize = sizeof(DWM_TIMING_INFO);
+ display_frequency = get_display_frequency();
+ info->rateRefresh.uiNumerator = display_frequency;
+ info->rateRefresh.uiDenominator = 1;
+ info->rateCompose.uiNumerator = display_frequency;
+ info->rateCompose.uiDenominator = 1;
+
+ QueryPerformanceFrequency(&performance_frequency);
+ info->qpcRefreshPeriod = performance_frequency.QuadPart / display_frequency;
+
return S_OK;
}
diff --git a/dlls/dwmapi/tests/Makefile.in b/dlls/dwmapi/tests/Makefile.in
index 6c6130401d6..e819e3ca09a 100644
--- a/dlls/dwmapi/tests/Makefile.in
+++ b/dlls/dwmapi/tests/Makefile.in
@@ -1,5 +1,5 @@
TESTDLL = dwmapi.dll
-IMPORTS = dwmapi
+IMPORTS = dwmapi user32
C_SRCS = \
dwmapi.c
diff --git a/dlls/dwmapi/tests/dwmapi.c b/dlls/dwmapi/tests/dwmapi.c
index 696aa9c9d86..29dbcbe74bd 100644
--- a/dlls/dwmapi/tests/dwmapi.c
+++ b/dlls/dwmapi/tests/dwmapi.c
@@ -35,7 +35,11 @@ static void test_DwmIsCompositionEnabled(void)
static void test_DwmGetCompositionTimingInfo(void)
{
+ LARGE_INTEGER performance_frequency;
+ int result, display_frequency;
DWM_TIMING_INFO timing_info;
+ QPC_TIME refresh_period;
+ DEVMODEA mode;
BOOL enabled;
HRESULT hr;
@@ -56,9 +60,27 @@ static void test_DwmGetCompositionTimingInfo(void)
hr = DwmGetCompositionTimingInfo(NULL, &timing_info);
ok(hr == MILERR_MISMATCHED_SIZE, "Got hr %#lx.\n", hr);
+ memset(&mode, 0, sizeof(mode));
+ mode.dmSize = sizeof(mode);
+ result = EnumDisplaySettingsA(NULL, ENUM_CURRENT_SETTINGS, &mode);
+ ok(!!result, "Failed to get display mode %#lx.\n", GetLastError());
+ display_frequency = mode.dmDisplayFrequency;
+ ok(!!QueryPerformanceFrequency(&performance_frequency), "Failed to get performance counter frequency.\n");
+ refresh_period = performance_frequency.QuadPart / display_frequency;
+
timing_info.cbSize = sizeof(timing_info);
hr = DwmGetCompositionTimingInfo(NULL, &timing_info);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
+ ok(timing_info.cbSize == sizeof(timing_info), "Got wrong struct size %d.\n", timing_info.cbSize);
+ ok(timing_info.rateRefresh.uiDenominator == 1 && timing_info.rateRefresh.uiNumerator == display_frequency,
+ "Got wrong monitor refresh rate %d/%d.\n", timing_info.rateRefresh.uiDenominator,
+ timing_info.rateRefresh.uiNumerator);
+ ok(timing_info.rateCompose.uiDenominator == 1 && timing_info.rateCompose.uiNumerator == display_frequency,
+ "Got wrong composition rate %d/%d.\n", timing_info.rateCompose.uiDenominator,
+ timing_info.rateCompose.uiNumerator);
+ ok(timing_info.qpcRefreshPeriod == refresh_period
+ || broken(timing_info.qpcRefreshPeriod == display_frequency), /* win10 v1507 */
+ "Got wrong monitor refresh period %s.\n", wine_dbgstr_longlong(timing_info.qpcRefreshPeriod));
}
START_TEST(dwmapi)
--
2.35.1

View File

@@ -1,27 +0,0 @@
From e1cdd6b53b73325cdb12815135162e43270df2ea Mon Sep 17 00:00:00 2001
From: Jactry Zeng <jzeng@codeweavers.com>
Date: Fri, 3 Jun 2022 02:50:30 -0500
Subject: [PATCH 2/2] dwmapi: Return S_OK from DwmFlush().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53035
Signed-off-by: Jactry Zeng <jzeng@codeweavers.com>
---
dlls/dwmapi/dwmapi_main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/dwmapi/dwmapi_main.c b/dlls/dwmapi/dwmapi_main.c
index 1fb522e389a..1a65410c7eb 100644
--- a/dlls/dwmapi/dwmapi_main.c
+++ b/dlls/dwmapi/dwmapi_main.c
@@ -92,7 +92,7 @@ HRESULT WINAPI DwmFlush(void)
if (!once++) FIXME("() stub\n");
- return E_NOTIMPL;
+ return S_OK;
}
/**********************************************************************
--
2.35.1

View File

@@ -1,2 +0,0 @@
Fixes: [53038] - dwmapi: Supply some defaults values for DwmGetCompositionTimingInfo.
Fixes: [53035] - dwmapi: DwmFlush return S_OK.

View File

@@ -1,4 +1,4 @@
From 0dc447fc1d384c9412e9c8f55bfef9adfaeec994 Mon Sep 17 00:00:00 2001
From 6fbc3bae354dec9fdd4a9a4e3e3a76340b66fd3f Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 5 Aug 2017 03:39:23 +0200
Subject: [PATCH] ntdll: Use fast CS functions for heap locking.
@@ -8,64 +8,64 @@ Subject: [PATCH] ntdll: Use fast CS functions for heap locking.
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/dlls/ntdll/heap.c b/dlls/ntdll/heap.c
index 1b6337d4ce8..ea2d4153b96 100644
index 40c317417ce..60185aac2c6 100644
--- a/dlls/ntdll/heap.c
+++ b/dlls/ntdll/heap.c
@@ -457,13 +457,13 @@ static inline ULONG heap_get_flags( const HEAP *heap, ULONG flags )
static void heap_lock( HEAP *heap, ULONG flags )
@@ -469,13 +469,13 @@ static inline ULONG heap_get_flags( const struct heap *heap, ULONG flags )
static void heap_lock( struct heap *heap, ULONG flags )
{
if (heap_get_flags( heap, flags ) & HEAP_NO_SERIALIZE) return;
- RtlEnterCriticalSection( &heap->cs );
+ enter_critical_section( &heap->cs );
}
static void heap_unlock( HEAP *heap, ULONG flags )
static void heap_unlock( struct heap *heap, ULONG flags )
{
if (heap_get_flags( heap, flags ) & HEAP_NO_SERIALIZE) return;
- RtlLeaveCriticalSection( &heap->cs );
+ leave_critical_section( &heap->cs );
}
static void heap_set_status( const HEAP *heap, ULONG flags, NTSTATUS status )
@@ -1401,9 +1401,9 @@ HANDLE WINAPI RtlCreateHeap( ULONG flags, PVOID addr, SIZE_T totalSize, SIZE_T c
static void heap_set_status( const struct heap *heap, ULONG flags, NTSTATUS status )
@@ -1383,9 +1383,9 @@ HANDLE WINAPI RtlCreateHeap( ULONG flags, PVOID addr, SIZE_T totalSize, SIZE_T c
/* link it into the per-process heap list */
if (processHeap)
if (process_heap)
{
- RtlEnterCriticalSection( &processHeap->cs );
+ enter_critical_section( &processHeap->cs );
list_add_head( &processHeap->entry, &heap->entry );
- RtlLeaveCriticalSection( &processHeap->cs );
+ leave_critical_section( &processHeap->cs );
- RtlEnterCriticalSection( &process_heap->cs );
+ enter_critical_section( &process_heap->cs );
list_add_head( &process_heap->entry, &heap->entry );
- RtlLeaveCriticalSection( &process_heap->cs );
+ leave_critical_section( &process_heap->cs );
}
else if (!addr)
{
@@ -1447,9 +1447,9 @@ HANDLE WINAPI RtlDestroyHeap( HANDLE heap )
if (heap == processHeap) return heap; /* cannot delete the main process heap */
@@ -1441,9 +1441,9 @@ HANDLE WINAPI RtlDestroyHeap( HANDLE handle )
if (heap == process_heap) return handle; /* cannot delete the main process heap */
/* remove it from the per-process list */
- RtlEnterCriticalSection( &processHeap->cs );
+ enter_critical_section( &processHeap->cs );
list_remove( &heapPtr->entry );
- RtlLeaveCriticalSection( &processHeap->cs );
+ leave_critical_section( &processHeap->cs );
- RtlEnterCriticalSection( &process_heap->cs );
+ enter_critical_section( &process_heap->cs );
list_remove( &heap->entry );
- RtlLeaveCriticalSection( &process_heap->cs );
+ leave_critical_section( &process_heap->cs );
heapPtr->cs.DebugInfo->Spare[0] = 0;
RtlDeleteCriticalSection( &heapPtr->cs );
@@ -1930,7 +1930,7 @@ ULONG WINAPI RtlGetProcessHeaps( ULONG count, HANDLE *heaps )
heap->cs.DebugInfo->Spare[0] = 0;
RtlDeleteCriticalSection( &heap->cs );
@@ -1938,7 +1938,7 @@ ULONG WINAPI RtlGetProcessHeaps( ULONG count, HANDLE *heaps )
ULONG total = 1; /* main heap */
struct list *ptr;
- RtlEnterCriticalSection( &processHeap->cs );
+ enter_critical_section( &processHeap->cs );
LIST_FOR_EACH( ptr, &processHeap->entry ) total++;
- RtlEnterCriticalSection( &process_heap->cs );
+ enter_critical_section( &process_heap->cs );
LIST_FOR_EACH( ptr, &process_heap->entry ) total++;
if (total <= count)
{
@@ -1938,7 +1938,7 @@ ULONG WINAPI RtlGetProcessHeaps( ULONG count, HANDLE *heaps )
LIST_FOR_EACH( ptr, &processHeap->entry )
*heaps++ = LIST_ENTRY( ptr, HEAP, entry );
@@ -1946,7 +1946,7 @@ ULONG WINAPI RtlGetProcessHeaps( ULONG count, HANDLE *heaps )
LIST_FOR_EACH( ptr, &process_heap->entry )
*heaps++ = LIST_ENTRY( ptr, struct heap, entry );
}
- RtlLeaveCriticalSection( &processHeap->cs );
+ leave_critical_section( &processHeap->cs );
- RtlLeaveCriticalSection( &process_heap->cs );
+ leave_critical_section( &process_heap->cs );
return total;
}

View File

@@ -1,8 +1,8 @@
From 35bc7e69e9100202e0f0d91ee66449a13ef4d075 Mon Sep 17 00:00:00 2001
From a25c97e1a004f773d8d1ad4d233aa140ca8d9c63 Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Tue, 30 Apr 2019 16:24:54 -0600
Subject: ntdll: Allow creation of dangling reparse points to non-existent
paths.
Subject: [PATCH] ntdll: Allow creation of dangling reparse points to
non-existent paths.
Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
---
@@ -10,22 +10,22 @@ Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
index e082ff5d322..e749e192f6f 100644
index 82abd3e451b..fb4b3b65756 100644
--- a/dlls/ntdll/unix/file.c
+++ b/dlls/ntdll/unix/file.c
@@ -3402,7 +3402,8 @@ static NTSTATUS lookup_unix_name( const WCHAR *name, int name_len, char **buffer
@@ -3394,7 +3394,8 @@ static NTSTATUS lookup_unix_name( const WCHAR *name, int name_len, char **buffer
/* if this is the last element, not finding it is not necessarily fatal */
if (!name_len)
{
- if (status == STATUS_OBJECT_PATH_NOT_FOUND)
+ if (status == STATUS_OBJECT_PATH_NOT_FOUND
- if (status == STATUS_OBJECT_NAME_NOT_FOUND)
+ if (status == STATUS_OBJECT_NAME_NOT_FOUND
+ || (disposition == FILE_WINE_PATH && status == STATUS_OBJECT_NAME_NOT_FOUND))
{
status = STATUS_OBJECT_NAME_NOT_FOUND;
if (disposition != FILE_OPEN && disposition != FILE_OVERWRITE)
@@ -3422,6 +3423,20 @@ static NTSTATUS lookup_unix_name( const WCHAR *name, int name_len, char **buffer
status = STATUS_OBJECT_NAME_COLLISION;
{
@@ -3416,6 +3417,20 @@ static NTSTATUS lookup_unix_name( const WCHAR *name, int name_len, char **buffer
}
if (end < next) strcat( unix_name, "/" );
}
+ else if (disposition == FILE_WINE_PATH && (status == STATUS_OBJECT_PATH_NOT_FOUND
+ || status == STATUS_OBJECT_NAME_NOT_FOUND))
@@ -41,10 +41,10 @@ index e082ff5d322..e749e192f6f 100644
+ continue;
+ }
+ }
else if (status == STATUS_OBJECT_NAME_NOT_FOUND) status = STATUS_OBJECT_PATH_NOT_FOUND;
if (status != STATUS_SUCCESS) break;
@@ -6080,7 +6095,7 @@ NTSTATUS create_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
@@ -6076,7 +6091,7 @@ NTSTATUS create_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
status = STATUS_NO_MEMORY;
goto cleanup;
}
@@ -54,5 +54,5 @@ index e082ff5d322..e749e192f6f 100644
free( unix_dest );
}
--
2.17.1
2.35.1

View File

@@ -51,13 +51,13 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "631f4d5e42b7c2f705eb4b40eeea0ce1866bf513"
echo "b2bf7b6b899dc18d092deebb0356a909db656ba8"
}
# Show version information
version()
{
echo "Wine Staging 7.10"
echo "Wine Staging 7.12"
echo "Copyright (C) 2014-2019 the Wine Staging project authors."
echo "Copyright (C) 2018-2020 Alistair Leslie-Hughes"
echo ""
@@ -108,7 +108,6 @@ patch_enable_all ()
enable_dinput_joy_mappings="$1"
enable_dsound_EAX="$1"
enable_dsound_Fast_Mixer="$1"
enable_dwmapi_DwmGetCompositionTimingInfo="$1"
enable_dwrite_FontFallback="$1"
enable_eventfd_synchronization="$1"
enable_explorer_Video_Registry_Key="$1"
@@ -244,6 +243,7 @@ patch_enable_all ()
enable_winemenubuilder_integration="$1"
enable_wineps_drv_PostScript_Fixes="$1"
enable_winepulse_PulseAudio_Support="$1"
enable_winepulse_aux_channels="$1"
enable_winex11_CandidateWindowPos="$1"
enable_winex11_MWM_Decorations="$1"
enable_winex11_UpdateLayeredWindow="$1"
@@ -349,9 +349,6 @@ patch_enable ()
dsound-Fast_Mixer)
enable_dsound_Fast_Mixer="$2"
;;
dwmapi-DwmGetCompositionTimingInfo)
enable_dwmapi_DwmGetCompositionTimingInfo="$2"
;;
dwrite-FontFallback)
enable_dwrite_FontFallback="$2"
;;
@@ -757,6 +754,9 @@ patch_enable ()
winepulse-PulseAudio_Support)
enable_winepulse_PulseAudio_Support="$2"
;;
winepulse-aux_channels)
enable_winepulse_aux_channels="$2"
;;
winex11-CandidateWindowPos)
enable_winex11_CandidateWindowPos="$2"
;;
@@ -1723,20 +1723,6 @@ if test "$enable_dsound_EAX" -eq 1; then
patch_apply dsound-EAX/0023-dsound-Fake-success-for-EAX-Set-Buffer-ListenerPrope.patch
fi
# Patchset dwmapi-DwmGetCompositionTimingInfo
# |
# | This patchset fixes the following Wine bugs:
# | * [#53038] - dwmapi: Supply some defaults values for DwmGetCompositionTimingInfo.
# | * [#53035] - dwmapi: DwmFlush return S_OK.
# |
# | Modified files:
# | * dlls/dwmapi/Makefile.in, dlls/dwmapi/dwmapi_main.c, dlls/dwmapi/tests/Makefile.in, dlls/dwmapi/tests/dwmapi.c
# |
if test "$enable_dwmapi_DwmGetCompositionTimingInfo" -eq 1; then
patch_apply dwmapi-DwmGetCompositionTimingInfo/0001-dwmapi-Fill-rateRefresh-rateCompose-and-qpcRefreshPe.patch
patch_apply dwmapi-DwmGetCompositionTimingInfo/0002-dwmapi-Return-S_OK-from-DwmFlush.patch
fi
# Patchset dwrite-FontFallback
# |
# | This patchset fixes the following Wine bugs:
@@ -3188,7 +3174,7 @@ fi
# | * [#37706] Fix return value of ScrollWindowEx for invisible windows
# |
# | Modified files:
# | * dlls/user32/painting.c
# | * dlls/win32u/dce.c
# |
if test "$enable_user32_ScrollWindowEx" -eq 1; then
patch_apply user32-ScrollWindowEx/0001-user32-Fix-return-value-of-ScrollWindowEx-for-invisi.patch
@@ -3281,7 +3267,7 @@ fi
# | * [#45882] - Raw Input should use untransformed mouse values (affects Overwatch, several Source games).
# |
# | Modified files:
# | * dlls/user32/rawinput.c, dlls/winex11.drv/mouse.c, server/queue.c
# | * dlls/win32u/rawinput.c, dlls/winex11.drv/mouse.c, server/queue.c
# |
if test "$enable_user32_rawinput_mouse_experimental" -eq 1; then
patch_apply user32-rawinput-mouse-experimental/0001-server-Clear-the-MOUSEEVENTF_-ABSOLUTE-VIRTUALDESK-f.patch
@@ -3677,6 +3663,18 @@ if test "$enable_winepulse_PulseAudio_Support" -eq 1; then
patch_apply winepulse-PulseAudio_Support/0001-winepulse.drv-Use-a-separate-mainloop-and-ctx-for-pu.patch
fi
# Patchset winepulse-aux_channels
# |
# | This patchset fixes the following Wine bugs:
# | * [#52572] Support PulseAudio channels aux0 and aux1.
# |
# | Modified files:
# | * dlls/winepulse.drv/pulse.c
# |
if test "$enable_winepulse_aux_channels" -eq 1; then
patch_apply winepulse-aux_channels/0001-winepulse-Add-aux0-and-aux1-channels.patch
fi
# Patchset winex11-CandidateWindowPos
# |
# | This patchset fixes the following Wine bugs:
@@ -3934,7 +3932,6 @@ fi
if test "$enable_xactengine3_7_callbacks" -eq 1; then
patch_apply xactengine3_7-callbacks/0001-Add-support-for-private-contexts.patch
patch_apply xactengine3_7-callbacks/0002-xactengine3_7-notifications.patch
patch_apply xactengine3_7-callbacks/0003-Send-NOTIFY_CUESTOP-when-Stop-is-called.patch
patch_apply xactengine3_7-callbacks/0004-xactengine3_7-Don-t-use-switch-with-constant-integer.patch
fi

View File

@@ -1,4 +1,4 @@
From c79db3f36aa653ec986ba948e547202fd95ed151 Mon Sep 17 00:00:00 2001
From fcd07d80234de455880990e2b2c488e9795f9dc0 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Fri, 3 Apr 2015 03:58:47 +0200
Subject: [PATCH] server: Allow to open files without any permission bits. (try
@@ -9,14 +9,14 @@ Changes in v2:
* Pay attention to requested access attributes - this fixes a couple more todo_wine's.
---
dlls/advapi32/tests/security.c | 32 ++++++++++++--------------------
server/fd.c | 20 ++++++++++++++++++++
2 files changed, 32 insertions(+), 20 deletions(-)
server/fd.c | 21 +++++++++++++++++++++
2 files changed, 33 insertions(+), 20 deletions(-)
diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c
index 135a45f7727..2147d0f1700 100644
index ed91ccc39d3..c534d1453d9 100644
--- a/dlls/advapi32/tests/security.c
+++ b/dlls/advapi32/tests/security.c
@@ -3710,17 +3710,13 @@ static void test_CreateDirectoryA(void)
@@ -3713,17 +3713,13 @@ static void test_CreateDirectoryA(void)
error = pGetNamedSecurityInfoA(tmpfile, SE_FILE_OBJECT,
OWNER_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION,
(PSID *)&owner, NULL, &pDacl, NULL, &pSD);
@@ -40,7 +40,7 @@ index 135a45f7727..2147d0f1700 100644
CloseHandle(hTemp);
/* Test inheritance of ACLs in NtCreateFile without security descriptor */
@@ -3789,17 +3785,13 @@ static void test_CreateDirectoryA(void)
@@ -3792,17 +3788,13 @@ static void test_CreateDirectoryA(void)
error = pGetNamedSecurityInfoA(tmpfile, SE_FILE_OBJECT,
OWNER_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION,
(PSID *)&owner, NULL, &pDacl, NULL, &pSD);
@@ -65,7 +65,7 @@ index 135a45f7727..2147d0f1700 100644
done:
diff --git a/server/fd.c b/server/fd.c
index 31b64b30d43..2ff0b480f40 100644
index bf59359de03..323dd92e653 100644
--- a/server/fd.c
+++ b/server/fd.c
@@ -2044,6 +2044,7 @@ struct fd *open_fd( struct fd *root, const char *name, struct unicode_str nt_nam
@@ -76,7 +76,7 @@ index 31b64b30d43..2ff0b480f40 100644
int created = (flags & O_CREAT);
if (((options & FILE_DELETE_ON_CLOSE) && !(access & DELETE)) ||
@@ -2116,10 +2117,28 @@ struct fd *open_fd( struct fd *root, const char *name, struct unicode_str nt_nam
@@ -2116,6 +2117,23 @@ struct fd *open_fd( struct fd *root, const char *name, struct unicode_str nt_nam
if ((access & FILE_UNIX_WRITE_ACCESS) || (flags & O_CREAT))
fd->unix_fd = open( name, O_RDONLY | (flags & ~(O_TRUNC | O_CREAT | O_EXCL)), *mode );
}
@@ -100,12 +100,16 @@ index 31b64b30d43..2ff0b480f40 100644
if (fd->unix_fd == -1)
{
file_set_error();
@@ -2124,6 +2142,8 @@ struct fd *open_fd( struct fd *root, const char *name, struct unicode_str nt_nam
set_error( STATUS_OBJECT_NAME_INVALID );
else
file_set_error();
+
+ if (do_chmod) chmod( name, *mode );
goto error;
}
}
@@ -2130,6 +2149,7 @@ struct fd *open_fd( struct fd *root, const char *name, struct unicode_str nt_nam
@@ -2134,6 +2154,7 @@ struct fd *open_fd( struct fd *root, const char *name, struct unicode_str nt_nam
closed_fd->unlink = 0;
closed_fd->unlink_name = fd->unlink_name;
closed_fd->unix_name = fd->unix_name;
@@ -114,5 +118,5 @@ index 31b64b30d43..2ff0b480f40 100644
*mode = st.st_mode;
--
2.34.1
2.35.1

View File

@@ -1,18 +1,19 @@
From c7b125afcbf75d7a95c0fcb78c0dadf8f30fd61f Mon Sep 17 00:00:00 2001
From 9de95b5af44aa9ac1cec60a27c70a546258a954d Mon Sep 17 00:00:00 2001
From: Qian Hong <qhong@codeweavers.com>
Date: Fri, 15 May 2015 15:28:17 +0800
Subject: ntdll/tests: Added tests for open behaviour on readonly files.
Subject: [PATCH] ntdll/tests: Added tests for open behaviour on readonly
files.
---
dlls/ntdll/tests/file.c | 78 +++++++++++++++++++++++++++++++++++++++++++++++++
dlls/ntdll/tests/file.c | 78 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 78 insertions(+)
diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c
index 2df0edc..d365303 100644
index 35fab8ca427..5d6f9b83152 100644
--- a/dlls/ntdll/tests/file.c
+++ b/dlls/ntdll/tests/file.c
@@ -2073,6 +2073,83 @@ static void test_NtCreateFile(void)
DeleteFileW( path );
@@ -4259,6 +4259,83 @@ static void test_NtCreateFile(void)
RemoveDirectoryW( path );
}
+static void test_readonly(void)
@@ -95,7 +96,7 @@ index 2df0edc..d365303 100644
static void test_read_write(void)
{
static const char contents[14] = "1234567890abcd";
@@ -2823,6 +2900,7 @@ START_TEST(file)
@@ -5838,6 +5915,7 @@ START_TEST(file)
test_read_write();
test_NtCreateFile();
@@ -104,5 +105,5 @@ index 2df0edc..d365303 100644
open_file_test();
delete_file_test();
--
2.4.2
2.35.1

View File

@@ -1,29 +1,33 @@
From 1b619dbaf833182f1b522271e980a58b057767d6 Mon Sep 17 00:00:00 2001
From 6d96e152773789f92da783e40969bf94624b7d61 Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Fri, 12 Dec 2014 05:06:31 +0100
Subject: user32: Fix return value of ScrollWindowEx for invisible windows.
Subject: [PATCH] win32u: Fix return value of ScrollWindowEx for invisible
windows.
---
dlls/user32/painting.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
dlls/win32u/dce.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/dlls/user32/painting.c b/dlls/user32/painting.c
index 5c1dc69..2cc7703 100644
--- a/dlls/user32/painting.c
+++ b/dlls/user32/painting.c
@@ -1430,10 +1430,10 @@ static INT scroll_window( HWND hwnd, INT dx, INT dy, const RECT *rect, const REC
diff --git a/dlls/win32u/dce.c b/dlls/win32u/dce.c
index 872112e4a24..4d56b23433e 100644
--- a/dlls/win32u/dce.c
+++ b/dlls/win32u/dce.c
@@ -1672,10 +1672,13 @@ INT WINAPI NtUserScrollWindowEx( HWND hwnd, INT dx, INT dy, const RECT *rect,
rdw_flags = (flags & SW_ERASE) && (flags & SW_INVALIDATE) ?
RDW_INVALIDATE | RDW_ERASE : RDW_INVALIDATE ;
RDW_INVALIDATE | RDW_ERASE : RDW_INVALIDATE;
- if (!WIN_IsWindowDrawable( hwnd, TRUE )) return ERROR;
hwnd = WIN_GetFullHandle( hwnd );
- if (!is_window_drawable( hwnd, TRUE )) return ERROR;
hwnd = get_full_window_handle( hwnd );
- GetClientRect(hwnd, &rc);
+ if (!WIN_IsWindowDrawable( hwnd, TRUE )) SetRectEmpty(&rc);
+ else GetClientRect(hwnd, &rc);
if (clipRect) IntersectRect(&cliprc,&rc,clipRect);
- get_client_rect( hwnd, &rc );
+ if (!is_window_drawable( hwnd, TRUE ))
+ SetRectEmpty( &rc );
+ else
+ get_client_rect( hwnd, &rc );
+
if (clip_rect) intersect_rect( &cliprc, &rc, clip_rect );
else cliprc = rc;
--
2.1.3
2.36.1

View File

@@ -1,27 +1,26 @@
From 3fde11e2e3cf70b4815d88283ec0947c019c5424 Mon Sep 17 00:00:00 2001
From 0a849a6fcdab538be01d2eb3b0bb9c1dd42e9d6a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Mon, 25 Oct 2021 11:26:43 +0200
Subject: [PATCH] user32: Add support for absolute rawinput messages.
---
dlls/user32/rawinput.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
dlls/win32u/rawinput.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/user32/rawinput.c b/dlls/user32/rawinput.c
index 3a316024656..d2c1f1cf2b5 100644
--- a/dlls/user32/rawinput.c
+++ b/dlls/user32/rawinput.c
@@ -316,7 +316,9 @@ BOOL rawinput_from_hardware_message(RAWINPUT *rawinput, const struct hardware_ms
diff --git a/dlls/win32u/rawinput.c b/dlls/win32u/rawinput.c
index 81403771c4a..186bd1e52b1 100644
--- a/dlls/win32u/rawinput.c
+++ b/dlls/win32u/rawinput.c
@@ -96,7 +96,8 @@ static bool rawinput_from_hardware_message( RAWINPUT *rawinput, const struct har
rawinput->header.hDevice = WINE_MOUSE_HANDLE;
rawinput->header.wParam = 0;
- rawinput->data.mouse.usFlags = MOUSE_MOVE_RELATIVE;
+ rawinput->data.mouse.usFlags = msg_data->flags & MOUSEEVENTF_ABSOLUTE ? MOUSE_MOVE_ABSOLUTE : MOUSE_MOVE_RELATIVE;
+ if (msg_data->flags & MOUSEEVENTF_VIRTUALDESK) rawinput->data.mouse.usFlags |= MOUSE_VIRTUAL_DESKTOP;
+
rawinput->data.mouse.usButtonFlags = 0;
rawinput->data.mouse.usButtonData = 0;
for (i = 1; i < ARRAY_SIZE(button_flags); ++i)
--
2.33.0
2.35.1

View File

@@ -1,18 +1,18 @@
From 012ebe712d84fa4242e3d44562aab45a5360b72c Mon Sep 17 00:00:00 2001
From abb20359684c77a063f6f3106fa51d8e8b25efa8 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Wed, 4 Nov 2015 02:57:56 +0100
Subject: [PATCH] winepulse.drv: Use a separate mainloop and ctx for
pulse_test_connect.
---
dlls/winepulse.drv/pulse.c | 59 ++++++++++++++++++--------------------
1 file changed, 28 insertions(+), 31 deletions(-)
dlls/winepulse.drv/pulse.c | 61 ++++++++++++++++++--------------------
1 file changed, 29 insertions(+), 32 deletions(-)
diff --git a/dlls/winepulse.drv/pulse.c b/dlls/winepulse.drv/pulse.c
index 6552e4ce250..e82e6f4d9a7 100644
index 0e504b6b6dd..a1fcbcd8492 100644
--- a/dlls/winepulse.drv/pulse.c
+++ b/dlls/winepulse.drv/pulse.c
@@ -587,7 +587,7 @@ static void convert_channel_map(const pa_channel_map *pa_map, WAVEFORMATEXTENSIB
@@ -659,7 +659,7 @@ static void convert_channel_map(const pa_channel_map *pa_map, WAVEFORMATEXTENSIB
fmt->dwChannelMask = pa_mask;
}
@@ -21,7 +21,7 @@ index 6552e4ce250..e82e6f4d9a7 100644
WAVEFORMATEX *wfx = &fmt->Format;
pa_stream *stream;
pa_channel_map map;
@@ -606,7 +606,7 @@ static void pulse_probe_settings(int render, WAVEFORMATEXTENSIBLE *fmt) {
@@ -678,7 +678,7 @@ static void pulse_probe_settings(int render, WAVEFORMATEXTENSIBLE *fmt) {
attr.minreq = attr.fragsize = pa_frame_size(&ss);
attr.prebuf = 0;
@@ -30,7 +30,7 @@ index 6552e4ce250..e82e6f4d9a7 100644
if (stream)
pa_stream_set_state_callback(stream, pulse_stream_state, NULL);
if (!stream)
@@ -617,7 +617,7 @@ static void pulse_probe_settings(int render, WAVEFORMATEXTENSIBLE *fmt) {
@@ -689,7 +689,7 @@ static void pulse_probe_settings(int render, WAVEFORMATEXTENSIBLE *fmt) {
else
ret = pa_stream_connect_record(stream, NULL, &attr, PA_STREAM_START_CORKED|PA_STREAM_FIX_RATE|PA_STREAM_FIX_CHANNELS|PA_STREAM_EARLY_REQUESTS);
if (ret >= 0) {
@@ -39,7 +39,7 @@ index 6552e4ce250..e82e6f4d9a7 100644
pa_stream_get_state(stream) == PA_STREAM_CREATING)
{}
if (pa_stream_get_state(stream) == PA_STREAM_READY) {
@@ -628,7 +628,7 @@ static void pulse_probe_settings(int render, WAVEFORMATEXTENSIBLE *fmt) {
@@ -700,7 +700,7 @@ static void pulse_probe_settings(int render, WAVEFORMATEXTENSIBLE *fmt) {
else
length = pa_stream_get_buffer_attr(stream)->fragsize;
pa_stream_disconnect(stream);
@@ -48,7 +48,7 @@ index 6552e4ce250..e82e6f4d9a7 100644
pa_stream_get_state(stream) == PA_STREAM_READY)
{}
}
@@ -675,31 +675,32 @@ static NTSTATUS pulse_test_connect(void *args)
@@ -747,31 +747,32 @@ static NTSTATUS pulse_test_connect(void *args)
struct pulse_config *config = params->config;
pa_operation *o;
int ret;
@@ -92,7 +92,7 @@ index 6552e4ce250..e82e6f4d9a7 100644
if (state == PA_CONTEXT_FAILED || state == PA_CONTEXT_TERMINATED)
goto fail;
@@ -708,15 +709,15 @@ static NTSTATUS pulse_test_connect(void *args)
@@ -780,15 +781,15 @@ static NTSTATUS pulse_test_connect(void *args)
break;
}
@@ -102,8 +102,9 @@ index 6552e4ce250..e82e6f4d9a7 100644
TRACE("Test-connected to server %s with protocol version: %i.\n",
- pa_context_get_server(pulse_ctx),
- pa_context_get_server_protocol_version(pulse_ctx));
+ pa_context_get_server(ctx),
pa_context_get_server_protocol_version(pulse_ctx));
+ pa_context_get_server_protocol_version(ctx));
- pulse_probe_settings(1, &pulse_fmt[0]);
- pulse_probe_settings(0, &pulse_fmt[1]);
@@ -112,7 +113,7 @@ index 6552e4ce250..e82e6f4d9a7 100644
free_phys_device_lists();
list_init(&g_phys_speakers);
@@ -725,26 +726,24 @@ static NTSTATUS pulse_test_connect(void *args)
@@ -797,26 +798,24 @@ static NTSTATUS pulse_test_connect(void *args)
pulse_add_device(&g_phys_speakers, NULL, 0, Speakers, 0, "", "PulseAudio");
pulse_add_device(&g_phys_sources, NULL, 0, Microphone, 0, "", "PulseAudio");
@@ -145,7 +146,7 @@ index 6552e4ce250..e82e6f4d9a7 100644
config->modes[0].format = pulse_fmt[0];
config->modes[0].def_period = pulse_def_period[0];
@@ -759,10 +758,8 @@ static NTSTATUS pulse_test_connect(void *args)
@@ -831,10 +830,8 @@ static NTSTATUS pulse_test_connect(void *args)
return STATUS_SUCCESS;
fail:
@@ -159,5 +160,5 @@ index 6552e4ce250..e82e6f4d9a7 100644
params->result = E_FAIL;
return STATUS_SUCCESS;
--
2.34.1
2.35.1

View File

@@ -0,0 +1,40 @@
From abc3fcb614b68ecf9d92d27da9629bd8f4ca93df Mon Sep 17 00:00:00 2001
From: Mohamad Al-Jaf <mohamadaljaf@gmail.com>
Date: Wed, 30 Mar 2022 03:12:30 -0400
Subject: [PATCH] winepulse: Add aux0 and aux1 channels.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52572
---
dlls/winepulse.drv/pulse.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/dlls/winepulse.drv/pulse.c b/dlls/winepulse.drv/pulse.c
index 0e504b6b6dd..e32b4eef2da 100644
--- a/dlls/winepulse.drv/pulse.c
+++ b/dlls/winepulse.drv/pulse.c
@@ -401,9 +401,11 @@ static UINT pulse_channel_map_to_channel_mask(const pa_channel_map *map)
for (i = 0; i < map->channels; ++i) {
switch (map->map[i]) {
default: FIXME("Unhandled channel %s\n", pa_channel_position_to_string(map->map[i])); break;
+ case PA_CHANNEL_POSITION_AUX0:
case PA_CHANNEL_POSITION_FRONT_LEFT: mask |= SPEAKER_FRONT_LEFT; break;
case PA_CHANNEL_POSITION_MONO:
case PA_CHANNEL_POSITION_FRONT_CENTER: mask |= SPEAKER_FRONT_CENTER; break;
+ case PA_CHANNEL_POSITION_AUX1:
case PA_CHANNEL_POSITION_FRONT_RIGHT: mask |= SPEAKER_FRONT_RIGHT; break;
case PA_CHANNEL_POSITION_REAR_LEFT: mask |= SPEAKER_BACK_LEFT; break;
case PA_CHANNEL_POSITION_REAR_CENTER: mask |= SPEAKER_BACK_CENTER; break;
@@ -884,7 +886,9 @@ static const enum pa_channel_position pulse_pos_from_wfx[] = {
PA_CHANNEL_POSITION_TOP_FRONT_RIGHT,
PA_CHANNEL_POSITION_TOP_REAR_LEFT,
PA_CHANNEL_POSITION_TOP_REAR_CENTER,
- PA_CHANNEL_POSITION_TOP_REAR_RIGHT
+ PA_CHANNEL_POSITION_TOP_REAR_RIGHT,
+ PA_CHANNEL_POSITION_AUX0,
+ PA_CHANNEL_POSITION_AUX1
};
static HRESULT pulse_spec_from_waveformat(struct pulse_stream *stream, const WAVEFORMATEX *fmt)
--
2.35.1

View File

@@ -0,0 +1 @@
Fixes: [52572] Support PulseAudio channels aux0 and aux1.

View File

@@ -1,4 +1,4 @@
From 0c9b32515c444dcd3fb76473c80adcc368f9e8fd Mon Sep 17 00:00:00 2001
From 0cfe71d332e4ed936cacff341f77cb05e99e9c3c Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Tue, 27 Dec 2016 17:45:05 +0800
Subject: [PATCH] winex11.drv: Send WM_WINDOWPOSCHANGING/WM_WINDOWPOSCHANGED
@@ -9,10 +9,10 @@ Subject: [PATCH] winex11.drv: Send WM_WINDOWPOSCHANGING/WM_WINDOWPOSCHANGED
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c
index 9a19eb9b446..d518c81d3e9 100644
index 99f3f04e00f..ec41cbbd2ac 100644
--- a/dlls/winex11.drv/event.c
+++ b/dlls/winex11.drv/event.c
@@ -592,16 +592,27 @@ static void set_input_focus( struct x11drv_win_data *data )
@@ -604,16 +604,27 @@ static void set_input_focus( struct x11drv_win_data *data )
*/
static void set_focus( Display *display, HWND hwnd, Time time )
{
@@ -27,7 +27,7 @@ index 9a19eb9b446..d518c81d3e9 100644
x11drv_thread_data()->active_window = hwnd;
TRACE( "setting foreground window to %p\n", hwnd );
NtUserSetForegroundWindow( hwnd, FALSE );
NtUserSetForegroundWindow( hwnd );
+ /* Some applications expect that a being deactivated topmost window
+ * receives the WM_WINDOWPOSCHANGING/WM_WINDOWPOSCHANGED messages,
@@ -42,5 +42,5 @@ index 9a19eb9b446..d518c81d3e9 100644
NtUserGetGUIThreadInfo( 0, &threadinfo );
focus = threadinfo.hwndFocus;
--
2.34.1
2.35.1

View File

@@ -1,4 +1,4 @@
From 9236962ab40f697a183cd017d58747902f4634da Mon Sep 17 00:00:00 2001
From aeaff5bd1a2a1940d6e28388aabc1bc9b7608cd8 Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Wed, 10 Feb 2016 15:09:29 +0800
Subject: [PATCH] winex11.drv: Add support for _NET_ACTIVE_WINDOW. (v2)
@@ -17,10 +17,10 @@ For bug #2155.
7 files changed, 65 insertions(+)
diff --git a/dlls/win32u/driver.c b/dlls/win32u/driver.c
index abe4c7f1489..d18a8121f1f 100644
index 4a853b516f4..35eab0ec13c 100644
--- a/dlls/win32u/driver.c
+++ b/dlls/win32u/driver.c
@@ -807,6 +807,10 @@ static BOOL nulldrv_ScrollDC( HDC hdc, INT dx, INT dy, HRGN update )
@@ -833,6 +833,10 @@ static BOOL nulldrv_ScrollDC( HDC hdc, INT dx, INT dy, HRGN update )
hdc, rect.left - dx, rect.top - dy, SRCCOPY, 0, 0 );
}
@@ -31,7 +31,7 @@ index abe4c7f1489..d18a8121f1f 100644
static void nulldrv_SetCapture( HWND hwnd, UINT flags )
{
}
@@ -1168,6 +1172,7 @@ static const struct user_driver_funcs lazy_load_driver =
@@ -1196,6 +1200,7 @@ static const struct user_driver_funcs lazy_load_driver =
nulldrv_MsgWaitForMultipleObjectsEx,
nulldrv_ReleaseDC,
nulldrv_ScrollDC,
@@ -39,7 +39,7 @@ index abe4c7f1489..d18a8121f1f 100644
nulldrv_SetCapture,
nulldrv_SetFocus,
loaderdrv_SetLayeredWindowAttributes,
@@ -1241,6 +1246,7 @@ void CDECL __wine_set_user_driver( const struct user_driver_funcs *funcs, UINT v
@@ -1270,6 +1275,7 @@ void __wine_set_user_driver( const struct user_driver_funcs *funcs, UINT version
SET_USER_FUNC(MsgWaitForMultipleObjectsEx);
SET_USER_FUNC(ReleaseDC);
SET_USER_FUNC(ScrollDC);
@@ -48,10 +48,10 @@ index abe4c7f1489..d18a8121f1f 100644
SET_USER_FUNC(SetFocus);
SET_USER_FUNC(SetLayeredWindowAttributes);
diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c
index 8fc2a6a4b6c..04510c819b4 100644
index cbfb228ea09..2c73b4c9eb9 100644
--- a/dlls/winex11.drv/event.c
+++ b/dlls/winex11.drv/event.c
@@ -610,6 +610,9 @@ static void set_focus( Display *display, HWND hwnd, Time time )
@@ -595,6 +595,9 @@ static void set_focus( Display *display, HWND hwnd, Time time )
Window win;
GUITHREADINFO threadinfo;
@@ -59,9 +59,9 @@ index 8fc2a6a4b6c..04510c819b4 100644
+ x11drv_thread_data()->active_window = hwnd;
+
TRACE( "setting foreground window to %p\n", hwnd );
NtUserSetForegroundWindow( hwnd, FALSE );
NtUserSetForegroundWindow( hwnd );
@@ -857,6 +860,8 @@ static void focus_out( Display *display , HWND hwnd )
@@ -851,6 +854,8 @@ static void focus_out( Display *display , HWND hwnd )
if (!focus_win)
{
@@ -71,10 +71,10 @@ index 8fc2a6a4b6c..04510c819b4 100644
Foreground window, because in most cases the messages sent
above must have already changed the foreground window, in which
diff --git a/dlls/winex11.drv/init.c b/dlls/winex11.drv/init.c
index 65865fcf4fa..ff71e67448e 100644
index 618bc844f05..533e60a4871 100644
--- a/dlls/winex11.drv/init.c
+++ b/dlls/winex11.drv/init.c
@@ -410,6 +410,7 @@ static const struct user_driver_funcs x11drv_funcs =
@@ -418,6 +418,7 @@ static const struct user_driver_funcs x11drv_funcs =
.pMsgWaitForMultipleObjectsEx = X11DRV_MsgWaitForMultipleObjectsEx,
.pReleaseDC = X11DRV_ReleaseDC,
.pScrollDC = X11DRV_ScrollDC,
@@ -83,10 +83,10 @@ index 65865fcf4fa..ff71e67448e 100644
.pSetFocus = X11DRV_SetFocus,
.pSetLayeredWindowAttributes = X11DRV_SetLayeredWindowAttributes,
diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c
index 5603c52ae6c..61afe03c215 100644
index 3ebbee0856e..6c52e1841df 100644
--- a/dlls/winex11.drv/window.c
+++ b/dlls/winex11.drv/window.c
@@ -2231,6 +2231,54 @@ BOOL X11DRV_ScrollDC( HDC hdc, INT dx, INT dy, HRGN update )
@@ -2383,6 +2383,54 @@ BOOL X11DRV_ScrollDC( HDC hdc, INT dx, INT dy, HRGN update )
}
@@ -142,10 +142,10 @@ index 5603c52ae6c..61afe03c215 100644
* SetCapture (X11DRV.@)
*/
diff --git a/dlls/winex11.drv/x11drv.h b/dlls/winex11.drv/x11drv.h
index 70da5c26228..205dba5fdca 100644
index 49c2380559e..d8b5a99fec2 100644
--- a/dlls/winex11.drv/x11drv.h
+++ b/dlls/winex11.drv/x11drv.h
@@ -222,6 +222,7 @@ extern void X11DRV_GetDC( HDC hdc, HWND hwnd, HWND top, const RECT *win_rect,
@@ -228,6 +228,7 @@ extern void X11DRV_GetDC( HDC hdc, HWND hwnd, HWND top, const RECT *win_rect,
const RECT *top_rect, DWORD flags ) DECLSPEC_HIDDEN;
extern void X11DRV_ReleaseDC( HWND hwnd, HDC hdc ) DECLSPEC_HIDDEN;
extern BOOL X11DRV_ScrollDC( HDC hdc, INT dx, INT dy, HRGN update ) DECLSPEC_HIDDEN;
@@ -153,7 +153,7 @@ index 70da5c26228..205dba5fdca 100644
extern void X11DRV_SetCapture( HWND hwnd, UINT flags ) DECLSPEC_HIDDEN;
extern void X11DRV_SetLayeredWindowAttributes( HWND hwnd, COLORREF key, BYTE alpha,
DWORD flags ) DECLSPEC_HIDDEN;
@@ -389,6 +390,7 @@ struct x11drv_thread_data
@@ -369,6 +370,7 @@ struct x11drv_thread_data
Display *display;
XEvent *current_event; /* event currently being processed */
HWND grab_hwnd; /* window that currently grabs the mouse */
@@ -161,7 +161,7 @@ index 70da5c26228..205dba5fdca 100644
HWND last_focus; /* last window that had focus */
XIM xim; /* input method */
HWND last_xic_hwnd; /* last xic window */
@@ -494,6 +496,7 @@ enum x11drv_atoms
@@ -479,6 +481,7 @@ enum x11drv_atoms
XATOM_DndSelection,
XATOM__ICC_PROFILE,
XATOM__MOTIF_WM_HINTS,
@@ -170,10 +170,10 @@ index 70da5c26228..205dba5fdca 100644
XATOM__NET_STARTUP_INFO,
XATOM__NET_SUPPORTED,
diff --git a/dlls/winex11.drv/x11drv_main.c b/dlls/winex11.drv/x11drv_main.c
index a8ef68f489d..aefd1286c53 100644
index dc987ae70a2..8ebec6301f2 100644
--- a/dlls/winex11.drv/x11drv_main.c
+++ b/dlls/winex11.drv/x11drv_main.c
@@ -139,6 +139,7 @@ static const char * const atom_names[NB_XATOMS - FIRST_XATOM] =
@@ -156,6 +156,7 @@ static const char * const atom_names[NB_XATOMS - FIRST_XATOM] =
"DndSelection",
"_ICC_PROFILE",
"_MOTIF_WM_HINTS",
@@ -182,10 +182,10 @@ index a8ef68f489d..aefd1286c53 100644
"_NET_STARTUP_INFO",
"_NET_SUPPORTED",
diff --git a/include/wine/gdi_driver.h b/include/wine/gdi_driver.h
index 12a4737d8f2..532e4bdcd9e 100644
index 998aa3ed3e9..9be79656f0e 100644
--- a/include/wine/gdi_driver.h
+++ b/include/wine/gdi_driver.h
@@ -302,6 +302,7 @@ struct user_driver_funcs
@@ -307,6 +307,7 @@ struct user_driver_funcs
NTSTATUS (*pMsgWaitForMultipleObjectsEx)(DWORD,const HANDLE*,const LARGE_INTEGER*,DWORD,DWORD);
void (*pReleaseDC)(HWND,HDC);
BOOL (*pScrollDC)(HDC,INT,INT,HRGN);

View File

@@ -1,4 +1,4 @@
From 3026d7b28f8c3647593895e605c2beecbd1aad6e Mon Sep 17 00:00:00 2001
From c04e4fbc278d2e434f7adcd782af094a844ff46a Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Tue, 15 Sep 2020 19:44:38 +1000
Subject: [PATCH] ws2_32: Return a valid value for WSAIoctl
@@ -13,10 +13,10 @@ Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
4 files changed, 49 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/unix/socket.c b/dlls/ntdll/unix/socket.c
index 71dfcdd1114..2111e9e12ff 100644
index 351028d4983..3aef6d27eb4 100644
--- a/dlls/ntdll/unix/socket.c
+++ b/dlls/ntdll/unix/socket.c
@@ -1422,6 +1422,25 @@ NTSTATUS sock_ioctl( HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc, void *apc
@@ -1461,6 +1461,25 @@ NTSTATUS sock_ioctl( HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc, void *apc
return STATUS_SUCCESS;
}
@@ -43,10 +43,10 @@ index 71dfcdd1114..2111e9e12ff 100644
{
int value, ret;
diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c
index fe7e4fb3464..9c133e94e60 100644
index 9cc75aacf20..156039b30b9 100644
--- a/dlls/ws2_32/socket.c
+++ b/dlls/ws2_32/socket.c
@@ -2007,6 +2007,23 @@ INT WINAPI WSAIoctl(SOCKET s, DWORD code, LPVOID in_buff, DWORD in_size, LPVOID
@@ -2310,6 +2310,23 @@ INT WINAPI WSAIoctl(SOCKET s, DWORD code, LPVOID in_buff, DWORD in_size, LPVOID
return ret ? -1 : 0;
}
@@ -71,10 +71,10 @@ index fe7e4fb3464..9c133e94e60 100644
{
DWORD ret;
diff --git a/dlls/ws2_32/tests/sock.c b/dlls/ws2_32/tests/sock.c
index b38357954b7..89a86cc3aa4 100644
index af4226e6258..0179feba37f 100644
--- a/dlls/ws2_32/tests/sock.c
+++ b/dlls/ws2_32/tests/sock.c
@@ -6065,8 +6065,9 @@ static void test_WSASendTo(void)
@@ -6708,8 +6708,9 @@ static void test_WSASendTo(void)
struct sockaddr_in addr, ret_addr;
char buf[12] = "hello world";
WSABUF data_buf;
@@ -85,7 +85,7 @@ index b38357954b7..89a86cc3aa4 100644
addr.sin_family = AF_INET;
addr.sin_port = htons(139);
@@ -6102,6 +6103,11 @@ static void test_WSASendTo(void)
@@ -6745,6 +6746,11 @@ static void test_WSASendTo(void)
ok(!ret, "got error %u\n", WSAGetLastError());
ok(ret_addr.sin_family == AF_INET, "got family %u\n", ret_addr.sin_family);
ok(ret_addr.sin_port, "expected nonzero port\n");
@@ -96,8 +96,8 @@ index b38357954b7..89a86cc3aa4 100644
+ closesocket(s);
}
static DWORD WINAPI recv_thread(LPVOID arg)
@@ -6142,6 +6148,7 @@ static void test_WSARecv(void)
struct recv_thread_apc_param
@@ -6824,6 +6830,7 @@ static void test_WSARecv(void)
DWORD dwret;
BOOL bret;
HANDLE thread, event = NULL, io_port;
@@ -105,7 +105,7 @@ index b38357954b7..89a86cc3aa4 100644
tcp_socketpair(&src, &dest);
@@ -6290,6 +6297,10 @@ static void test_WSARecv(void)
@@ -6989,6 +6996,10 @@ static void test_WSARecv(void)
CloseHandle(io_port);
@@ -117,7 +117,7 @@ index b38357954b7..89a86cc3aa4 100644
if (server != INVALID_SOCKET)
closesocket(server);
diff --git a/include/wine/afd.h b/include/wine/afd.h
index efd5787e90a..b6aad067770 100644
index 993730cacdb..04dad6ace21 100644
--- a/include/wine/afd.h
+++ b/include/wine/afd.h
@@ -283,6 +283,7 @@ C_ASSERT( sizeof(struct afd_get_events_params) == 56 );
@@ -129,5 +129,5 @@ index efd5787e90a..b6aad067770 100644
struct afd_iovec
{
--
2.34.1
2.35.1

View File

@@ -1,25 +0,0 @@
From a8f9265b71b423e2d280645a225465750a1d4594 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Mon, 25 Oct 2021 09:48:50 +1100
Subject: [PATCH 3/3] Send NOTIFY_CUESTOP when Stop is called
---
libs/faudio/src/FACT.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/libs/faudio/src/FACT.c b/libs/faudio/src/FACT.c
index cea960d6710..d9c5d7c2766 100644
--- a/libs/faudio/src/FACT.c
+++ b/libs/faudio/src/FACT.c
@@ -2685,6 +2685,8 @@ uint32_t FACTCue_Stop(FACTCue *pCue, uint32_t dwFlags)
}
}
+ FACT_INTERNAL_SendCueNotification(pCue, NOTIFY_CUESTOP, FACTNOTIFICATIONTYPE_CUESTOP);
+
FAudio_PlatformUnlockMutex(pCue->parentBank->parentEngine->apiLock);
return 0;
}
--
2.33.0

View File

@@ -1,2 +1,2 @@
Wine Staging 7.10
Wine Staging 7.12

Some files were not shown because too many files have changed in this diff Show More