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
8e77d6a2
Commit
8e77d6a2
authored
Oct 20, 2015
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wineconsole: Accept a too large font if we can't find one that fits the screen.
parent
15f8b012
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
15 additions
and
9 deletions
+15
-9
dialog.c
programs/wineconsole/dialog.c
+2
-2
user.c
programs/wineconsole/user.c
+11
-5
winecon_user.h
programs/wineconsole/winecon_user.h
+2
-2
No files found.
programs/wineconsole/dialog.c
View file @
8e77d6a2
...
...
@@ -300,7 +300,7 @@ static int CALLBACK font_enum_size2(const LOGFONTW* lf, const TEXTMETRICW* tm,
struct
dialog_info
*
di
=
(
struct
dialog_info
*
)
lParam
;
WCUSER_DumpTextMetric
(
tm
,
FontType
);
if
(
WCUSER_ValidateFontMetric
(
di
->
data
,
tm
,
FontType
))
if
(
WCUSER_ValidateFontMetric
(
di
->
data
,
tm
,
FontType
,
TRUE
))
{
di
->
nFont
++
;
}
...
...
@@ -372,7 +372,7 @@ static int CALLBACK font_enum_size(const LOGFONTW* lf, const TEXTMETRICW* tm,
return
0
;
}
if
(
WCUSER_ValidateFontMetric
(
di
->
data
,
tm
,
FontType
))
if
(
WCUSER_ValidateFontMetric
(
di
->
data
,
tm
,
FontType
,
TRUE
))
{
int
idx
=
0
;
...
...
programs/wineconsole/user.c
View file @
8e77d6a2
...
...
@@ -333,7 +333,8 @@ static BOOL WCUSER_AreFontsEqual(const struct config_data* config, const LOGFONT
struct
font_chooser
{
struct
inner_data
*
data
;
int
done
;
BOOL
check_screen_size
;
BOOL
done
;
};
/******************************************************************
...
...
@@ -341,11 +342,12 @@ struct font_chooser
*
* Returns true if the font described in tm is usable as a font for the renderer
*/
BOOL
WCUSER_ValidateFontMetric
(
const
struct
inner_data
*
data
,
const
TEXTMETRICW
*
tm
,
DWORD
fontType
)
BOOL
WCUSER_ValidateFontMetric
(
const
struct
inner_data
*
data
,
const
TEXTMETRICW
*
tm
,
DWORD
type
,
BOOL
check_screen_size
)
{
BOOL
ret
=
TRUE
;
if
(
fontType
&
RASTER_FONTTYPE
)
if
(
check_screen_size
&&
(
type
&
RASTER_FONTTYPE
)
)
ret
=
(
tm
->
tmMaxCharWidth
*
data
->
curcfg
.
win_width
<
GetSystemMetrics
(
SM_CXSCREEN
)
&&
tm
->
tmHeight
*
data
->
curcfg
.
win_height
<
GetSystemMetrics
(
SM_CYSCREEN
));
return
ret
&&
!
tm
->
tmItalic
&&
!
tm
->
tmUnderlined
&&
!
tm
->
tmStruckOut
&&
...
...
@@ -377,7 +379,7 @@ static int CALLBACK get_first_font_enum_2(const LOGFONTW* lf, const TEXTMETRICW*
struct
font_chooser
*
fc
=
(
struct
font_chooser
*
)
lParam
;
WCUSER_DumpTextMetric
(
tm
,
FontType
);
if
(
WCUSER_ValidateFontMetric
(
fc
->
data
,
tm
,
FontType
))
if
(
WCUSER_ValidateFontMetric
(
fc
->
data
,
tm
,
FontType
,
fc
->
check_screen_size
))
{
LOGFONTW
mlf
=
*
lf
;
...
...
@@ -535,7 +537,11 @@ static void WCUSER_SetFontPmt(struct inner_data* data, const WCHAR* font,
/* try to find an acceptable font */
WINE_WARN
(
"Couldn't match the font from registry... trying to find one
\n
"
);
fc
.
data
=
data
;
fc
.
done
=
0
;
fc
.
check_screen_size
=
TRUE
;
fc
.
done
=
FALSE
;
EnumFontFamiliesW
(
PRIVATE
(
data
)
->
hMemDC
,
NULL
,
get_first_font_enum
,
(
LPARAM
)
&
fc
);
if
(
fc
.
done
)
return
;
fc
.
check_screen_size
=
FALSE
;
EnumFontFamiliesW
(
PRIVATE
(
data
)
->
hMemDC
,
NULL
,
get_first_font_enum
,
(
LPARAM
)
&
fc
);
if
(
!
fc
.
done
)
WINECON_Fatal
(
"Couldn't find a decent font, aborting
\n
"
);
}
...
...
programs/wineconsole/winecon_user.h
View file @
8e77d6a2
...
...
@@ -46,8 +46,8 @@ struct inner_data_user {
extern
const
COLORREF
WCUSER_ColorMap
[
16
];
extern
BOOL
WCUSER_GetProperties
(
struct
inner_data
*
,
BOOL
);
extern
BOOL
WCUSER_ValidateFont
(
const
struct
inner_data
*
data
,
const
LOGFONTW
*
lf
);
extern
BOOL
WCUSER_ValidateFontMetric
(
const
struct
inner_data
*
data
,
const
TEXTMETRICW
*
tm
,
DWORD
fontTyp
e
);
extern
BOOL
WCUSER_ValidateFontMetric
(
const
struct
inner_data
*
data
,
const
TEXTMETRICW
*
tm
,
DWORD
type
,
BOOL
check_screen_siz
e
);
extern
HFONT
WCUSER_CopyFont
(
struct
config_data
*
config
,
HWND
hWnd
,
const
LOGFONTW
*
lf
,
LONG
*
el
);
extern
void
WCUSER_FillLogFont
(
LOGFONTW
*
lf
,
const
WCHAR
*
name
,
...
...
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