Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
371662fa
Commit
371662fa
authored
Sep 08, 2004
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed some message sequences to succeed on XP.
Added some tests for showing/hiding a child window with an invisible parent.
parent
1011b5e2
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
76 additions
and
1 deletion
+76
-1
msg.c
dlls/user/tests/msg.c
+76
-1
No files found.
dlls/user/tests/msg.c
View file @
371662fa
...
@@ -95,6 +95,7 @@ static const struct message WmSWP_ShowOverlappedSeq[] = {
...
@@ -95,6 +95,7 @@ static const struct message WmSWP_ShowOverlappedSeq[] = {
{
WM_ACTIVATE
,
sent
|
wparam
,
1
},
{
WM_ACTIVATE
,
sent
|
wparam
,
1
},
{
HCBT_SETFOCUS
,
hook
},
{
HCBT_SETFOCUS
,
hook
},
{
WM_IME_SETCONTEXT
,
sent
|
wparam
|
defwinproc
|
optional
,
1
},
{
WM_IME_SETCONTEXT
,
sent
|
wparam
|
defwinproc
|
optional
,
1
},
{
WM_IME_NOTIFY
,
sent
|
defwinproc
|
optional
},
{
WM_SETFOCUS
,
sent
|
wparam
|
defwinproc
,
0
},
{
WM_SETFOCUS
,
sent
|
wparam
|
defwinproc
,
0
},
{
WM_NCPAINT
,
sent
|
wparam
|
optional
,
1
},
{
WM_NCPAINT
,
sent
|
wparam
|
optional
,
1
},
{
WM_GETTEXT
,
sent
|
defwinproc
|
optional
},
{
WM_GETTEXT
,
sent
|
defwinproc
|
optional
},
...
@@ -130,6 +131,7 @@ static const struct message WmShowOverlappedSeq[] = {
...
@@ -130,6 +131,7 @@ static const struct message WmShowOverlappedSeq[] = {
{
WM_ACTIVATE
,
sent
|
wparam
,
1
},
{
WM_ACTIVATE
,
sent
|
wparam
,
1
},
{
HCBT_SETFOCUS
,
hook
},
{
HCBT_SETFOCUS
,
hook
},
{
WM_IME_SETCONTEXT
,
sent
|
wparam
|
defwinproc
|
optional
,
1
},
{
WM_IME_SETCONTEXT
,
sent
|
wparam
|
defwinproc
|
optional
,
1
},
{
WM_IME_NOTIFY
,
sent
|
defwinproc
|
optional
},
{
WM_SETFOCUS
,
sent
|
wparam
|
defwinproc
,
0
},
{
WM_SETFOCUS
,
sent
|
wparam
|
defwinproc
,
0
},
{
WM_NCPAINT
,
sent
|
wparam
|
optional
,
1
},
{
WM_NCPAINT
,
sent
|
wparam
|
optional
,
1
},
{
WM_GETTEXT
,
sent
|
defwinproc
|
optional
},
{
WM_GETTEXT
,
sent
|
defwinproc
|
optional
},
...
@@ -159,6 +161,7 @@ static const struct message WmHideOverlappedSeq[] = {
...
@@ -159,6 +161,7 @@ static const struct message WmHideOverlappedSeq[] = {
{
WM_ACTIVATEAPP
,
sent
|
wparam
,
0
},
{
WM_ACTIVATEAPP
,
sent
|
wparam
,
0
},
{
WM_KILLFOCUS
,
sent
|
wparam
,
0
},
{
WM_KILLFOCUS
,
sent
|
wparam
,
0
},
{
WM_IME_SETCONTEXT
,
sent
|
wparam
|
optional
,
0
},
{
WM_IME_SETCONTEXT
,
sent
|
wparam
|
optional
,
0
},
{
WM_IME_NOTIFY
,
sent
|
optional
|
defwinproc
},
{
0
}
{
0
}
};
};
/* ShowWindow(SW_HIDE) for an invisible overlapped window */
/* ShowWindow(SW_HIDE) for an invisible overlapped window */
...
@@ -175,6 +178,7 @@ static const struct message WmDestroyOverlappedSeq[] = {
...
@@ -175,6 +178,7 @@ static const struct message WmDestroyOverlappedSeq[] = {
{
WM_ACTIVATEAPP
,
sent
|
wparam
,
0
},
{
WM_ACTIVATEAPP
,
sent
|
wparam
,
0
},
{
WM_KILLFOCUS
,
sent
|
wparam
,
0
},
{
WM_KILLFOCUS
,
sent
|
wparam
,
0
},
{
WM_IME_SETCONTEXT
,
sent
|
wparam
|
optional
,
0
},
{
WM_IME_SETCONTEXT
,
sent
|
wparam
|
optional
,
0
},
{
WM_IME_NOTIFY
,
sent
|
optional
|
defwinproc
},
{
WM_DESTROY
,
sent
},
{
WM_DESTROY
,
sent
},
{
WM_NCDESTROY
,
sent
},
{
WM_NCDESTROY
,
sent
},
{
0
}
{
0
}
...
@@ -224,6 +228,7 @@ static const struct message WmShowVisiblePopupSeq_3[] = {
...
@@ -224,6 +228,7 @@ static const struct message WmShowVisiblePopupSeq_3[] = {
{
WM_KILLFOCUS
,
sent
|
parent
},
{
WM_KILLFOCUS
,
sent
|
parent
},
{
WM_IME_SETCONTEXT
,
sent
|
parent
|
wparam
|
optional
,
0
},
{
WM_IME_SETCONTEXT
,
sent
|
parent
|
wparam
|
optional
,
0
},
{
WM_IME_SETCONTEXT
,
sent
|
wparam
|
defwinproc
|
optional
,
1
},
{
WM_IME_SETCONTEXT
,
sent
|
wparam
|
defwinproc
|
optional
,
1
},
{
WM_IME_NOTIFY
,
sent
|
defwinproc
|
optional
},
{
WM_SETFOCUS
,
sent
|
defwinproc
},
{
WM_SETFOCUS
,
sent
|
defwinproc
},
{
0
}
{
0
}
};
};
...
@@ -297,6 +302,28 @@ static const struct message WmShowChildSeq_3[] = {
...
@@ -297,6 +302,28 @@ static const struct message WmShowChildSeq_3[] = {
{
WM_WINDOWPOSCHANGED
,
sent
|
wparam
,
0
},
{
WM_WINDOWPOSCHANGED
,
sent
|
wparam
,
0
},
{
0
}
{
0
}
};
};
/* ShowWindow(SW_SHOW) for child with invisible parent */
static
const
struct
message
WmShowChildInvisibleParentSeq
[]
=
{
{
WM_SHOWWINDOW
,
sent
|
wparam
,
1
},
{
0
}
};
/* ShowWindow(SW_HIDE) for child with invisible parent */
static
const
struct
message
WmHideChildInvisibleParentSeq
[]
=
{
{
WM_SHOWWINDOW
,
sent
|
wparam
,
0
},
{
0
}
};
/* SetWindowPos(SWP_SHOWWINDOW) for child with invisible parent */
static
const
struct
message
WmShowChildInvisibleParentSeq_2
[]
=
{
{
WM_WINDOWPOSCHANGING
,
sent
|
wparam
,
0
},
{
WM_WINDOWPOSCHANGED
,
sent
|
wparam
,
0
},
{
0
}
};
/* SetWindowPos(SWP_HIDEWINDOW) for child with invisible parent */
static
const
struct
message
WmHideChildInvisibleParentSeq_2
[]
=
{
{
WM_WINDOWPOSCHANGING
,
sent
|
wparam
,
0
},
{
WM_WINDOWPOSCHANGED
,
sent
|
wparam
,
0
},
{
0
}
};
/* DestroyWindow for a visible child window */
/* DestroyWindow for a visible child window */
static
const
struct
message
WmDestroyChildSeq
[]
=
{
static
const
struct
message
WmDestroyChildSeq
[]
=
{
{
HCBT_DESTROYWND
,
hook
},
{
HCBT_DESTROYWND
,
hook
},
...
@@ -426,6 +453,7 @@ static const struct message WmCreateCustomDialogSeq[] = {
...
@@ -426,6 +453,7 @@ static const struct message WmCreateCustomDialogSeq[] = {
{
WM_KILLFOCUS
,
sent
|
parent
},
{
WM_KILLFOCUS
,
sent
|
parent
},
{
WM_IME_SETCONTEXT
,
sent
|
parent
|
wparam
|
optional
,
0
},
{
WM_IME_SETCONTEXT
,
sent
|
parent
|
wparam
|
optional
,
0
},
{
WM_IME_SETCONTEXT
,
sent
|
wparam
|
optional
,
1
},
{
WM_IME_SETCONTEXT
,
sent
|
wparam
|
optional
,
1
},
{
WM_IME_NOTIFY
,
sent
|
optional
|
defwinproc
},
{
WM_SETFOCUS
,
sent
},
{
WM_SETFOCUS
,
sent
},
{
WM_GETDLGCODE
,
sent
|
defwinproc
|
wparam
,
0
},
{
WM_GETDLGCODE
,
sent
|
defwinproc
|
wparam
,
0
},
{
WM_WINDOWPOSCHANGING
,
sent
|
wparam
,
0
},
{
WM_WINDOWPOSCHANGING
,
sent
|
wparam
,
0
},
...
@@ -477,6 +505,7 @@ static const struct message WmEndCustomDialogSeq[] = {
...
@@ -477,6 +505,7 @@ static const struct message WmEndCustomDialogSeq[] = {
{
WM_KILLFOCUS
,
sent
},
{
WM_KILLFOCUS
,
sent
},
{
WM_IME_SETCONTEXT
,
sent
|
wparam
|
optional
,
0
},
{
WM_IME_SETCONTEXT
,
sent
|
wparam
|
optional
,
0
},
{
WM_IME_SETCONTEXT
,
sent
|
parent
|
wparam
|
defwinproc
|
optional
,
1
},
{
WM_IME_SETCONTEXT
,
sent
|
parent
|
wparam
|
defwinproc
|
optional
,
1
},
{
WM_IME_NOTIFY
,
sent
|
optional
},
{
WM_SETFOCUS
,
sent
|
parent
|
defwinproc
},
{
WM_SETFOCUS
,
sent
|
parent
|
defwinproc
},
{
0
}
{
0
}
};
};
...
@@ -523,7 +552,7 @@ static const struct message WmModalDialogSeq[] = {
...
@@ -523,7 +552,7 @@ static const struct message WmModalDialogSeq[] = {
{
WM_CTLCOLORDLG
,
sent
|
optional
},
{
WM_CTLCOLORDLG
,
sent
|
optional
},
{
WM_PAINT
,
sent
|
optional
},
{
WM_PAINT
,
sent
|
optional
},
{
WM_CTLCOLORBTN
,
sent
},
{
WM_CTLCOLORBTN
,
sent
},
{
WM_ENTERIDLE
,
sent
|
parent
},
{
WM_ENTERIDLE
,
sent
|
parent
|
optional
},
{
WM_TIMER
,
sent
},
{
WM_TIMER
,
sent
},
{
WM_ENABLE
,
sent
|
parent
|
wparam
,
1
},
{
WM_ENABLE
,
sent
|
parent
|
wparam
,
1
},
{
WM_WINDOWPOSCHANGING
,
sent
},
{
WM_WINDOWPOSCHANGING
,
sent
},
...
@@ -691,10 +720,27 @@ static const struct message WmSetScrollRangeHV_NC_Seq[] =
...
@@ -691,10 +720,27 @@ static const struct message WmSetScrollRangeHV_NC_Seq[] =
{
WM_NCCALCSIZE
,
sent
|
wparam
,
1
},
{
WM_NCCALCSIZE
,
sent
|
wparam
,
1
},
{
WM_NCPAINT
,
sent
|
optional
},
{
WM_NCPAINT
,
sent
|
optional
},
{
WM_GETTEXT
,
sent
|
defwinproc
|
optional
},
{
WM_GETTEXT
,
sent
|
defwinproc
|
optional
},
{
WM_GETICON
,
sent
|
optional
|
defwinproc
},
{
WM_GETICON
,
sent
|
optional
|
defwinproc
},
{
WM_GETICON
,
sent
|
optional
|
defwinproc
},
{
WM_GETTEXT
,
sent
|
defwinproc
|
optional
},
{
WM_ERASEBKGND
,
sent
|
optional
},
{
WM_ERASEBKGND
,
sent
|
optional
},
{
WM_CTLCOLORDLG
,
sent
|
defwinproc
|
optional
},
/* sent to a parent of the dialog */
{
WM_CTLCOLORDLG
,
sent
|
defwinproc
|
optional
},
/* sent to a parent of the dialog */
{
WM_WINDOWPOSCHANGED
,
sent
|
wparam
,
0
},
{
WM_WINDOWPOSCHANGED
,
sent
|
wparam
,
0
},
{
WM_SIZE
,
sent
|
defwinproc
},
{
WM_SIZE
,
sent
|
defwinproc
},
{
WM_GETTEXT
,
sent
|
optional
},
{
WM_GETICON
,
sent
|
optional
},
{
WM_GETICON
,
sent
|
optional
},
{
WM_GETICON
,
sent
|
optional
},
{
WM_GETTEXT
,
sent
|
optional
},
{
WM_GETICON
,
sent
|
optional
},
{
WM_GETICON
,
sent
|
optional
},
{
WM_GETICON
,
sent
|
optional
},
{
WM_GETTEXT
,
sent
|
optional
},
{
WM_GETICON
,
sent
|
optional
},
{
WM_GETICON
,
sent
|
optional
},
{
WM_GETICON
,
sent
|
optional
},
{
WM_GETTEXT
,
sent
|
optional
},
{
0
}
{
0
}
};
};
...
@@ -1592,6 +1638,35 @@ static void test_messages(void)
...
@@ -1592,6 +1638,35 @@ static void test_messages(void)
DialogBoxA
(
0
,
"TEST_DIALOG"
,
hparent
,
TestModalDlgProcA
);
DialogBoxA
(
0
,
"TEST_DIALOG"
,
hparent
,
TestModalDlgProcA
);
ok_sequence
(
WmModalDialogSeq
,
"ModalDialog"
,
TRUE
);
ok_sequence
(
WmModalDialogSeq
,
"ModalDialog"
,
TRUE
);
/* test showing child with hidden parent */
ShowWindow
(
hparent
,
SW_HIDE
);
flush_sequence
();
hchild
=
CreateWindowExA
(
0
,
"TestWindowClass"
,
"Test child"
,
WS_CHILD
,
0
,
0
,
10
,
10
,
hparent
,
0
,
0
,
NULL
);
ok
(
hchild
!=
0
,
"Failed to create child window
\n
"
);
ok_sequence
(
WmCreateChildSeq
,
"CreateWindow:child"
,
FALSE
);
ShowWindow
(
hchild
,
SW_SHOW
);
ok_sequence
(
WmShowChildInvisibleParentSeq
,
"ShowWindow:show child with invisible parent"
,
TRUE
);
ok
(
GetWindowLongA
(
hchild
,
GWL_STYLE
)
&
WS_VISIBLE
,
"WS_VISIBLE should be set
\n
"
);
ok
(
!
IsWindowVisible
(
hchild
),
"IsWindowVisible() should return FALSE
\n
"
);
ShowWindow
(
hchild
,
SW_HIDE
);
ok_sequence
(
WmHideChildInvisibleParentSeq
,
"ShowWindow:hide child with invisible parent"
,
TRUE
);
ok
(
!
(
GetWindowLongA
(
hchild
,
GWL_STYLE
)
&
WS_VISIBLE
),
"WS_VISIBLE should be not set
\n
"
);
ok
(
!
IsWindowVisible
(
hchild
),
"IsWindowVisible() should return FALSE
\n
"
);
SetWindowPos
(
hchild
,
0
,
0
,
0
,
0
,
0
,
SWP_SHOWWINDOW
|
SWP_NOSIZE
|
SWP_NOMOVE
|
SWP_NOACTIVATE
|
SWP_NOZORDER
);
ok_sequence
(
WmShowChildInvisibleParentSeq_2
,
"SetWindowPos:show child with invisible parent"
,
FALSE
);
ok
(
GetWindowLongA
(
hchild
,
GWL_STYLE
)
&
WS_VISIBLE
,
"WS_VISIBLE should be set
\n
"
);
ok
(
!
IsWindowVisible
(
hchild
),
"IsWindowVisible() should return FALSE
\n
"
);
SetWindowPos
(
hchild
,
0
,
0
,
0
,
0
,
0
,
SWP_HIDEWINDOW
|
SWP_NOSIZE
|
SWP_NOMOVE
|
SWP_NOACTIVATE
|
SWP_NOZORDER
);
ok_sequence
(
WmHideChildInvisibleParentSeq_2
,
"SetWindowPos:hide child with invisible parent"
,
FALSE
);
ok
(
!
(
GetWindowLongA
(
hchild
,
GWL_STYLE
)
&
WS_VISIBLE
),
"WS_VISIBLE should not be set
\n
"
);
ok
(
!
IsWindowVisible
(
hchild
),
"IsWindowVisible() should return FALSE
\n
"
);
DestroyWindow
(
hparent
);
DestroyWindow
(
hparent
);
flush_sequence
();
flush_sequence
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment