Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
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-winehq
Commits
b9848a75
Commit
b9848a75
authored
Apr 23, 2008
by
Eric Pouech
Committed by
Alexandre Julliard
Apr 24, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winhelp: Correctly compute the popup size and manage the popup when richedit is used.
parent
603e1a15
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
61 additions
and
8 deletions
+61
-8
winhelp.c
programs/winhelp/winhelp.c
+61
-8
No files found.
programs/winhelp/winhelp.c
View file @
b9848a75
...
...
@@ -48,7 +48,7 @@ static LRESULT CALLBACK WINHELP_ButtonBoxWndProc(HWND, UINT, WPARAM, LPARAM);
static
LRESULT
CALLBACK
WINHELP_ButtonWndProc
(
HWND
,
UINT
,
WPARAM
,
LPARAM
);
static
LRESULT
CALLBACK
WINHELP_HistoryWndProc
(
HWND
,
UINT
,
WPARAM
,
LPARAM
);
static
LRESULT
CALLBACK
WINHELP_ShadowWndProc
(
HWND
,
UINT
,
WPARAM
,
LPARAM
);
static
void
WINHELP_CheckPopup
(
UINT
);
static
BOOL
WINHELP_CheckPopup
(
HWND
,
UINT
,
WPARAM
,
LPARAM
,
LRESULT
*
);
static
BOOL
WINHELP_SplitLines
(
HWND
hWnd
,
LPSIZE
);
static
void
WINHELP_InitFonts
(
HWND
hWnd
);
static
void
WINHELP_DeleteLines
(
WINHELP_WINDOW
*
);
...
...
@@ -683,10 +683,24 @@ BOOL WINHELP_CreateHelpWindow(WINHELP_WNDPAGE* wpage, int nCmdShow, BOOL remembe
MACRO_ExecuteMacro
(
macro
->
lpszMacro
);
}
WINHELP_LayoutMainWindow
(
win
);
if
(
bPopup
&&
use_richedit
)
{
DWORD
mask
=
SendMessage
(
hTextWnd
,
EM_GETEVENTMASK
,
0
,
0
);
WINHELP_SetupText
(
hTextWnd
,
win
,
wpage
->
relative
);
/* we need the window to be shown for richedit to compute the size */
ShowWindow
(
win
->
hMainWnd
,
nCmdShow
);
SendMessage
(
hTextWnd
,
EM_SETEVENTMASK
,
0
,
mask
|
ENM_REQUESTRESIZE
);
SendMessage
(
hTextWnd
,
EM_REQUESTRESIZE
,
0
,
0
);
SendMessage
(
hTextWnd
,
EM_SETEVENTMASK
,
0
,
mask
);
}
else
{
WINHELP_SetupText
(
hTextWnd
,
win
,
wpage
->
relative
);
WINHELP_LayoutMainWindow
(
win
);
ShowWindow
(
win
->
hMainWnd
,
nCmdShow
);
}
return
TRUE
;
}
...
...
@@ -818,8 +832,9 @@ static LRESULT CALLBACK WINHELP_MainWndProc(HWND hWnd, UINT msg, WPARAM wParam,
RECT
rect
;
INT
curPos
,
min
,
max
,
dy
,
keyDelta
;
HWND
hTextWnd
;
LRESULT
ret
;
WINHELP_CheckPopup
(
msg
)
;
if
(
WINHELP_CheckPopup
(
hWnd
,
msg
,
wParam
,
lParam
,
&
ret
))
return
ret
;
switch
(
msg
)
{
...
...
@@ -923,8 +938,24 @@ static LRESULT CALLBACK WINHELP_MainWndProc(HWND hWnd, UINT msg, WPARAM wParam,
case
WM_NOTIFY
:
if
(
wParam
==
CTL_ID_TEXT
)
{
RECT
rc
;
switch
(((
NMHDR
*
)
lParam
)
->
code
)
{
case
EN_MSGFILTER
:
return
WINHELP_HandleTextMouse
((
WINHELP_WINDOW
*
)
GetWindowLong
(
hWnd
,
0
),
(
const
MSGFILTER
*
)
lParam
);
case
EN_REQUESTRESIZE
:
rc
=
((
REQRESIZE
*
)
lParam
)
->
rc
;
win
=
(
WINHELP_WINDOW
*
)
GetWindowLong
(
hWnd
,
0
);
AdjustWindowRect
(
&
rc
,
GetWindowLong
(
win
->
hMainWnd
,
GWL_STYLE
),
FALSE
);
SetWindowPos
(
win
->
hMainWnd
,
HWND_TOP
,
0
,
0
,
rc
.
right
-
rc
.
left
,
rc
.
bottom
-
rc
.
top
,
SWP_NOMOVE
|
SWP_NOZORDER
);
WINHELP_LayoutMainWindow
(
win
);
break
;
}
}
break
;
...
...
@@ -1003,7 +1034,7 @@ static LRESULT CALLBACK WINHELP_ButtonBoxWndProc(HWND hWnd, UINT msg, WPARAM wPa
SIZE
button_size
;
INT
x
,
y
;
WINHELP_CheckPopup
(
msg
)
;
if
(
WINHELP_CheckPopup
(
hWnd
,
msg
,
wParam
,
lParam
,
NULL
))
return
0L
;
switch
(
msg
)
{
...
...
@@ -1080,6 +1111,8 @@ static LRESULT CALLBACK WINHELP_ButtonBoxWndProc(HWND hWnd, UINT msg, WPARAM wPa
*/
static
LRESULT
CALLBACK
WINHELP_ButtonWndProc
(
HWND
hWnd
,
UINT
msg
,
WPARAM
wParam
,
LPARAM
lParam
)
{
if
(
WINHELP_CheckPopup
(
hWnd
,
msg
,
wParam
,
lParam
,
NULL
))
return
0
;
if
(
msg
==
WM_KEYDOWN
)
{
switch
(
wParam
)
...
...
@@ -1112,7 +1145,7 @@ static LRESULT CALLBACK WINHELP_TextWndProc(HWND hWnd, UINT msg, WPARAM wParam,
HWND
hPopupWnd
;
if
(
msg
!=
WM_LBUTTONDOWN
)
WINHELP_CheckPopup
(
msg
);
WINHELP_CheckPopup
(
hWnd
,
msg
,
wParam
,
lParam
,
NULL
);
switch
(
msg
)
{
...
...
@@ -1507,7 +1540,7 @@ static LRESULT CALLBACK WINHELP_HistoryWndProc(HWND hWnd, UINT msg, WPARAM wPara
*/
static
LRESULT
CALLBACK
WINHELP_ShadowWndProc
(
HWND
hWnd
,
UINT
msg
,
WPARAM
wParam
,
LPARAM
lParam
)
{
WINHELP_CheckPopup
(
msg
)
;
if
(
WINHELP_CheckPopup
(
hWnd
,
msg
,
wParam
,
lParam
,
NULL
))
return
0
;
return
DefWindowProc
(
hWnd
,
msg
,
wParam
,
lParam
);
}
...
...
@@ -1929,15 +1962,33 @@ static BOOL WINHELP_SplitLines(HWND hWnd, LPSIZE newsize)
*
* WINHELP_CheckPopup
*/
static
void
WINHELP_CheckPopup
(
UINT
msg
)
static
BOOL
WINHELP_CheckPopup
(
HWND
hWnd
,
UINT
msg
,
WPARAM
wParam
,
LPARAM
lParam
,
LRESULT
*
lret
)
{
HWND
hPopup
;
if
(
!
Globals
.
active_popup
)
return
;
if
(
!
Globals
.
active_popup
)
return
FALSE
;
switch
(
msg
)
{
case
WM_NOTIFY
:
{
MSGFILTER
*
msgf
=
(
MSGFILTER
*
)
lParam
;
if
(
msgf
->
nmhdr
.
code
==
EN_MSGFILTER
)
{
if
(
!
WINHELP_CheckPopup
(
hWnd
,
msgf
->
msg
,
msgf
->
wParam
,
msgf
->
lParam
,
NULL
))
return
FALSE
;
if
(
lret
)
*
lret
=
1
;
return
TRUE
;
}
}
break
;
case
WM_ACTIVATE
:
if
(
wParam
!=
WA_INACTIVE
||
(
HWND
)
lParam
==
Globals
.
active_win
->
hMainWnd
||
(
HWND
)
lParam
==
Globals
.
active_popup
->
hMainWnd
)
break
;
case
WM_COMMAND
:
if
(
use_richedit
)
break
;
/* fall through */
case
WM_LBUTTONDOWN
:
case
WM_MBUTTONDOWN
:
case
WM_RBUTTONDOWN
:
...
...
@@ -1947,7 +1998,9 @@ static void WINHELP_CheckPopup(UINT msg)
hPopup
=
Globals
.
active_popup
->
hMainWnd
;
Globals
.
active_popup
=
NULL
;
DestroyWindow
(
hPopup
);
return
TRUE
;
}
return
FALSE
;
}
/***********************************************************************
...
...
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