Commit graph

45 commits

Author SHA1 Message Date
Alexandre Julliard
2e58c9e060 conhost: Use nameless union/structs. 2023-06-16 17:56:55 +02:00
Alexandre Julliard
9efe1a32a2 conhost: Use standard va_list instead of __ms_va_list. 2023-02-20 08:39:18 +01:00
Eric Pouech
7077c5bcab conhost: Only update font when running with a window.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54449
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2023-02-06 22:34:44 +01:00
Hugh McMaster
0e6b21ef1d conhost: Migrate from FontPitchFamily to FontFamily.
To ensure a seamless transition between value names, we try loading the
registry value from FontFamily first and FontPitchFamily second.

Any changes to the console font family are saved to the new value name.
2023-01-11 11:54:16 +01:00
Hugh McMaster
577258a981 conhost: Update debug output and comments when loading/saving settings.
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-06-09 20:55:20 +02:00
Hugh McMaster
1c9c1ebc80 conhost: Show caret immediately after reshaping.
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-06-09 20:55:20 +02:00
Hugh McMaster
25f012edcb conhost: Don't prompt the user to save their app-specific settings.
On Windows, app-specific console settings are always saved to the
registry unless the user cancels the console properties dialog.

Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-30 22:07:42 +02:00
Hugh McMaster
bb2b1d0ed1 conhost: Only save app-specific settings that differ from the defaults.
On Windows, app-specific subkeys of HKCU\Console only hold console
settings that differ from the global defaults.

Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-30 22:07:42 +02:00
Hugh McMaster
37bcbe6bca conhost: Save console settings as global defaults on first run.
On Windows, HKCU\Console holds global default settings, while subkeys
hold any app-specific settings that differ from the defaults.

Wine's conhost.exe implementation currently saves all console settings
to an app-specific subkey on the first run, while global defaults are
only saved to HKCU\Console if the user selects 'Set Defaults' from the
pop-up menu and saves new settings. This is the opposite of console
behaviour on Windows.

Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-30 22:07:42 +02:00
Hugh McMaster
303f8042f9 conhost: Set correct face name when the specified font is not available.
conhost.exe currently copies the user-specified face name from the
LOGFONT structure. This results in an invalid face name when the
specified font is not available.

Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-24 21:25:02 +02:00
Hugh McMaster
7a32bc9e32 conhost: Split first font code path from font update code path.
This change prevents calls to update_console_font() setting any defaults.

Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-23 20:50:21 +02:00
Hugh McMaster
a2bb60e62c conhost: Save default font's pitch and family on first run.
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-22 13:09:51 +02:00
Hugh McMaster
da854c537d conhost: Reimplement font dialog handling.
Much of the existing font dialog code is overly complicated and difficult
to follow. There are also bugs in the code, which cannot be fixed with
minimal changes due to the complexity of the existing source. For example,
changing the font face via the listbox unexpectedly changes the font size.
It is also unnecessary to recreate the list of available font sizes
each font face selection if the font type remains unchanged.

Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-11 21:42:43 +01:00
Hugh McMaster
dfb7428f20 conhost: Don't compare the console config if the user cancels the dialog.
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-02 20:17:25 +01:00
Hugh McMaster
27df7f518c kernelbase: Implement SetCurrentConsoleFontEx.
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-10 10:47:05 +01:00
Eric Pouech
620305d90e conhost: Enable compilation with long types.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-04 11:20:33 +01:00
Hugh McMaster
996126b2de conhost: Only use the maximum character width if a double-byte character set is in use.
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-23 13:38:23 +01:00
Hugh McMaster
0eab766bce conhost: Set keyboard focus to correct radio button in save dialog.
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-31 21:56:52 +02:00
Hugh McMaster
a7fb08fba6 conhost: Use font face length as number of characters.
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-25 18:27:44 +02:00
Jacek Caban
da86e50e29 conhost: Use message window to return a window for windowless consoles.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=38640
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-17 18:16:49 +02:00
Hugh McMaster
bd9db4b6de conhost: Use correct size when storing font FaceName in the registry.
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-09 21:40:44 +02:00
Hugh McMaster
cfb0d152eb conhost: Set screen buffer height to 150 characters in registry defaults.
This matches the defaults in create_screen_buffer().

Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-02 22:57:38 +02:00
Hugh McMaster
30edd84929 conhost: Remove duplicate lines from current_config().
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-02 22:57:38 +02:00
Gabriel Ivăncescu
8d076bc5e4 conhost: Fix line wrapping around when ENABLE_VIRTUAL_TERMINAL_PROCESSING is set.
Remember the fact we completed the entire line but normalize the cursor
otherwise. A newline is delayed so it wraps when writing a new character
if the cursor is outside the width.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-05 23:00:00 +02:00
Jacek Caban
8ccf24ccb0 conhost: Delay window refresh on output update.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-31 19:26:09 +02:00
Francois Gouget
e0d1bec916 conhost: Add a trailing linefeed to TRACE() and ERR() messages.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-02 20:42:44 +01:00
Roman Pišl
2ca86d3b59 conhost: Improve notification when resizing window.
Signed-off-by: Roman Pišl <rpisl@seznam.cz>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-03 20:59:55 +01:00
Roman Pišl
361b4c381e conhost: Fix copy-paste error when setting windows size.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50602
Signed-off-by: Roman Pišl <rpisl@seznam.cz>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-01 22:16:47 +01:00
Jacek Caban
3d2b423328 conhost: Fix copy-paste typos in selection coordinates.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50052
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-21 21:08:26 +01:00
Jacek Caban
9e62d7d257 conhost: Don't create bitmap for hidden windows.
Fixes performance issues in ConEmu.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-16 22:32:10 +01:00
Jacek Caban
14b50ee1b8 conhost: Fix handling selection boundaries in copy_selection.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50052
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-08 12:34:43 +01:00
Jacek Caban
1f15ddce9c conhost: Use console debug channel.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-11 21:14:58 +01:00
Jacek Caban
1333aebe0b conhost: Import scrolling support from wineconsole.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-12 18:44:59 +02:00
Jacek Caban
a3583f0505 conhost: Support window resizing.
Based on wineconsole.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-12 18:44:56 +02:00
Jacek Caban
83b52b19b5 conhost: Import menu handling from wineconsole.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-09 17:38:38 +02:00
Jacek Caban
627ae12d2d conhost: Import config dialog from wineconsole.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-09 17:38:33 +02:00
Jacek Caban
91be31b28a conhost: Import mouse event handling from wineconsole.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-09 17:37:47 +02:00
Jacek Caban
7148521305 conhost: Import keyboard event handling from wineconsole.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-09 17:37:43 +02:00
Jacek Caban
6323e36f0f conhost: Import menus from wineconsole.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-09 17:37:37 +02:00
Jacek Caban
3a6da8defa conhost: Support painting screen buffer.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-08 21:46:44 +02:00
Jacek Caban
c2ffbe5d36 conhost: Update window config in ioctl handlers when needed.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-08 21:46:44 +02:00
Jacek Caban
632676d071 conhost: Import window state update from wineconsole.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-08 21:46:44 +02:00
Jacek Caban
7d48e0c564 conhost: Import font selection support from wineconsole.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-08 21:46:44 +02:00
Jacek Caban
5c45ec90ff conhost: Import loading console config from wineconsole.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-08 21:46:44 +02:00
Jacek Caban
bbd4196814 conhost: Initial support for creating console window.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-08 21:46:44 +02:00