Wine-Devel
By thread
wine-devel@list.winehq.org
By month
Messages by month
- ----- 2026 -----
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
January 2018
- 62 participants
- 1108 messages
[PATCH resend 2/2] winex11.drv, winemac.drv: Don't send WM_CANCELMODE on focus loss.
by Zebediah Figura
Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com>
---
This and the previous patch fix a WM-dependent failure. Most window managers
activate another window when one is minimized, including that of native
Windows. The test does in fact account for this, however, Wine currently
activates windows incorrectly, both by sending the WM_CANCELMODE message and
by failing to kill focus before minimizing a window.
This test was succeeding (inside todo_wine) on the testbot, which uses fvwm in
focus-follows-mouse mode, since in that case another window would never be
activated.
dlls/user32/tests/msg.c | 2 +-
dlls/winemac.drv/window.c | 6 +-----
dlls/winex11.drv/event.c | 1 -
3 files changed, 2 insertions(+), 7 deletions(-)
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c
index f391ab9..2ff0c76 100644
--- a/dlls/user32/tests/msg.c
+++ b/dlls/user32/tests/msg.c
@@ -5087,7 +5087,7 @@ static void test_messages(void)
ShowWindow(hwnd, SW_MINIMIZE);
flush_events();
- ok_sequence(WmShowMinOverlappedSeq, "ShowWindow(SW_SHOWMINIMIZED):overlapped", TRUE);
+ ok_sequence(WmShowMinOverlappedSeq, "ShowWindow(SW_SHOWMINIMIZED):overlapped", FALSE);
flush_sequence();
if (GetWindowLongW( hwnd, GWL_STYLE ) & WS_MINIMIZE)
diff --git a/dlls/winemac.drv/window.c b/dlls/winemac.drv/window.c
index e49a445..7c07907 100644
--- a/dlls/winemac.drv/window.c
+++ b/dlls/winemac.drv/window.c
@@ -2335,11 +2335,7 @@ void macdrv_window_lost_focus(HWND hwnd, const macdrv_event *event)
TRACE("win %p/%p fg %p\n", hwnd, event->window, GetForegroundWindow());
if (hwnd == GetForegroundWindow())
- {
- SendMessageW(hwnd, WM_CANCELMODE, 0, 0);
- if (hwnd == GetForegroundWindow())
- SetForegroundWindow(GetDesktopWindow());
- }
+ SetForegroundWindow(GetDesktopWindow());
}
diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c
index a0bfe05..9bd4e11 100644
--- a/dlls/winex11.drv/event.c
+++ b/dlls/winex11.drv/event.c
@@ -804,7 +804,6 @@ static BOOL X11DRV_FocusIn( HWND hwnd, XEvent *xev )
return;
}
if (hwnd != GetForegroundWindow()) return;
- SendMessageW( hwnd, WM_CANCELMODE, 0, 0 );
/* don't reset the foreground window, if the window which is
getting the focus is a Wine window */
--
2.7.4
Jan. 31, 2018
[PATCH resend 1/2] user32: Kill focus before minimizing a window.
by Zebediah Figura
Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com>
---
Initial version was dependent on some patches in my local tree; sorry for the
spam.
dlls/user32/tests/win.c | 31 ++++++++++++++++++++++++++++++-
dlls/user32/winpos.c | 8 ++++++++
2 files changed, 38 insertions(+), 1 deletion(-)
diff --git a/dlls/user32/tests/win.c b/dlls/user32/tests/win.c
index f492ecc..917ab61 100644
--- a/dlls/user32/tests/win.c
+++ b/dlls/user32/tests/win.c
@@ -3113,7 +3113,6 @@ todo_wine
ShowWindow(hwnd, SW_SHOWMINIMIZED);
ok( GetActiveWindow() == hwnd, "parent window %p should be active\n", hwnd);
ok( GetFocus() != child, "Focus should not be on child %p\n", child );
-todo_wine
ok( GetFocus() != hwnd, "Focus should not be on parent %p\n", hwnd );
old_wnd_proc = (WNDPROC)SetWindowLongPtrA(hwnd, GWLP_WNDPROC, (LONG_PTR)set_focus_on_activate_proc);
ShowWindow(hwnd, SW_RESTORE);
@@ -10071,6 +10070,13 @@ static void test_minimize_window(HWND hwndMain)
ShowWindow(hwnd2, SW_RESTORE);
check_active_state(hwnd2, hwnd2, hwnd2);
+ /* try SW_SHOWMINIMIZED */
+ ShowWindow(hwnd2, SW_SHOWMINIMIZED);
+ check_active_state(hwnd2, hwnd2, 0);
+
+ ShowWindow(hwnd2, SW_RESTORE);
+ check_active_state(hwnd2, hwnd2, hwnd2);
+
/* hide a non-active window */
ShowWindow(hwnd, SW_MINIMIZE);
check_active_state(hwnd2, hwnd2, hwnd2);
@@ -10114,6 +10120,11 @@ static void test_minimize_window(HWND hwndMain)
todo_wine
check_active_state(hwnd2, hwnd2, hwnd2);
+ /* with SW_SHOWMINIMIZED */
+ ShowWindow(hwnd3, SW_RESTORE);
+ ShowWindow(hwnd3, SW_SHOWMINIMIZED);
+ check_active_state(hwnd3, hwnd3, 0);
+
/* hide an owner window */
ShowWindow(hwnd, SW_RESTORE);
ShowWindow(hwnd2, SW_RESTORE);
@@ -10123,6 +10134,24 @@ static void test_minimize_window(HWND hwndMain)
check_active_state(hwnd2, hwnd2, hwnd2);
DestroyWindow(hwnd3);
+
+ /* test a child window - focus should be yielded back to the parent */
+ ShowWindow(hwnd, SW_RESTORE);
+ hwnd3 = CreateWindowExA(0, "MainWindowClass", "Child window 3", WS_CHILD|WS_VISIBLE,
+ 100, 100, 200, 200, hwnd, 0, GetModuleHandleA(NULL), NULL);
+ SetFocus(hwnd3);
+ check_active_state(hwnd, hwnd, hwnd3);
+ ShowWindow(hwnd3, SW_MINIMIZE);
+ check_active_state(hwnd, hwnd, hwnd);
+
+ /* with SW_SHOWMINIMIZED */
+ ShowWindow(hwnd3, SW_RESTORE);
+ SetFocus(hwnd3);
+ check_active_state(hwnd, hwnd, hwnd3);
+ ShowWindow(hwnd3, SW_SHOWMINIMIZED);
+ check_active_state(hwnd, hwnd, hwnd);
+
+ DestroyWindow(hwnd3);
DestroyWindow(hwnd2);
DestroyWindow(hwnd);
}
diff --git a/dlls/user32/winpos.c b/dlls/user32/winpos.c
index 10f0fd0..c1b55b5 100644
--- a/dlls/user32/winpos.c
+++ b/dlls/user32/winpos.c
@@ -983,6 +983,14 @@ UINT WINPOS_MinMaximize( HWND hwnd, UINT cmd, LPRECT rect )
if (IsZoomed( hwnd )) win_set_flags( hwnd, WIN_RESTORE_MAX, 0 );
else win_set_flags( hwnd, 0, WIN_RESTORE_MAX );
+ if (GetFocus() == hwnd)
+ {
+ if (GetWindowLongW(hwnd, GWL_STYLE) & WS_CHILD)
+ SetFocus(GetAncestor(hwnd, GA_PARENT));
+ else
+ SetFocus(0);
+ }
+
old_style = WIN_SetStyle( hwnd, WS_MINIMIZE, WS_MAXIMIZE );
wpl.ptMinPosition = WINPOS_FindIconPos( hwnd, wpl.ptMinPosition );
--
2.7.4
Jan. 31, 2018
[PATCH v2] d3dx9: Stub D3DXCreateKeyframedAnimationSet().
by Matteo Bruni
From: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com>
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com>
Signed-off-by: Matteo Bruni <mbruni(a)codeweavers.com>
---
dlls/d3dx9_24/d3dx9_24.spec | 2 +-
dlls/d3dx9_25/d3dx9_25.spec | 2 +-
dlls/d3dx9_26/d3dx9_26.spec | 2 +-
dlls/d3dx9_27/d3dx9_27.spec | 2 +-
dlls/d3dx9_28/d3dx9_28.spec | 2 +-
dlls/d3dx9_29/d3dx9_29.spec | 2 +-
dlls/d3dx9_30/d3dx9_30.spec | 2 +-
dlls/d3dx9_31/d3dx9_31.spec | 2 +-
dlls/d3dx9_32/d3dx9_32.spec | 2 +-
dlls/d3dx9_33/d3dx9_33.spec | 2 +-
dlls/d3dx9_34/d3dx9_34.spec | 2 +-
dlls/d3dx9_35/d3dx9_35.spec | 2 +-
dlls/d3dx9_36/animation.c | 12 ++++++++++++
dlls/d3dx9_36/d3dx9_36.spec | 2 +-
dlls/d3dx9_37/d3dx9_37.spec | 2 +-
dlls/d3dx9_38/d3dx9_38.spec | 2 +-
dlls/d3dx9_39/d3dx9_39.spec | 2 +-
dlls/d3dx9_40/d3dx9_40.spec | 2 +-
dlls/d3dx9_41/d3dx9_41.spec | 2 +-
dlls/d3dx9_42/d3dx9_42.spec | 2 +-
dlls/d3dx9_43/d3dx9_43.spec | 2 +-
21 files changed, 32 insertions(+), 20 deletions(-)
diff --git a/dlls/d3dx9_24/d3dx9_24.spec b/dlls/d3dx9_24/d3dx9_24.spec
index d816fd830d..a6a7241987 100644
--- a/dlls/d3dx9_24/d3dx9_24.spec
+++ b/dlls/d3dx9_24/d3dx9_24.spec
@@ -64,7 +64,7 @@
@ stdcall D3DXCreateFontIndirectW(ptr ptr ptr)
@ stdcall D3DXCreateFontW(ptr long long long long long long long long long wstr ptr)
@ stdcall D3DXCreateFragmentLinker(ptr long ptr)
-@ stub D3DXCreateKeyframedAnimationSet(ptr long long long long ptr ptr)
+@ stdcall D3DXCreateKeyframedAnimationSet(str long long long long ptr ptr)
@ stdcall D3DXCreateLine(ptr ptr)
@ stdcall D3DXCreateMatrixStack(long ptr)
@ stdcall D3DXCreateMesh(long long long ptr ptr ptr)
diff --git a/dlls/d3dx9_25/d3dx9_25.spec b/dlls/d3dx9_25/d3dx9_25.spec
index e15230d417..564f8f768e 100644
--- a/dlls/d3dx9_25/d3dx9_25.spec
+++ b/dlls/d3dx9_25/d3dx9_25.spec
@@ -64,7 +64,7 @@
@ stdcall D3DXCreateFontIndirectW(ptr ptr ptr)
@ stdcall D3DXCreateFontW(ptr long long long long long long long long long wstr ptr)
@ stdcall D3DXCreateFragmentLinker(ptr long ptr)
-@ stub D3DXCreateKeyframedAnimationSet(ptr long long long long ptr ptr)
+@ stdcall D3DXCreateKeyframedAnimationSet(str long long long long ptr ptr)
@ stdcall D3DXCreateLine(ptr ptr)
@ stdcall D3DXCreateMatrixStack(long ptr)
@ stdcall D3DXCreateMesh(long long long ptr ptr ptr)
diff --git a/dlls/d3dx9_26/d3dx9_26.spec b/dlls/d3dx9_26/d3dx9_26.spec
index ac25d066db..6b922cff2f 100644
--- a/dlls/d3dx9_26/d3dx9_26.spec
+++ b/dlls/d3dx9_26/d3dx9_26.spec
@@ -68,7 +68,7 @@
@ stdcall D3DXCreateFontIndirectW(ptr ptr ptr)
@ stdcall D3DXCreateFontW(ptr long long long long long long long long long wstr ptr)
@ stdcall D3DXCreateFragmentLinker(ptr long ptr)
-@ stub D3DXCreateKeyframedAnimationSet(ptr long long long long ptr ptr)
+@ stdcall D3DXCreateKeyframedAnimationSet(str long long long long ptr ptr)
@ stdcall D3DXCreateLine(ptr ptr)
@ stdcall D3DXCreateMatrixStack(long ptr)
@ stdcall D3DXCreateMesh(long long long ptr ptr ptr)
diff --git a/dlls/d3dx9_27/d3dx9_27.spec b/dlls/d3dx9_27/d3dx9_27.spec
index ac25d066db..6b922cff2f 100644
--- a/dlls/d3dx9_27/d3dx9_27.spec
+++ b/dlls/d3dx9_27/d3dx9_27.spec
@@ -68,7 +68,7 @@
@ stdcall D3DXCreateFontIndirectW(ptr ptr ptr)
@ stdcall D3DXCreateFontW(ptr long long long long long long long long long wstr ptr)
@ stdcall D3DXCreateFragmentLinker(ptr long ptr)
-@ stub D3DXCreateKeyframedAnimationSet(ptr long long long long ptr ptr)
+@ stdcall D3DXCreateKeyframedAnimationSet(str long long long long ptr ptr)
@ stdcall D3DXCreateLine(ptr ptr)
@ stdcall D3DXCreateMatrixStack(long ptr)
@ stdcall D3DXCreateMesh(long long long ptr ptr ptr)
diff --git a/dlls/d3dx9_28/d3dx9_28.spec b/dlls/d3dx9_28/d3dx9_28.spec
index a6378d86ae..ed3c741fcb 100644
--- a/dlls/d3dx9_28/d3dx9_28.spec
+++ b/dlls/d3dx9_28/d3dx9_28.spec
@@ -68,7 +68,7 @@
@ stdcall D3DXCreateFontIndirectW(ptr ptr ptr)
@ stdcall D3DXCreateFontW(ptr long long long long long long long long long wstr ptr)
@ stdcall D3DXCreateFragmentLinker(ptr long ptr)
-@ stub D3DXCreateKeyframedAnimationSet(ptr long long long long ptr ptr)
+@ stdcall D3DXCreateKeyframedAnimationSet(str long long long long ptr ptr)
@ stdcall D3DXCreateLine(ptr ptr)
@ stdcall D3DXCreateMatrixStack(long ptr)
@ stdcall D3DXCreateMesh(long long long ptr ptr ptr)
diff --git a/dlls/d3dx9_29/d3dx9_29.spec b/dlls/d3dx9_29/d3dx9_29.spec
index a6378d86ae..ed3c741fcb 100644
--- a/dlls/d3dx9_29/d3dx9_29.spec
+++ b/dlls/d3dx9_29/d3dx9_29.spec
@@ -68,7 +68,7 @@
@ stdcall D3DXCreateFontIndirectW(ptr ptr ptr)
@ stdcall D3DXCreateFontW(ptr long long long long long long long long long wstr ptr)
@ stdcall D3DXCreateFragmentLinker(ptr long ptr)
-@ stub D3DXCreateKeyframedAnimationSet(ptr long long long long ptr ptr)
+@ stdcall D3DXCreateKeyframedAnimationSet(str long long long long ptr ptr)
@ stdcall D3DXCreateLine(ptr ptr)
@ stdcall D3DXCreateMatrixStack(long ptr)
@ stdcall D3DXCreateMesh(long long long ptr ptr ptr)
diff --git a/dlls/d3dx9_30/d3dx9_30.spec b/dlls/d3dx9_30/d3dx9_30.spec
index f122583781..5bbee9ce51 100644
--- a/dlls/d3dx9_30/d3dx9_30.spec
+++ b/dlls/d3dx9_30/d3dx9_30.spec
@@ -68,7 +68,7 @@
@ stdcall D3DXCreateFontIndirectW(ptr ptr ptr)
@ stdcall D3DXCreateFontW(ptr long long long long long long long long long wstr ptr)
@ stdcall D3DXCreateFragmentLinker(ptr long ptr)
-@ stub D3DXCreateKeyframedAnimationSet(ptr long long long long ptr ptr)
+@ stdcall D3DXCreateKeyframedAnimationSet(str long long long long ptr ptr)
@ stdcall D3DXCreateLine(ptr ptr)
@ stdcall D3DXCreateMatrixStack(long ptr)
@ stdcall D3DXCreateMesh(long long long ptr ptr ptr)
diff --git a/dlls/d3dx9_31/d3dx9_31.spec b/dlls/d3dx9_31/d3dx9_31.spec
index a0a74a59e1..16f1a3a77f 100644
--- a/dlls/d3dx9_31/d3dx9_31.spec
+++ b/dlls/d3dx9_31/d3dx9_31.spec
@@ -67,7 +67,7 @@
@ stdcall D3DXCreateFontIndirectW(ptr ptr ptr)
@ stdcall D3DXCreateFontW(ptr long long long long long long long long long wstr ptr)
@ stdcall D3DXCreateFragmentLinker(ptr long ptr)
-@ stub D3DXCreateKeyframedAnimationSet(ptr long long long long ptr ptr)
+@ stdcall D3DXCreateKeyframedAnimationSet(str long long long long ptr ptr)
@ stdcall D3DXCreateLine(ptr ptr)
@ stdcall D3DXCreateMatrixStack(long ptr)
@ stdcall D3DXCreateMesh(long long long ptr ptr ptr)
diff --git a/dlls/d3dx9_32/d3dx9_32.spec b/dlls/d3dx9_32/d3dx9_32.spec
index e4e4fc6525..4368914ebe 100644
--- a/dlls/d3dx9_32/d3dx9_32.spec
+++ b/dlls/d3dx9_32/d3dx9_32.spec
@@ -67,7 +67,7 @@
@ stdcall D3DXCreateFontIndirectW(ptr ptr ptr)
@ stdcall D3DXCreateFontW(ptr long long long long long long long long long wstr ptr)
@ stdcall D3DXCreateFragmentLinker(ptr long ptr)
-@ stub D3DXCreateKeyframedAnimationSet(ptr long long long long ptr ptr)
+@ stdcall D3DXCreateKeyframedAnimationSet(str long long long long ptr ptr)
@ stdcall D3DXCreateLine(ptr ptr)
@ stdcall D3DXCreateMatrixStack(long ptr)
@ stdcall D3DXCreateMesh(long long long ptr ptr ptr)
diff --git a/dlls/d3dx9_33/d3dx9_33.spec b/dlls/d3dx9_33/d3dx9_33.spec
index e4e4fc6525..4368914ebe 100644
--- a/dlls/d3dx9_33/d3dx9_33.spec
+++ b/dlls/d3dx9_33/d3dx9_33.spec
@@ -67,7 +67,7 @@
@ stdcall D3DXCreateFontIndirectW(ptr ptr ptr)
@ stdcall D3DXCreateFontW(ptr long long long long long long long long long wstr ptr)
@ stdcall D3DXCreateFragmentLinker(ptr long ptr)
-@ stub D3DXCreateKeyframedAnimationSet(ptr long long long long ptr ptr)
+@ stdcall D3DXCreateKeyframedAnimationSet(str long long long long ptr ptr)
@ stdcall D3DXCreateLine(ptr ptr)
@ stdcall D3DXCreateMatrixStack(long ptr)
@ stdcall D3DXCreateMesh(long long long ptr ptr ptr)
diff --git a/dlls/d3dx9_34/d3dx9_34.spec b/dlls/d3dx9_34/d3dx9_34.spec
index e4e4fc6525..4368914ebe 100644
--- a/dlls/d3dx9_34/d3dx9_34.spec
+++ b/dlls/d3dx9_34/d3dx9_34.spec
@@ -67,7 +67,7 @@
@ stdcall D3DXCreateFontIndirectW(ptr ptr ptr)
@ stdcall D3DXCreateFontW(ptr long long long long long long long long long wstr ptr)
@ stdcall D3DXCreateFragmentLinker(ptr long ptr)
-@ stub D3DXCreateKeyframedAnimationSet(ptr long long long long ptr ptr)
+@ stdcall D3DXCreateKeyframedAnimationSet(str long long long long ptr ptr)
@ stdcall D3DXCreateLine(ptr ptr)
@ stdcall D3DXCreateMatrixStack(long ptr)
@ stdcall D3DXCreateMesh(long long long ptr ptr ptr)
diff --git a/dlls/d3dx9_35/d3dx9_35.spec b/dlls/d3dx9_35/d3dx9_35.spec
index e4e4fc6525..4368914ebe 100644
--- a/dlls/d3dx9_35/d3dx9_35.spec
+++ b/dlls/d3dx9_35/d3dx9_35.spec
@@ -67,7 +67,7 @@
@ stdcall D3DXCreateFontIndirectW(ptr ptr ptr)
@ stdcall D3DXCreateFontW(ptr long long long long long long long long long wstr ptr)
@ stdcall D3DXCreateFragmentLinker(ptr long ptr)
-@ stub D3DXCreateKeyframedAnimationSet(ptr long long long long ptr ptr)
+@ stdcall D3DXCreateKeyframedAnimationSet(str long long long long ptr ptr)
@ stdcall D3DXCreateLine(ptr ptr)
@ stdcall D3DXCreateMatrixStack(long ptr)
@ stdcall D3DXCreateMesh(long long long ptr ptr ptr)
diff --git a/dlls/d3dx9_36/animation.c b/dlls/d3dx9_36/animation.c
index 818bd7ab10..6be2dd6b5a 100644
--- a/dlls/d3dx9_36/animation.c
+++ b/dlls/d3dx9_36/animation.c
@@ -469,3 +469,15 @@ HRESULT WINAPI D3DXCreateAnimationController(UINT max_outputs, UINT max_sets,
return D3D_OK;
}
+
+HRESULT WINAPI D3DXCreateKeyframedAnimationSet(const char *name, double ticks_per_second,
+ D3DXPLAYBACK_TYPE playback_type, UINT animation_count, UINT callback_key_count,
+ const D3DXKEY_CALLBACK *callback_keys, ID3DXKeyframedAnimationSet **animation_set)
+{
+ FIXME("name %s, ticks_per_second %.16e, playback_type %u, animation_count %u, "
+ "callback_key_count %u, callback_keys %p, animation_set %p stub.\n",
+ debugstr_a(name), ticks_per_second, playback_type, animation_count,
+ callback_key_count, callback_keys, animation_set);
+
+ return E_NOTIMPL;
+}
diff --git a/dlls/d3dx9_36/d3dx9_36.spec b/dlls/d3dx9_36/d3dx9_36.spec
index 0d9fdabb44..d347d5bfc4 100644
--- a/dlls/d3dx9_36/d3dx9_36.spec
+++ b/dlls/d3dx9_36/d3dx9_36.spec
@@ -68,7 +68,7 @@
@ stdcall D3DXCreateFontW(ptr long long long long long long long long long wstr ptr)
@ stdcall D3DXCreateFragmentLinker(ptr long ptr)
@ stdcall D3DXCreateFragmentLinkerEx(ptr long long ptr)
-@ stub D3DXCreateKeyframedAnimationSet(ptr long long long long ptr ptr)
+@ stdcall D3DXCreateKeyframedAnimationSet(str long long long long ptr ptr)
@ stdcall D3DXCreateLine(ptr ptr)
@ stdcall D3DXCreateMatrixStack(long ptr)
@ stdcall D3DXCreateMesh(long long long ptr ptr ptr)
diff --git a/dlls/d3dx9_37/d3dx9_37.spec b/dlls/d3dx9_37/d3dx9_37.spec
index 0d9fdabb44..d347d5bfc4 100644
--- a/dlls/d3dx9_37/d3dx9_37.spec
+++ b/dlls/d3dx9_37/d3dx9_37.spec
@@ -68,7 +68,7 @@
@ stdcall D3DXCreateFontW(ptr long long long long long long long long long wstr ptr)
@ stdcall D3DXCreateFragmentLinker(ptr long ptr)
@ stdcall D3DXCreateFragmentLinkerEx(ptr long long ptr)
-@ stub D3DXCreateKeyframedAnimationSet(ptr long long long long ptr ptr)
+@ stdcall D3DXCreateKeyframedAnimationSet(str long long long long ptr ptr)
@ stdcall D3DXCreateLine(ptr ptr)
@ stdcall D3DXCreateMatrixStack(long ptr)
@ stdcall D3DXCreateMesh(long long long ptr ptr ptr)
diff --git a/dlls/d3dx9_38/d3dx9_38.spec b/dlls/d3dx9_38/d3dx9_38.spec
index 0d9fdabb44..d347d5bfc4 100644
--- a/dlls/d3dx9_38/d3dx9_38.spec
+++ b/dlls/d3dx9_38/d3dx9_38.spec
@@ -68,7 +68,7 @@
@ stdcall D3DXCreateFontW(ptr long long long long long long long long long wstr ptr)
@ stdcall D3DXCreateFragmentLinker(ptr long ptr)
@ stdcall D3DXCreateFragmentLinkerEx(ptr long long ptr)
-@ stub D3DXCreateKeyframedAnimationSet(ptr long long long long ptr ptr)
+@ stdcall D3DXCreateKeyframedAnimationSet(str long long long long ptr ptr)
@ stdcall D3DXCreateLine(ptr ptr)
@ stdcall D3DXCreateMatrixStack(long ptr)
@ stdcall D3DXCreateMesh(long long long ptr ptr ptr)
diff --git a/dlls/d3dx9_39/d3dx9_39.spec b/dlls/d3dx9_39/d3dx9_39.spec
index 0d9fdabb44..d347d5bfc4 100644
--- a/dlls/d3dx9_39/d3dx9_39.spec
+++ b/dlls/d3dx9_39/d3dx9_39.spec
@@ -68,7 +68,7 @@
@ stdcall D3DXCreateFontW(ptr long long long long long long long long long wstr ptr)
@ stdcall D3DXCreateFragmentLinker(ptr long ptr)
@ stdcall D3DXCreateFragmentLinkerEx(ptr long long ptr)
-@ stub D3DXCreateKeyframedAnimationSet(ptr long long long long ptr ptr)
+@ stdcall D3DXCreateKeyframedAnimationSet(str long long long long ptr ptr)
@ stdcall D3DXCreateLine(ptr ptr)
@ stdcall D3DXCreateMatrixStack(long ptr)
@ stdcall D3DXCreateMesh(long long long ptr ptr ptr)
diff --git a/dlls/d3dx9_40/d3dx9_40.spec b/dlls/d3dx9_40/d3dx9_40.spec
index 0d9fdabb44..d347d5bfc4 100644
--- a/dlls/d3dx9_40/d3dx9_40.spec
+++ b/dlls/d3dx9_40/d3dx9_40.spec
@@ -68,7 +68,7 @@
@ stdcall D3DXCreateFontW(ptr long long long long long long long long long wstr ptr)
@ stdcall D3DXCreateFragmentLinker(ptr long ptr)
@ stdcall D3DXCreateFragmentLinkerEx(ptr long long ptr)
-@ stub D3DXCreateKeyframedAnimationSet(ptr long long long long ptr ptr)
+@ stdcall D3DXCreateKeyframedAnimationSet(str long long long long ptr ptr)
@ stdcall D3DXCreateLine(ptr ptr)
@ stdcall D3DXCreateMatrixStack(long ptr)
@ stdcall D3DXCreateMesh(long long long ptr ptr ptr)
diff --git a/dlls/d3dx9_41/d3dx9_41.spec b/dlls/d3dx9_41/d3dx9_41.spec
index 0d9fdabb44..d347d5bfc4 100644
--- a/dlls/d3dx9_41/d3dx9_41.spec
+++ b/dlls/d3dx9_41/d3dx9_41.spec
@@ -68,7 +68,7 @@
@ stdcall D3DXCreateFontW(ptr long long long long long long long long long wstr ptr)
@ stdcall D3DXCreateFragmentLinker(ptr long ptr)
@ stdcall D3DXCreateFragmentLinkerEx(ptr long long ptr)
-@ stub D3DXCreateKeyframedAnimationSet(ptr long long long long ptr ptr)
+@ stdcall D3DXCreateKeyframedAnimationSet(str long long long long ptr ptr)
@ stdcall D3DXCreateLine(ptr ptr)
@ stdcall D3DXCreateMatrixStack(long ptr)
@ stdcall D3DXCreateMesh(long long long ptr ptr ptr)
diff --git a/dlls/d3dx9_42/d3dx9_42.spec b/dlls/d3dx9_42/d3dx9_42.spec
index 086d0b5c5d..5b456dde54 100644
--- a/dlls/d3dx9_42/d3dx9_42.spec
+++ b/dlls/d3dx9_42/d3dx9_42.spec
@@ -66,7 +66,7 @@
@ stdcall D3DXCreateFontIndirectA(ptr ptr ptr)
@ stdcall D3DXCreateFontIndirectW(ptr ptr ptr)
@ stdcall D3DXCreateFontW(ptr long long long long long long long long long wstr ptr)
-@ stub D3DXCreateKeyframedAnimationSet(ptr long long long long ptr ptr)
+@ stdcall D3DXCreateKeyframedAnimationSet(str long long long long ptr ptr)
@ stdcall D3DXCreateLine(ptr ptr)
@ stdcall D3DXCreateMatrixStack(long ptr)
@ stdcall D3DXCreateMesh(long long long ptr ptr ptr)
diff --git a/dlls/d3dx9_43/d3dx9_43.spec b/dlls/d3dx9_43/d3dx9_43.spec
index 086d0b5c5d..5b456dde54 100644
--- a/dlls/d3dx9_43/d3dx9_43.spec
+++ b/dlls/d3dx9_43/d3dx9_43.spec
@@ -66,7 +66,7 @@
@ stdcall D3DXCreateFontIndirectA(ptr ptr ptr)
@ stdcall D3DXCreateFontIndirectW(ptr ptr ptr)
@ stdcall D3DXCreateFontW(ptr long long long long long long long long long wstr ptr)
-@ stub D3DXCreateKeyframedAnimationSet(ptr long long long long ptr ptr)
+@ stdcall D3DXCreateKeyframedAnimationSet(str long long long long ptr ptr)
@ stdcall D3DXCreateLine(ptr ptr)
@ stdcall D3DXCreateMatrixStack(long ptr)
@ stdcall D3DXCreateMesh(long long long ptr ptr ptr)
--
2.13.6
Jan. 31, 2018
Re: [PATCH 2/2] winex11.drv, winemac.drv: Don't send WM_CANCELMODE on focus loss.
by Marvin
Hi,
While running your changed tests on Windows, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at
https://testbot.winehq.org/JobDetails.pl?Key=35659
Your paranoid android.
=== build (build) ===
Patch failed to apply
Jan. 31, 2018
Re: [PATCH 1/2] user32: Kill focus before minimizing a window.
by Marvin
Hi,
While running your changed tests on Windows, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at
https://testbot.winehq.org/JobDetails.pl?Key=35658
Your paranoid android.
=== build (build) ===
Patch failed to apply
Jan. 31, 2018
[PATCH 2/2] winex11.drv, winemac.drv: Don't send WM_CANCELMODE on focus loss.
by Zebediah Figura
Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com>
---
This and the previous patch fix a WM-dependent failure. Most window managers
activate another window when one is minimized, including that of native
Windows. The test does in fact account for this, however, Wine currently
activates windows incorrectly, both by sending the WM_CANCELMODE message and
by failing to kill focus before minimizing a window.
This test was succeeding (inside todo_wine) on the testbot, which uses fvwm in
focus-follows-mouse mode, since in that case another window would never be
activated.
dlls/user32/tests/msg.c | 2 +-
dlls/winemac.drv/window.c | 6 +-----
dlls/winex11.drv/event.c | 1 -
3 files changed, 2 insertions(+), 7 deletions(-)
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c
index 082b560..305d503 100644
--- a/dlls/user32/tests/msg.c
+++ b/dlls/user32/tests/msg.c
@@ -5087,7 +5087,7 @@ static void test_messages(void)
ShowWindow(hwnd, SW_MINIMIZE);
flush_events();
- ok_sequence(WmShowMinOverlappedSeq, "ShowWindow(SW_SHOWMINIMIZED):overlapped", TRUE);
+ ok_sequence(WmShowMinOverlappedSeq, "ShowWindow(SW_SHOWMINIMIZED):overlapped", FALSE);
flush_sequence();
if (GetWindowLongW( hwnd, GWL_STYLE ) & WS_MINIMIZE)
diff --git a/dlls/winemac.drv/window.c b/dlls/winemac.drv/window.c
index ff140a1..48b44a6 100644
--- a/dlls/winemac.drv/window.c
+++ b/dlls/winemac.drv/window.c
@@ -2327,11 +2327,7 @@ void macdrv_window_lost_focus(HWND hwnd, const macdrv_event *event)
TRACE("win %p/%p fg %p\n", hwnd, event->window, GetForegroundWindow());
if (hwnd == GetForegroundWindow())
- {
- SendMessageW(hwnd, WM_CANCELMODE, 0, 0);
- if (hwnd == GetForegroundWindow())
- SetForegroundWindow(GetDesktopWindow());
- }
+ SetForegroundWindow(GetDesktopWindow());
}
diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c
index a0bfe05..9bd4e11 100644
--- a/dlls/winex11.drv/event.c
+++ b/dlls/winex11.drv/event.c
@@ -804,7 +804,6 @@ static BOOL X11DRV_FocusIn( HWND hwnd, XEvent *xev )
return;
}
if (hwnd != GetForegroundWindow()) return;
- SendMessageW( hwnd, WM_CANCELMODE, 0, 0 );
/* don't reset the foreground window, if the window which is
getting the focus is a Wine window */
--
2.7.4
Jan. 31, 2018
[PATCH 1/2] user32: Kill focus before minimizing a window.
by Zebediah Figura
Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com>
---
dlls/user32/tests/win.c | 31 ++++++++++++++++++++++++++++++-
dlls/user32/winpos.c | 8 ++++++++
2 files changed, 38 insertions(+), 1 deletion(-)
diff --git a/dlls/user32/tests/win.c b/dlls/user32/tests/win.c
index d95b831..e134d54 100644
--- a/dlls/user32/tests/win.c
+++ b/dlls/user32/tests/win.c
@@ -3113,7 +3113,6 @@ todo_wine
ShowWindow(hwnd, SW_SHOWMINIMIZED);
ok( GetActiveWindow() == hwnd, "parent window %p should be active\n", hwnd);
ok( GetFocus() != child, "Focus should not be on child %p\n", child );
-todo_wine
ok( GetFocus() != hwnd, "Focus should not be on parent %p\n", hwnd );
old_wnd_proc = (WNDPROC)SetWindowLongPtrA(hwnd, GWLP_WNDPROC, (LONG_PTR)set_focus_on_activate_proc);
ShowWindow(hwnd, SW_RESTORE);
@@ -10273,6 +10272,13 @@ static void test_minimize_window(HWND hwndMain)
ShowWindow(hwnd2, SW_RESTORE);
check_active_state(hwnd2, hwnd2, hwnd2);
+ /* try SW_SHOWMINIMIZED */
+ ShowWindow(hwnd2, SW_SHOWMINIMIZED);
+ check_active_state(hwnd2, hwnd2, 0);
+
+ ShowWindow(hwnd2, SW_RESTORE);
+ check_active_state(hwnd2, hwnd2, hwnd2);
+
/* hide a non-active window */
ShowWindow(hwnd, SW_MINIMIZE);
check_active_state(hwnd2, hwnd2, hwnd2);
@@ -10316,6 +10322,11 @@ static void test_minimize_window(HWND hwndMain)
todo_wine
check_active_state(hwnd2, hwnd2, hwnd2);
+ /* with SW_SHOWMINIMIZED */
+ ShowWindow(hwnd3, SW_RESTORE);
+ ShowWindow(hwnd3, SW_SHOWMINIMIZED);
+ check_active_state(hwnd3, hwnd3, 0);
+
/* hide an owner window */
ShowWindow(hwnd, SW_RESTORE);
ShowWindow(hwnd2, SW_RESTORE);
@@ -10325,6 +10336,24 @@ static void test_minimize_window(HWND hwndMain)
check_active_state(hwnd2, hwnd2, hwnd2);
DestroyWindow(hwnd3);
+
+ /* test a child window - focus should be yielded back to the parent */
+ ShowWindow(hwnd, SW_RESTORE);
+ hwnd3 = CreateWindowExA(0, "MainWindowClass", "Child window 3", WS_CHILD|WS_VISIBLE,
+ 100, 100, 200, 200, hwnd, 0, GetModuleHandleA(NULL), NULL);
+ SetFocus(hwnd3);
+ check_active_state(hwnd, hwnd, hwnd3);
+ ShowWindow(hwnd3, SW_MINIMIZE);
+ check_active_state(hwnd, hwnd, hwnd);
+
+ /* with SW_SHOWMINIMIZED */
+ ShowWindow(hwnd3, SW_RESTORE);
+ SetFocus(hwnd3);
+ check_active_state(hwnd, hwnd, hwnd3);
+ ShowWindow(hwnd3, SW_SHOWMINIMIZED);
+ check_active_state(hwnd, hwnd, hwnd);
+
+ DestroyWindow(hwnd3);
DestroyWindow(hwnd2);
DestroyWindow(hwnd);
diff --git a/dlls/user32/winpos.c b/dlls/user32/winpos.c
index 5579de4..f68227a 100644
--- a/dlls/user32/winpos.c
+++ b/dlls/user32/winpos.c
@@ -928,6 +928,14 @@ UINT WINPOS_MinMaximize( HWND hwnd, UINT cmd, LPRECT rect )
if (IsZoomed( hwnd )) win_set_flags( hwnd, WIN_RESTORE_MAX, 0 );
else win_set_flags( hwnd, 0, WIN_RESTORE_MAX );
+ if (GetFocus() == hwnd)
+ {
+ if (GetWindowLongW(hwnd, GWL_STYLE) & WS_CHILD)
+ SetFocus(GetAncestor(hwnd, GA_PARENT));
+ else
+ SetFocus(0);
+ }
+
old_style = WIN_SetStyle( hwnd, WS_MINIMIZE, WS_MAXIMIZE );
wpl.ptMinPosition = WINPOS_GetMinimizedPos( hwnd, wpl.ptMinPosition );
--
2.7.4
Jan. 31, 2018
Re: [PATCH] comctl32/tests: Add test for v6 combobox dropdown size
by Michael Stefaniuc
On 01/31/2018 12:23 AM, Fabian Maurer wrote:
> Also, sorry for the double mail,
>
> but I just noticed that the testbot result shows "OK" in the patches
> list. But why, when the testbot
> (https://testbot.winehq.org/JobDetails.pl?Key=35655) says there's test
> failures?
The patch watcher filters out "known" test failures. Maybe it got
confused there.
bye
michael
Jan. 30, 2018
Re: [PATCH] comctl32/tests: Add test for v6 combobox dropdown size
by Fabian Maurer
Also, sorry for the double mail,
but I just noticed that the testbot result shows "OK" in
the patches list. But why, when the testbot (https://
testbot.winehq.org/JobDetails.pl?Key=35655) says
there's test failures?
Regards,
Fabian Maurer
Jan. 30, 2018
Re: [PATCH] comctl32/tests: Add test for v6 combobox dropdown size
by Fabian Maurer
There seems to be some inconsistency between
windows versions, the test fails for xp and 2003.
Should I just check for windows version and adjust
the tests accordingly?
Regards,
Fabian Maurer
Jan. 30, 2018