conhost: Popup Attributes should match Character Attributes when creating a new screen buffer.

Popup Attributes should match Character Attributes when a new screen
buffer is created. The existing Popup Attributes are copied when
using a pseudo console.

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>
This commit is contained in:
Hugh McMaster 2021-07-26 23:02:34 +10:00 committed by Alexandre Julliard
parent 86e521d5bb
commit f1023b4b52
2 changed files with 8 additions and 7 deletions

View File

@ -1049,8 +1049,8 @@ static void test_new_screen_buffer_color_attributes(HANDLE hConOut)
ok(csbi2.wAttributes == orig_attr, "Character Attributes should have been copied: "
"got %#x, expected %#x\n", csbi2.wAttributes, orig_attr);
todo_wine ok(csbi2.wPopupAttributes != orig_popup, "Popup Attributes should not match original value\n");
todo_wine ok(csbi2.wPopupAttributes == orig_attr, "Popup Attributes should match Character Attributes\n");
ok(csbi2.wPopupAttributes != orig_popup, "Popup Attributes should not match original value\n");
ok(csbi2.wPopupAttributes == orig_attr, "Popup Attributes should match Character Attributes\n");
/* Test different Character Attributes */
attr = FOREGROUND_BLUE|BACKGROUND_GREEN;
@ -1070,8 +1070,8 @@ static void test_new_screen_buffer_color_attributes(HANDLE hConOut)
ok(csbi2.wAttributes == attr, "Character Attributes should have been copied: "
"got %#x, expected %#x\n", csbi2.wAttributes, attr);
todo_wine ok(csbi2.wPopupAttributes != orig_popup, "Popup Attributes should not match original value\n");
todo_wine ok(csbi2.wPopupAttributes == attr, "Popup Attributes should match Character Attributes\n");
ok(csbi2.wPopupAttributes != orig_popup, "Popup Attributes should not match original value\n");
ok(csbi2.wPopupAttributes == attr, "Popup Attributes should match Character Attributes\n");
ret = SetConsoleTextAttribute(hConOut, orig_attr);
ok(ret, "SetConsoleTextAttribute failed: error %u\n", GetLastError());
@ -1094,8 +1094,8 @@ static void test_new_screen_buffer_color_attributes(HANDLE hConOut)
ok(csbi2.wAttributes == orig_attr, "Character Attributes should have been copied: "
"got %#x, expected %#x\n", csbi2.wAttributes, orig_attr);
todo_wine ok(csbi2.wPopupAttributes != orig_popup, "Popup Attributes should not match original value\n");
todo_wine ok(csbi2.wPopupAttributes == orig_attr, "Popup Attributes should match Character Attributes\n");
ok(csbi2.wPopupAttributes != orig_popup, "Popup Attributes should not match original value\n");
ok(csbi2.wPopupAttributes == orig_attr, "Popup Attributes should match Character Attributes\n");
csbi.wPopupAttributes = orig_popup;
ret = SetConsoleScreenBufferInfoEx(hConOut, &csbi);

View File

@ -85,7 +85,6 @@ static struct screen_buffer *create_screen_buffer( struct console *console, int
screen_buffer->cursor_visible = 1;
screen_buffer->width = width;
screen_buffer->height = height;
screen_buffer->popup_attr = 0xf5;
screen_buffer->font.weight = FW_NORMAL;
screen_buffer->font.pitch_family = FIXED_PITCH | FF_DONTCARE;
@ -96,6 +95,7 @@ static struct screen_buffer *create_screen_buffer( struct console *console, int
screen_buffer->win.right = console->active->win.right - console->active->win.left;
screen_buffer->win.bottom = console->active->win.bottom - console->active->win.top;
screen_buffer->attr = console->active->attr;
screen_buffer->popup_attr = console->active->attr;
}
else
{
@ -104,6 +104,7 @@ static struct screen_buffer *create_screen_buffer( struct console *console, int
screen_buffer->win.right = width - 1;
screen_buffer->win.bottom = height - 1;
screen_buffer->attr = FOREGROUND_BLUE|FOREGROUND_GREEN|FOREGROUND_RED;
screen_buffer->popup_attr = 0xf5;
}
if (wine_rb_put( &screen_buffer_map, LongToPtr(id), &screen_buffer->entry ))