mirror of
https://github.com/reactos/reactos.git
synced 2024-07-02 02:34:53 +00:00
[CONSRV]
Attempt to fix terminal window positioning at initialization. Some work also needs to be done in console.dll. svn path=/branches/ros-csrss/; revision=58463
This commit is contained in:
parent
17c9d97fe7
commit
0a679dbf86
|
@ -205,7 +205,9 @@ static VOID WINAPI
|
||||||
GuiDrawRegion(PCONSOLE Console, SMALL_RECT* Region);
|
GuiDrawRegion(PCONSOLE Console, SMALL_RECT* Region);
|
||||||
static NTSTATUS WINAPI
|
static NTSTATUS WINAPI
|
||||||
GuiResizeBuffer(PCONSOLE Console, PCONSOLE_SCREEN_BUFFER ScreenBuffer, COORD Size);
|
GuiResizeBuffer(PCONSOLE Console, PCONSOLE_SCREEN_BUFFER ScreenBuffer, COORD Size);
|
||||||
VOID FASTCALL
|
static VOID
|
||||||
|
GuiConsoleMoveWindow(PGUI_CONSOLE_DATA GuiData);
|
||||||
|
static VOID
|
||||||
GuiConsoleResizeWindow(PGUI_CONSOLE_DATA GuiData);
|
GuiConsoleResizeWindow(PGUI_CONSOLE_DATA GuiData);
|
||||||
|
|
||||||
|
|
||||||
|
@ -482,8 +484,10 @@ GuiApplyUserSettings(PGUI_CONSOLE_DATA GuiData,
|
||||||
SizeChanged = TRUE;
|
SizeChanged = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Move the window to the user's values */
|
||||||
GuiData->GuiInfo.AutoPosition = pConInfo->ci.u.GuiInfo.AutoPosition;
|
GuiData->GuiInfo.AutoPosition = pConInfo->ci.u.GuiInfo.AutoPosition;
|
||||||
GuiData->GuiInfo.WindowOrigin = pConInfo->ci.u.GuiInfo.WindowOrigin;
|
GuiData->GuiInfo.WindowOrigin = pConInfo->ci.u.GuiInfo.WindowOrigin;
|
||||||
|
GuiConsoleMoveWindow(GuiData);
|
||||||
|
|
||||||
if (SizeChanged)
|
if (SizeChanged)
|
||||||
{
|
{
|
||||||
|
@ -516,8 +520,23 @@ GuiGetGuiData(HWND hWnd)
|
||||||
return ( ((GuiData == NULL) || (GuiData->hWindow == hWnd && GuiData->Console != NULL)) ? GuiData : NULL );
|
return ( ((GuiData == NULL) || (GuiData->hWindow == hWnd && GuiData->Console != NULL)) ? GuiData : NULL );
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
static VOID
|
||||||
FASTCALL
|
GuiConsoleMoveWindow(PGUI_CONSOLE_DATA GuiData)
|
||||||
|
{
|
||||||
|
/* Move the window if needed (not positioned by the system) */
|
||||||
|
if (!GuiData->GuiInfo.AutoPosition)
|
||||||
|
{
|
||||||
|
SetWindowPos(GuiData->hWindow,
|
||||||
|
NULL,
|
||||||
|
GuiData->GuiInfo.WindowOrigin.x,
|
||||||
|
GuiData->GuiInfo.WindowOrigin.y,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
SWP_NOZORDER | SWP_NOSIZE | SWP_NOACTIVATE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static VOID
|
||||||
GuiConsoleResizeWindow(PGUI_CONSOLE_DATA GuiData)
|
GuiConsoleResizeWindow(PGUI_CONSOLE_DATA GuiData)
|
||||||
{
|
{
|
||||||
PCONSOLE Console = GuiData->Console;
|
PCONSOLE Console = GuiData->Console;
|
||||||
|
@ -560,13 +579,8 @@ GuiConsoleResizeWindow(PGUI_CONSOLE_DATA GuiData)
|
||||||
ShowScrollBar(GuiData->hWindow, SB_HORZ, FALSE);
|
ShowScrollBar(GuiData->hWindow, SB_HORZ, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Resize and reposition the window */
|
/* Resize the window */
|
||||||
SetWindowPos(GuiData->hWindow,
|
SetWindowPos(GuiData->hWindow, NULL, 0, 0, Width, Height,
|
||||||
NULL,
|
|
||||||
(GuiData->GuiInfo.AutoPosition ? 0 : GuiData->GuiInfo.WindowOrigin.x),
|
|
||||||
(GuiData->GuiInfo.AutoPosition ? 0 : GuiData->GuiInfo.WindowOrigin.y),
|
|
||||||
Width,
|
|
||||||
Height,
|
|
||||||
SWP_NOZORDER | SWP_NOMOVE | SWP_NOACTIVATE);
|
SWP_NOZORDER | SWP_NOMOVE | SWP_NOACTIVATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -662,7 +676,8 @@ GuiConsoleHandleNcCreate(HWND hWnd, LPCREATESTRUCTW Create)
|
||||||
SetTimer(GuiData->hWindow, CONGUI_UPDATE_TIMER, CONGUI_UPDATE_TIME, NULL);
|
SetTimer(GuiData->hWindow, CONGUI_UPDATE_TIMER, CONGUI_UPDATE_TIME, NULL);
|
||||||
GuiConsoleCreateSysMenu(GuiData->hWindow);
|
GuiConsoleCreateSysMenu(GuiData->hWindow);
|
||||||
|
|
||||||
/* Resize the window to the user's values */
|
/* Move and resize the window to the user's values */
|
||||||
|
GuiConsoleMoveWindow(GuiData);
|
||||||
GuiData->WindowSizeLock = TRUE;
|
GuiData->WindowSizeLock = TRUE;
|
||||||
GuiConsoleResizeWindow(GuiData);
|
GuiConsoleResizeWindow(GuiData);
|
||||||
GuiData->WindowSizeLock = FALSE;
|
GuiData->WindowSizeLock = FALSE;
|
||||||
|
|
Loading…
Reference in a new issue