Erich Hoover : hhctrl.ocx: Permit WS_CHILD help windows.
Alexandre Julliard
julliard at winehq.org
Mon Jul 16 14:14:30 CDT 2012
Module: wine
Branch: master
Commit: 2686b9b5880e2b9b27c131dd93d1c85743386253
URL: http://source.winehq.org/git/wine.git/?a=commit;h=2686b9b5880e2b9b27c131dd93d1c85743386253
Author: Erich Hoover <ehoover at mines.edu>
Date: Thu Jul 12 10:25:07 2012 -0600
hhctrl.ocx: Permit WS_CHILD help windows.
---
dlls/hhctrl.ocx/help.c | 16 ++++++++++++----
dlls/hhctrl.ocx/hhctrl.c | 4 ++--
dlls/hhctrl.ocx/hhctrl.h | 2 +-
3 files changed, 15 insertions(+), 7 deletions(-)
diff --git a/dlls/hhctrl.ocx/help.c b/dlls/hhctrl.ocx/help.c
index 2f2fba1..ed5528c 100644
--- a/dlls/hhctrl.ocx/help.c
+++ b/dlls/hhctrl.ocx/help.c
@@ -1585,7 +1585,7 @@ static LRESULT CALLBACK Help_WndProc(HWND hWnd, UINT message, WPARAM wParam, LPA
static BOOL HH_CreateHelpWindow(HHInfo *info)
{
- HWND hWnd;
+ HWND hWnd, parent = 0;
RECT winPos = info->WinType.rcWindowPos;
WNDCLASSEXW wcex;
DWORD dwStyles, dwExStyles;
@@ -1613,7 +1613,11 @@ static BOOL HH_CreateHelpWindow(HHInfo *info)
/* Read in window parameters if available */
if (info->WinType.fsValidMembers & HHWIN_PARAM_STYLES)
- dwStyles = info->WinType.dwStyles | WS_OVERLAPPEDWINDOW;
+ {
+ dwStyles = info->WinType.dwStyles;
+ if (!(info->WinType.dwStyles & WS_CHILD))
+ dwStyles |= WS_OVERLAPPEDWINDOW;
+ }
else
dwStyles = WS_OVERLAPPEDWINDOW | WS_VISIBLE |
WS_CLIPSIBLINGS | WS_CLIPCHILDREN;
@@ -1655,8 +1659,11 @@ static BOOL HH_CreateHelpWindow(HHInfo *info)
caption = info->WinType.pszCaption;
if (!*caption) caption = info->pCHMInfo->defTitle;
+ if (info->WinType.dwStyles & WS_CHILD)
+ parent = info->WinType.hwndCaller;
+
hWnd = CreateWindowExW(dwExStyles, windowClassW, caption,
- dwStyles, x, y, width, height, NULL, NULL, hhctrl_hinstance, NULL);
+ dwStyles, x, y, width, height, parent, NULL, hhctrl_hinstance, NULL);
if (!hWnd)
return FALSE;
@@ -1773,7 +1780,7 @@ void ReleaseHelpViewer(HHInfo *info)
OleUninitialize();
}
-HHInfo *CreateHelpViewer(LPCWSTR filename)
+HHInfo *CreateHelpViewer(LPCWSTR filename, HWND caller)
{
HHInfo *info = heap_alloc_zero(sizeof(HHInfo));
int i;
@@ -1796,6 +1803,7 @@ HHInfo *CreateHelpViewer(LPCWSTR filename)
ReleaseHelpViewer(info);
return NULL;
}
+ info->WinType.hwndCaller = caller;
if(!CreateViewer(info)) {
ReleaseHelpViewer(info);
diff --git a/dlls/hhctrl.ocx/hhctrl.c b/dlls/hhctrl.ocx/hhctrl.c
index a5e7e37..bda435a 100644
--- a/dlls/hhctrl.ocx/hhctrl.c
+++ b/dlls/hhctrl.ocx/hhctrl.c
@@ -181,7 +181,7 @@ HWND WINAPI HtmlHelpW(HWND caller, LPCWSTR filename, UINT command, DWORD_PTR dat
}
index = default_index;
- info = CreateHelpViewer(fullname);
+ info = CreateHelpViewer(fullname, caller);
if(!info)
{
heap_free(default_index);
@@ -253,7 +253,7 @@ HWND WINAPI HtmlHelpW(HWND caller, LPCWSTR filename, UINT command, DWORD_PTR dat
return 0;
}
- info = CreateHelpViewer(fullname);
+ info = CreateHelpViewer(fullname, caller);
if(!info)
return NULL;
diff --git a/dlls/hhctrl.ocx/hhctrl.h b/dlls/hhctrl.ocx/hhctrl.h
index f03d476..bfc6618 100644
--- a/dlls/hhctrl.ocx/hhctrl.h
+++ b/dlls/hhctrl.ocx/hhctrl.h
@@ -194,7 +194,7 @@ IStream *GetChmStream(CHMInfo*,LPCWSTR,ChmPath*) DECLSPEC_HIDDEN;
LPWSTR FindContextAlias(CHMInfo*,DWORD) DECLSPEC_HIDDEN;
WCHAR *GetDocumentTitle(CHMInfo*,LPCWSTR) DECLSPEC_HIDDEN;
-HHInfo *CreateHelpViewer(LPCWSTR) DECLSPEC_HIDDEN;
+HHInfo *CreateHelpViewer(LPCWSTR,HWND) DECLSPEC_HIDDEN;
void ReleaseHelpViewer(HHInfo*) DECLSPEC_HIDDEN;
BOOL NavigateToUrl(HHInfo*,LPCWSTR) DECLSPEC_HIDDEN;
BOOL NavigateToChm(HHInfo*,LPCWSTR,LPCWSTR) DECLSPEC_HIDDEN;
More information about the wine-cvs
mailing list