Module: wine Branch: master Commit: b21d2e5f58dc5fa713174616de5042e05e13a1fe URL: https://source.winehq.org/git/wine.git/?a=commit;h=b21d2e5f58dc5fa713174616d...
Author: Jacek Caban jacek@codeweavers.com Date: Fri Jul 10 17:07:24 2020 +0200
kernelbase: Use IOCTL_CONDRV_SET_OUTPUT_INFO in SetConsoleScreenBufferInfoEx.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/kernelbase/console.c | 41 +++++++++++++++++------------------------ 1 file changed, 17 insertions(+), 24 deletions(-)
diff --git a/dlls/kernelbase/console.c b/dlls/kernelbase/console.c index 107c909d57..cf64eff74a 100644 --- a/dlls/kernelbase/console.c +++ b/dlls/kernelbase/console.c @@ -1323,7 +1323,10 @@ BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleOutputCP( UINT cp ) BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleScreenBufferInfoEx( HANDLE handle, CONSOLE_SCREEN_BUFFER_INFOEX *info ) { - BOOL ret; + struct condrv_output_info_params params = + { SET_CONSOLE_OUTPUT_INFO_CURSOR_POS | SET_CONSOLE_OUTPUT_INFO_SIZE | + SET_CONSOLE_OUTPUT_INFO_ATTR | SET_CONSOLE_OUTPUT_INFO_POPUP_ATTR | + SET_CONSOLE_OUTPUT_INFO_DISPLAY_WINDOW | SET_CONSOLE_OUTPUT_INFO_MAX_SIZE };
TRACE("(%p, %p)\n", handle, info);
@@ -1333,29 +1336,19 @@ BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleScreenBufferInfoEx( HANDLE handle, return FALSE; }
- SERVER_START_REQ( set_console_output_info ) - { - req->handle = console_handle_unmap( handle ); - req->mask = SET_CONSOLE_OUTPUT_INFO_CURSOR_POS | SET_CONSOLE_OUTPUT_INFO_SIZE | - SET_CONSOLE_OUTPUT_INFO_ATTR | SET_CONSOLE_OUTPUT_INFO_POPUP_ATTR | - SET_CONSOLE_OUTPUT_INFO_DISPLAY_WINDOW | SET_CONSOLE_OUTPUT_INFO_MAX_SIZE; - req->width = info->dwSize.X; - req->height = info->dwSize.Y; - req->cursor_x = info->dwCursorPosition.X; - req->cursor_y = info->dwCursorPosition.Y; - req->attr = info->wAttributes; - req->win_left = info->srWindow.Left; - req->win_top = info->srWindow.Top; - req->win_right = info->srWindow.Right; - req->win_bottom = info->srWindow.Bottom; - req->popup_attr = info->wPopupAttributes; - req->max_width = min( info->dwMaximumWindowSize.X, info->dwSize.X ); - req->max_height = min( info->dwMaximumWindowSize.Y, info->dwSize.Y ); - ret = !wine_server_call_err( req ); - } - SERVER_END_REQ; - - return ret; + params.info.width = info->dwSize.X; + params.info.height = info->dwSize.Y; + params.info.cursor_x = info->dwCursorPosition.X; + params.info.cursor_y = info->dwCursorPosition.Y; + params.info.attr = info->wAttributes; + params.info.win_left = info->srWindow.Left; + params.info.win_top = info->srWindow.Top; + params.info.win_right = info->srWindow.Right; + params.info.win_bottom = info->srWindow.Bottom; + params.info.popup_attr = info->wPopupAttributes; + params.info.max_width = min( info->dwMaximumWindowSize.X, info->dwSize.X ); + params.info.max_height = min( info->dwMaximumWindowSize.Y, info->dwSize.Y ); + return console_ioctl( handle, IOCTL_CONDRV_SET_OUTPUT_INFO, ¶ms, sizeof(params), NULL, 0, NULL ); }