mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
Rebase against 00b68720bf32748422e6ccab8629acf04aec9d5a.
[user32-Revert_Popup_Menu] Removed patch to fix a regression causing popup menus stay open (accepted upstream). [user32-WM_CTLCOLORBTN] Removed patch to replicate Windows behavior of WM_SETTEXT handler regarding WM_CTLCOLOR* messages (accepted upstream). [user32-WM_MDICALCCHILDSCROLL] Removed patch to change value of WM_MDICALCCHILDSCROLL to 0x003f (accepted upstream). [user32-WM_NOTIFY] Removed patch to fix handling of WM_NOTIFY messages in PostThreadMessage (accepted upstream).
This commit is contained in:
parent
cc990d9a9b
commit
ed798c278d
@ -51,7 +51,7 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "ab78cffea7ac676a7041c7d6941b61140cfe005c"
|
||||
echo "00b68720bf32748422e6ccab8629acf04aec9d5a"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
@ -332,12 +332,8 @@ patch_enable_all ()
|
||||
enable_user32_Mouse_Message_Hwnd="$1"
|
||||
enable_user32_PNG_Support="$1"
|
||||
enable_user32_Refresh_MDI_Menus="$1"
|
||||
enable_user32_Revert_Popup_Menu="$1"
|
||||
enable_user32_ScrollWindowEx="$1"
|
||||
enable_user32_SetCoalescableTimer="$1"
|
||||
enable_user32_WM_CTLCOLORBTN="$1"
|
||||
enable_user32_WM_MDICALCCHILDSCROLL="$1"
|
||||
enable_user32_WM_NOTIFY="$1"
|
||||
enable_user32_WndProc="$1"
|
||||
enable_user32_lpCreateParams="$1"
|
||||
enable_uxtheme_GTK_Theming="$1"
|
||||
@ -1175,24 +1171,12 @@ patch_enable ()
|
||||
user32-Refresh_MDI_Menus)
|
||||
enable_user32_Refresh_MDI_Menus="$2"
|
||||
;;
|
||||
user32-Revert_Popup_Menu)
|
||||
enable_user32_Revert_Popup_Menu="$2"
|
||||
;;
|
||||
user32-ScrollWindowEx)
|
||||
enable_user32_ScrollWindowEx="$2"
|
||||
;;
|
||||
user32-SetCoalescableTimer)
|
||||
enable_user32_SetCoalescableTimer="$2"
|
||||
;;
|
||||
user32-WM_CTLCOLORBTN)
|
||||
enable_user32_WM_CTLCOLORBTN="$2"
|
||||
;;
|
||||
user32-WM_MDICALCCHILDSCROLL)
|
||||
enable_user32_WM_MDICALCCHILDSCROLL="$2"
|
||||
;;
|
||||
user32-WM_NOTIFY)
|
||||
enable_user32_WM_NOTIFY="$2"
|
||||
;;
|
||||
user32-WndProc)
|
||||
enable_user32_WndProc="$2"
|
||||
;;
|
||||
@ -6852,21 +6836,6 @@ if test "$enable_user32_Refresh_MDI_Menus" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset user32-Revert_Popup_Menu
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#40474] Fix a regression causing popup menus stay open
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/user32/menu.c
|
||||
# |
|
||||
if test "$enable_user32_Revert_Popup_Menu" -eq 1; then
|
||||
patch_apply user32-Revert_Popup_Menu/0001-Revert-user32-Set-capture-earlier-on-popup-menus.patch
|
||||
(
|
||||
echo '+ { "Sebastian Lackner", "Revert \"user32: Set capture earlier on popup menus.\".", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset user32-ScrollWindowEx
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -6897,50 +6866,6 @@ if test "$enable_user32_SetCoalescableTimer" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset user32-WM_CTLCOLORBTN
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#25790] Replicate Windows behavior of WM_SETTEXT handler regarding WM_CTLCOLOR* messages
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/user32/button.c, dlls/user32/tests/msg.c
|
||||
# |
|
||||
if test "$enable_user32_WM_CTLCOLORBTN" -eq 1; then
|
||||
patch_apply user32-WM_CTLCOLORBTN/0001-user32-Replicate-Windows-behavior-of-WM_SETTEXT-hand.patch
|
||||
patch_apply user32-WM_CTLCOLORBTN/0002-user32-tests-Add-tests-for-button-WM_CTLCOLOR-messag.patch
|
||||
(
|
||||
echo '+ { "Alexander Law", "user32: Replicate Windows behavior of WM_SETTEXT handler regarding WM_CTLCOLOR*.", 1 },';
|
||||
echo '+ { "Sebastian Lackner", "user32/tests: Add tests for button WM_CTLCOLOR* messages.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset user32-WM_MDICALCCHILDSCROLL
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/user32/mdi.c, dlls/user32/tests/win.c
|
||||
# |
|
||||
if test "$enable_user32_WM_MDICALCCHILDSCROLL" -eq 1; then
|
||||
patch_apply user32-WM_MDICALCCHILDSCROLL/0001-user32-Change-value-for-WM_MDICALCCHILDSCROLL-to-0x0.patch
|
||||
(
|
||||
echo '+ { "Dmitry Timoshkov", "user32: Change value for WM_MDICALCCHILDSCROLL to 0x003f.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset user32-WM_NOTIFY
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#40244] Fix handling of WM_NOTIFY messages in PostThreadMessage
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/user32/message.c, dlls/user32/tests/msg.c
|
||||
# |
|
||||
if test "$enable_user32_WM_NOTIFY" -eq 1; then
|
||||
patch_apply user32-WM_NOTIFY/0001-user32-Allow-to-send-post-intra-process-WM_NOTIFY-me.patch
|
||||
(
|
||||
echo '+ { "Sebastian Lackner", "user32: Do not block sending/posting WM_NOTIFY messages.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset user32-WndProc
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
|
@ -1,58 +0,0 @@
|
||||
From 2a11dd26b5c7b20fb3c8d30c0948a0eea60e9237 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Tue, 19 Apr 2016 15:41:46 +0200
|
||||
Subject: Revert "user32: Set capture earlier on popup menus."
|
||||
|
||||
This reverts commit a9bff001a1e2c919b3f6e68d642abb8da957a2bf.
|
||||
---
|
||||
dlls/user32/menu.c | 13 ++++---------
|
||||
1 file changed, 4 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/dlls/user32/menu.c b/dlls/user32/menu.c
|
||||
index 7a49ac0..e42d8f7 100644
|
||||
--- a/dlls/user32/menu.c
|
||||
+++ b/dlls/user32/menu.c
|
||||
@@ -3003,6 +3003,7 @@ static BOOL MENU_TrackMenu( HMENU hmenu, UINT wFlags, INT x, INT y,
|
||||
INT executedMenuId = -1;
|
||||
MTRACKER mt;
|
||||
BOOL enterIdleSent = FALSE;
|
||||
+ HWND capture_win;
|
||||
|
||||
mt.trackFlags = 0;
|
||||
mt.hCurrentMenu = hmenu;
|
||||
@@ -3030,8 +3031,9 @@ static BOOL MENU_TrackMenu( HMENU hmenu, UINT wFlags, INT x, INT y,
|
||||
|
||||
if (wFlags & TF_ENDMENU) fEndMenu = TRUE;
|
||||
|
||||
- if (!(wFlags & TPM_POPUPMENU))
|
||||
- set_capture_window( mt.hOwnerWnd, GUI_INMENUMODE, NULL );
|
||||
+ /* owner may not be visible when tracking a popup, so use the menu itself */
|
||||
+ capture_win = (wFlags & TPM_POPUPMENU) ? menu->hWnd : mt.hOwnerWnd;
|
||||
+ set_capture_window( capture_win, GUI_INMENUMODE, NULL );
|
||||
|
||||
if ((wFlags & TPM_POPUPMENU) && menu->nItems == 0)
|
||||
return FALSE;
|
||||
@@ -3327,10 +3329,6 @@ static BOOL MENU_InitTracking(HWND hWnd, HMENU hMenu, BOOL bPopup, UINT wFlags)
|
||||
|
||||
SendMessageW( hWnd, WM_SETCURSOR, (WPARAM)hWnd, HTCAPTION );
|
||||
|
||||
- if (bPopup)
|
||||
- /* owner may not be visible when tracking a popup, so use the menu itself */
|
||||
- set_capture_window( menu->hWnd, GUI_INMENUMODE, NULL );
|
||||
-
|
||||
if (!(wFlags & TPM_NONOTIFY))
|
||||
{
|
||||
SendMessageW( hWnd, WM_INITMENU, (WPARAM)hMenu, 0 );
|
||||
@@ -3484,9 +3482,6 @@ BOOL WINAPI TrackPopupMenuEx( HMENU hMenu, UINT wFlags, INT x, INT y,
|
||||
if (MENU_ShowPopup( hWnd, hMenu, 0, wFlags, x, y, 0, 0 ))
|
||||
ret = MENU_TrackMenu( hMenu, wFlags | TPM_POPUPMENU, 0, 0, hWnd,
|
||||
lpTpm ? &lpTpm->rcExclude : NULL );
|
||||
-
|
||||
- set_capture_window( 0, GUI_INMENUMODE, NULL );
|
||||
-
|
||||
MENU_ExitTracking(hWnd, TRUE);
|
||||
|
||||
if (menu->hWnd)
|
||||
--
|
||||
2.7.1
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: [40474] Fix a regression causing popup menus stay open
|
@ -1,73 +0,0 @@
|
||||
From e48498bd46044ebfad0ae16e8f6dd08976b49b14 Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Law <exclusion@gmail.com>
|
||||
Date: Mon, 31 Jan 2011 22:59:13 +0300
|
||||
Subject: user32: Replicate Windows behavior of WM_SETTEXT handler regarding
|
||||
WM_CTLCOLOR*.
|
||||
|
||||
---
|
||||
dlls/user32/button.c | 49 +++++++++++++++++++++++++++++--------------------
|
||||
1 file changed, 29 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/dlls/user32/button.c b/dlls/user32/button.c
|
||||
index 9c52147..5b52510 100644
|
||||
--- a/dlls/user32/button.c
|
||||
+++ b/dlls/user32/button.c
|
||||
@@ -385,26 +385,35 @@ LRESULT ButtonWndProc_common(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam,
|
||||
case WM_SETTEXT:
|
||||
{
|
||||
/* Clear an old text here as Windows does */
|
||||
- HDC hdc = GetDC(hWnd);
|
||||
- HBRUSH hbrush;
|
||||
- RECT client, rc;
|
||||
- HWND parent = GetParent(hWnd);
|
||||
-
|
||||
- if (!parent) parent = hWnd;
|
||||
- hbrush = (HBRUSH)SendMessageW(parent, WM_CTLCOLORSTATIC,
|
||||
- (WPARAM)hdc, (LPARAM)hWnd);
|
||||
- if (!hbrush) /* did the app forget to call DefWindowProc ? */
|
||||
- hbrush = (HBRUSH)DefWindowProcW(parent, WM_CTLCOLORSTATIC,
|
||||
- (WPARAM)hdc, (LPARAM)hWnd);
|
||||
-
|
||||
- GetClientRect(hWnd, &client);
|
||||
- rc = client;
|
||||
- BUTTON_CalcLabelRect(hWnd, hdc, &rc);
|
||||
- /* Clip by client rect bounds */
|
||||
- if (rc.right > client.right) rc.right = client.right;
|
||||
- if (rc.bottom > client.bottom) rc.bottom = client.bottom;
|
||||
- FillRect(hdc, &rc, hbrush);
|
||||
- ReleaseDC(hWnd, hdc);
|
||||
+ if (IsWindowVisible(hWnd))
|
||||
+ {
|
||||
+ HDC hdc = GetDC(hWnd);
|
||||
+ HBRUSH hbrush;
|
||||
+ RECT client, rc;
|
||||
+ HWND parent = GetParent(hWnd);
|
||||
+ UINT message = (btn_type == BS_PUSHBUTTON ||
|
||||
+ btn_type == BS_DEFPUSHBUTTON ||
|
||||
+ btn_type == BS_PUSHLIKE ||
|
||||
+ btn_type == BS_USERBUTTON ||
|
||||
+ btn_type == BS_OWNERDRAW) ?
|
||||
+ WM_CTLCOLORBTN : WM_CTLCOLORSTATIC;
|
||||
+
|
||||
+ if (!parent) parent = hWnd;
|
||||
+ hbrush = (HBRUSH)SendMessageW(parent, message,
|
||||
+ (WPARAM)hdc, (LPARAM)hWnd);
|
||||
+ if (!hbrush) /* did the app forget to call DefWindowProc ? */
|
||||
+ hbrush = (HBRUSH)DefWindowProcW(parent, message,
|
||||
+ (WPARAM)hdc, (LPARAM)hWnd);
|
||||
+
|
||||
+ GetClientRect(hWnd, &client);
|
||||
+ rc = client;
|
||||
+ BUTTON_CalcLabelRect(hWnd, hdc, &rc);
|
||||
+ /* Clip by client rect bounds */
|
||||
+ if (rc.right > client.right) rc.right = client.right;
|
||||
+ if (rc.bottom > client.bottom) rc.bottom = client.bottom;
|
||||
+ FillRect(hdc, &rc, hbrush);
|
||||
+ ReleaseDC(hWnd, hdc);
|
||||
+ }
|
||||
|
||||
if (unicode) DefWindowProcW( hWnd, WM_SETTEXT, wParam, lParam );
|
||||
else DefWindowProcA( hWnd, WM_SETTEXT, wParam, lParam );
|
||||
--
|
||||
2.7.1
|
||||
|
@ -1,151 +0,0 @@
|
||||
From aa33498b984e6505af86206a61d14b51c3531644 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sun, 28 Feb 2016 07:55:21 +0100
|
||||
Subject: user32/tests: Add tests for button WM_CTLCOLOR* messages.
|
||||
|
||||
---
|
||||
dlls/user32/tests/msg.c | 80 ++++++++++++++++++++++++++++++++++++++++++-------
|
||||
1 file changed, 69 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c
|
||||
index b2a005a..6794d92 100644
|
||||
--- a/dlls/user32/tests/msg.c
|
||||
+++ b/dlls/user32/tests/msg.c
|
||||
@@ -5483,6 +5483,35 @@ static const struct message WmSetFontStaticSeq[] =
|
||||
{ WM_CTLCOLORSTATIC, sent|defwinproc },
|
||||
{ 0 }
|
||||
};
|
||||
+static const struct message WmSetTextButtonSeq[] =
|
||||
+{
|
||||
+ { WM_SETTEXT, sent },
|
||||
+ { WM_CTLCOLORBTN, sent|parent },
|
||||
+ { WM_CTLCOLORBTN, sent|parent },
|
||||
+ { WM_COMMAND, sent|parent|optional },
|
||||
+ { WM_DRAWITEM, sent|parent|optional },
|
||||
+ { 0 }
|
||||
+};
|
||||
+static const struct message WmSetTextStaticSeq[] =
|
||||
+{
|
||||
+ { WM_SETTEXT, sent },
|
||||
+ { WM_CTLCOLORSTATIC, sent|parent },
|
||||
+ { WM_CTLCOLORSTATIC, sent|parent },
|
||||
+ { 0 }
|
||||
+};
|
||||
+static const struct message WmSetTextGroupSeq[] =
|
||||
+{
|
||||
+ { WM_SETTEXT, sent },
|
||||
+ { WM_CTLCOLORSTATIC, sent|parent },
|
||||
+ { WM_CTLCOLORSTATIC, sent|parent|optional }, /* FIXME: Missing in Wine */
|
||||
+ { WM_CTLCOLORSTATIC, sent|parent|optional }, /* FIXME: Missing in Wine */
|
||||
+ { 0 }
|
||||
+};
|
||||
+static const struct message WmSetTextInvisibleSeq[] =
|
||||
+{
|
||||
+ { WM_SETTEXT, sent },
|
||||
+ { 0 }
|
||||
+};
|
||||
static const struct message WmSetStyleButtonSeq[] =
|
||||
{
|
||||
{ BM_SETSTYLE, sent },
|
||||
@@ -5652,51 +5681,63 @@ static void test_button_messages(void)
|
||||
const struct message *lbuttondown;
|
||||
const struct message *lbuttonup;
|
||||
const struct message *setfont;
|
||||
+ const struct message *settext;
|
||||
} button[] = {
|
||||
{ BS_PUSHBUTTON, DLGC_BUTTON | DLGC_UNDEFPUSHBUTTON,
|
||||
WmSetFocusButtonSeq, WmKillFocusButtonSeq, WmSetStyleButtonSeq,
|
||||
WmSetStateButtonSeq, WmSetStateButtonSeq, WmSetCheckIgnoredSeq,
|
||||
- WmLButtonDownSeq, WmLButtonUpSeq, WmSetFontButtonSeq },
|
||||
+ WmLButtonDownSeq, WmLButtonUpSeq, WmSetFontButtonSeq,
|
||||
+ WmSetTextButtonSeq },
|
||||
{ BS_DEFPUSHBUTTON, DLGC_BUTTON | DLGC_DEFPUSHBUTTON,
|
||||
WmSetFocusButtonSeq, WmKillFocusButtonSeq, WmSetStyleButtonSeq,
|
||||
WmSetStateButtonSeq, WmSetStateButtonSeq, WmSetCheckIgnoredSeq,
|
||||
- WmLButtonDownSeq, WmLButtonUpSeq, WmSetFontButtonSeq },
|
||||
+ WmLButtonDownSeq, WmLButtonUpSeq, WmSetFontButtonSeq,
|
||||
+ WmSetTextButtonSeq },
|
||||
{ BS_CHECKBOX, DLGC_BUTTON,
|
||||
WmSetFocusStaticSeq, WmKillFocusStaticSeq, WmSetStyleStaticSeq,
|
||||
WmSetStateStaticSeq, WmSetStateStaticSeq, WmSetCheckStaticSeq,
|
||||
- WmLButtonDownStaticSeq, WmLButtonUpStaticSeq, WmSetFontStaticSeq },
|
||||
+ WmLButtonDownStaticSeq, WmLButtonUpStaticSeq, WmSetFontStaticSeq,
|
||||
+ WmSetTextStaticSeq },
|
||||
{ BS_AUTOCHECKBOX, DLGC_BUTTON,
|
||||
WmSetFocusStaticSeq, WmKillFocusStaticSeq, WmSetStyleStaticSeq,
|
||||
WmSetStateStaticSeq, WmSetStateStaticSeq, WmSetCheckStaticSeq,
|
||||
- WmLButtonDownStaticSeq, WmLButtonUpAutoSeq, WmSetFontStaticSeq },
|
||||
+ WmLButtonDownStaticSeq, WmLButtonUpAutoSeq, WmSetFontStaticSeq,
|
||||
+ WmSetTextStaticSeq },
|
||||
{ BS_RADIOBUTTON, DLGC_BUTTON | DLGC_RADIOBUTTON,
|
||||
WmSetFocusStaticSeq, WmKillFocusStaticSeq, WmSetStyleStaticSeq,
|
||||
WmSetStateStaticSeq, WmSetStateStaticSeq, WmSetCheckStaticSeq,
|
||||
- WmLButtonDownStaticSeq, WmLButtonUpStaticSeq, WmSetFontStaticSeq },
|
||||
+ WmLButtonDownStaticSeq, WmLButtonUpStaticSeq, WmSetFontStaticSeq,
|
||||
+ WmSetTextStaticSeq },
|
||||
{ BS_3STATE, DLGC_BUTTON,
|
||||
WmSetFocusStaticSeq, WmKillFocusStaticSeq, WmSetStyleStaticSeq,
|
||||
WmSetStateStaticSeq, WmSetStateStaticSeq, WmSetCheckStaticSeq,
|
||||
- WmLButtonDownStaticSeq, WmLButtonUpStaticSeq, WmSetFontStaticSeq },
|
||||
+ WmLButtonDownStaticSeq, WmLButtonUpStaticSeq, WmSetFontStaticSeq,
|
||||
+ WmSetTextStaticSeq },
|
||||
{ BS_AUTO3STATE, DLGC_BUTTON,
|
||||
WmSetFocusStaticSeq, WmKillFocusStaticSeq, WmSetStyleStaticSeq,
|
||||
WmSetStateStaticSeq, WmSetStateStaticSeq, WmSetCheckStaticSeq,
|
||||
- WmLButtonDownStaticSeq, WmLButtonUpAutoSeq, WmSetFontStaticSeq },
|
||||
+ WmLButtonDownStaticSeq, WmLButtonUpAutoSeq, WmSetFontStaticSeq,
|
||||
+ WmSetTextStaticSeq },
|
||||
{ BS_GROUPBOX, DLGC_STATIC,
|
||||
WmSetFocusStaticSeq, WmKillFocusStaticSeq, WmSetStyleStaticSeq,
|
||||
WmSetStateStaticSeq, WmSetStateStaticSeq, WmSetCheckIgnoredSeq,
|
||||
- WmLButtonDownStaticSeq, WmLButtonUpStaticSeq, WmSetFontStaticSeq },
|
||||
+ WmLButtonDownStaticSeq, WmLButtonUpStaticSeq, WmSetFontStaticSeq,
|
||||
+ WmSetTextGroupSeq },
|
||||
{ BS_USERBUTTON, DLGC_BUTTON | DLGC_UNDEFPUSHBUTTON,
|
||||
WmSetFocusButtonSeq, WmKillFocusButtonSeq, WmSetStyleUserSeq,
|
||||
WmSetStateUserSeq, WmClearStateButtonSeq, WmSetCheckIgnoredSeq,
|
||||
- WmLButtonDownSeq, WmLButtonUpSeq, WmSetFontButtonSeq },
|
||||
+ WmLButtonDownSeq, WmLButtonUpSeq, WmSetFontButtonSeq,
|
||||
+ WmSetTextButtonSeq },
|
||||
{ BS_AUTORADIOBUTTON, DLGC_BUTTON | DLGC_RADIOBUTTON,
|
||||
WmSetFocusStaticSeq, WmKillFocusStaticSeq, WmSetStyleStaticSeq,
|
||||
WmSetStateStaticSeq, WmSetStateStaticSeq, WmSetCheckStaticSeq,
|
||||
- NULL /* avoid infinite loop */, WmLButtonUpBrokenSeq, WmSetFontStaticSeq },
|
||||
+ NULL /* avoid infinite loop */, WmLButtonUpBrokenSeq, WmSetFontStaticSeq,
|
||||
+ WmSetTextStaticSeq },
|
||||
{ BS_OWNERDRAW, DLGC_BUTTON,
|
||||
WmSetFocusOwnerdrawSeq, WmKillFocusOwnerdrawSeq, WmSetStyleOwnerdrawSeq,
|
||||
WmSetStateOwnerdrawSeq, WmClearStateOwnerdrawSeq, WmSetCheckIgnoredSeq,
|
||||
- WmLButtonDownSeq, WmLButtonUpSeq, WmSetFontButtonSeq },
|
||||
+ WmLButtonDownSeq, WmLButtonUpSeq, WmSetFontButtonSeq,
|
||||
+ WmSetTextButtonSeq },
|
||||
};
|
||||
unsigned int i;
|
||||
HWND hwnd, parent;
|
||||
@@ -5830,6 +5871,23 @@ static void test_button_messages(void)
|
||||
while (PeekMessageA(&msg, 0, 0, 0, PM_REMOVE)) DispatchMessageA(&msg);
|
||||
ok_sequence(button[i].setcheck, "BM_SETCHECK on a button", FALSE);
|
||||
|
||||
+ flush_sequence();
|
||||
+
|
||||
+ SendMessageA(hwnd, WM_SETTEXT, 0, (LPARAM)"Text 1");
|
||||
+ sprintf(desc, "button[%i]: WM_SETTEXT on a visible button", i);
|
||||
+ ok_sequence(button[i].settext, desc, FALSE);
|
||||
+
|
||||
+ ShowWindow(parent, SW_HIDE);
|
||||
+ flush_events();
|
||||
+ flush_sequence();
|
||||
+
|
||||
+ SendMessageA(hwnd, WM_SETTEXT, 0, (LPARAM)"Text 2");
|
||||
+ sprintf(desc, "button[%i]: WM_SETTEXT on an invisible button", i);
|
||||
+ ok_sequence(WmSetTextInvisibleSeq, desc, FALSE);
|
||||
+
|
||||
+ ShowWindow(parent, SW_SHOW);
|
||||
+ flush_events();
|
||||
+
|
||||
state = SendMessageA(hwnd, BM_GETCHECK, 0, 0);
|
||||
if (button[i].style == BS_PUSHBUTTON ||
|
||||
button[i].style == BS_DEFPUSHBUTTON ||
|
||||
--
|
||||
2.7.1
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: [25790] Replicate Windows behavior of WM_SETTEXT handler regarding WM_CTLCOLOR* messages
|
@ -1,45 +0,0 @@
|
||||
From 3a234761ed79e75dfb9d9ae68812ef11ea3dcecd Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Fri, 20 Nov 2015 16:38:22 +0800
|
||||
Subject: user32: Change value for WM_MDICALCCHILDSCROLL to 0x003f.
|
||||
|
||||
This appears to be what Windows uses.
|
||||
|
||||
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
---
|
||||
dlls/user32/mdi.c | 2 +-
|
||||
dlls/user32/tests/win.c | 2 --
|
||||
2 files changed, 1 insertion(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/user32/mdi.c b/dlls/user32/mdi.c
|
||||
index b5a0473..46a68ab8 100644
|
||||
--- a/dlls/user32/mdi.c
|
||||
+++ b/dlls/user32/mdi.c
|
||||
@@ -103,7 +103,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(mdi);
|
||||
|
||||
#define MDI_MAXTITLELENGTH 0xa1
|
||||
|
||||
-#define WM_MDICALCCHILDSCROLL 0x10ac /* this is exactly what Windows uses */
|
||||
+#define WM_MDICALCCHILDSCROLL 0x003f /* this is exactly what Windows uses */
|
||||
|
||||
/* "More Windows..." definitions */
|
||||
#define MDI_MOREWINDOWSLIMIT 9 /* after this number of windows, a "More Windows..."
|
||||
diff --git a/dlls/user32/tests/win.c b/dlls/user32/tests/win.c
|
||||
index fc6505f..9901789 100644
|
||||
--- a/dlls/user32/tests/win.c
|
||||
+++ b/dlls/user32/tests/win.c
|
||||
@@ -2115,11 +2115,9 @@ static void test_mdi(void)
|
||||
gotit = TRUE;
|
||||
}
|
||||
else
|
||||
-todo_wine
|
||||
ok(msg.hwnd != mdi_client, "message %04x should not be posted to mdiclient\n", msg.message);
|
||||
DispatchMessageA(&msg);
|
||||
}
|
||||
-todo_wine
|
||||
ok(gotit, "message 0x003f should appear after SetWindowPos\n");
|
||||
|
||||
si.cbSize = sizeof(si);
|
||||
--
|
||||
2.6.2
|
||||
|
@ -1,76 +0,0 @@
|
||||
From 5fa145bd58a20534e11e746a4bcdb646f13e7779 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Mon, 7 Mar 2016 08:31:26 +0100
|
||||
Subject: user32: Do not block sending/posting WM_NOTIFY messages.
|
||||
|
||||
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
|
||||
---
|
||||
dlls/user32/message.c | 3 +--
|
||||
dlls/user32/tests/msg.c | 30 ++++++++++++++++++++++++++++++
|
||||
2 files changed, 31 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/user32/message.c b/dlls/user32/message.c
|
||||
index 9e0ce05..8c3a115 100644
|
||||
--- a/dlls/user32/message.c
|
||||
+++ b/dlls/user32/message.c
|
||||
@@ -310,8 +310,7 @@ static const unsigned int message_pointer_flags[] =
|
||||
SET(WM_GETMINMAXINFO) | SET(WM_DRAWITEM) | SET(WM_MEASUREITEM) | SET(WM_DELETEITEM) |
|
||||
SET(WM_COMPAREITEM),
|
||||
/* 0x40 - 0x5f */
|
||||
- SET(WM_WINDOWPOSCHANGING) | SET(WM_WINDOWPOSCHANGED) | SET(WM_COPYDATA) |
|
||||
- SET(WM_NOTIFY) | SET(WM_HELP),
|
||||
+ SET(WM_WINDOWPOSCHANGING) | SET(WM_WINDOWPOSCHANGED) | SET(WM_COPYDATA) | SET(WM_HELP),
|
||||
/* 0x60 - 0x7f */
|
||||
SET(WM_STYLECHANGING) | SET(WM_STYLECHANGED),
|
||||
/* 0x80 - 0x9f */
|
||||
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c
|
||||
index 47d754f..72d6fca 100644
|
||||
--- a/dlls/user32/tests/msg.c
|
||||
+++ b/dlls/user32/tests/msg.c
|
||||
@@ -11188,6 +11188,35 @@ static void test_quit_message(void)
|
||||
ok_sequence(WmStopQuitSeq, "WmStopQuitSeq", FALSE);
|
||||
}
|
||||
|
||||
+static void test_notify_message(void)
|
||||
+{
|
||||
+ HWND hwnd;
|
||||
+ BOOL ret;
|
||||
+
|
||||
+ hwnd = CreateWindowExA(0, "TestWindowClass", NULL, WS_OVERLAPPEDWINDOW,
|
||||
+ CW_USEDEFAULT, CW_USEDEFAULT, 300, 300, 0, NULL, NULL, 0);
|
||||
+ ok(hwnd != 0, "Failed to create window\n");
|
||||
+
|
||||
+ ret = SendNotifyMessageA(hwnd, WM_NOTIFY, 0x1234, 0xdeadbeef);
|
||||
+ ok(ret == TRUE, "SendNotifyMessageA failed with error %u\n", GetLastError());
|
||||
+ ret = SendNotifyMessageW(hwnd, WM_NOTIFY, 0x1234, 0xdeadbeef);
|
||||
+ ok(ret == TRUE, "SendNotifyMessageW failed with error %u\n", GetLastError());
|
||||
+ ret = SendMessageCallbackA(hwnd, WM_NOTIFY, 0x1234, 0xdeadbeef, NULL, 0);
|
||||
+ ok(ret == TRUE, "SendMessageCallbackA failed with error %u\n", GetLastError());
|
||||
+ ret = SendMessageCallbackW(hwnd, WM_NOTIFY, 0x1234, 0xdeadbeef, NULL, 0);
|
||||
+ ok(ret == TRUE, "SendMessageCallbackW failed with error %u\n", GetLastError());
|
||||
+ ret = PostMessageA(hwnd, WM_NOTIFY, 0x1234, 0xdeadbeef);
|
||||
+ ok(ret == TRUE, "PostMessageA failed with error %u\n", GetLastError());
|
||||
+ ret = PostMessageW(hwnd, WM_NOTIFY, 0x1234, 0xdeadbeef);
|
||||
+ ok(ret == TRUE, "PostMessageW failed with error %u\n", GetLastError());
|
||||
+ ret = PostThreadMessageA(GetCurrentThreadId(), WM_NOTIFY, 0x1234, 0xdeadbeef);
|
||||
+ ok(ret == TRUE, "PostThreadMessageA failed with error %u\n", GetLastError());
|
||||
+ ret = PostThreadMessageW(GetCurrentThreadId(), WM_NOTIFY, 0x1234, 0xdeadbeef);
|
||||
+ ok(ret == TRUE, "PostThreadMessageW failed with error %u\n", GetLastError());
|
||||
+
|
||||
+ DestroyWindow(hwnd);
|
||||
+}
|
||||
+
|
||||
static const struct message WmMouseHoverSeq[] = {
|
||||
{ WM_MOUSEACTIVATE, sent|optional }, /* we can get those when moving the mouse in focus-follow-mouse mode under X11 */
|
||||
{ WM_MOUSEACTIVATE, sent|optional },
|
||||
@@ -15675,6 +15704,7 @@ START_TEST(msg)
|
||||
test_SendMessageTimeout();
|
||||
test_edit_messages();
|
||||
test_quit_message();
|
||||
+ test_notify_message();
|
||||
test_SetActiveWindow();
|
||||
|
||||
if (!pTrackMouseEvent)
|
||||
--
|
||||
2.7.1
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: [40244] Fix handling of WM_NOTIFY messages in PostThreadMessage
|
Loading…
Reference in New Issue
Block a user