* fix the disappearing desktop for win32

This commit is contained in:
pierre 2002-04-25 13:34:17 +00:00
parent df5420c0ae
commit 1cc272351a
2 changed files with 27 additions and 4 deletions

View File

@ -810,6 +810,10 @@ begin
{$ifndef go32v2} {$ifndef go32v2}
InitScreen; InitScreen;
{$endif ndef go32v2} {$endif ndef go32v2}
{$ifdef win32}
{ write the empty screen to dummy console handle }
UpdateScreen(true);
{$endif ndef win32}
InitEvents; InitEvents;
InitSysError; InitSysError;
CurDirChanged; CurDirChanged;
@ -822,9 +826,11 @@ begin
{$ifdef Unix} {$ifdef Unix}
SetKnownKeys; SetKnownKeys;
{$endif Unix} {$endif Unix}
{$ifndef win32}
{$ifndef go32v2} {$ifndef go32v2}
UpdateScreen(true); UpdateScreen(true);
{$endif go32v2} {$endif go32v2}
{$endif win32}
end; end;
function TIDEApp.AutoSave: boolean; function TIDEApp.AutoSave: boolean;
@ -1187,7 +1193,10 @@ end;
END. END.
{ {
$Log$ $Log$
Revision 1.10 2002-04-12 08:58:22 pierre Revision 1.11 2002-04-25 13:34:17 pierre
* fix the disappearing desktop for win32
Revision 1.10 2002/04/12 08:58:22 pierre
+ add RTE(250) for Ctrl+F11 in DEBUG mode + add RTE(250) for Ctrl+F11 in DEBUG mode
Revision 1.9 2002/03/20 14:52:01 pierre Revision 1.9 2002/03/20 14:52:01 pierre

View File

@ -130,6 +130,7 @@ type
DosScreenBufferHandle, DosScreenBufferHandle,
IDEScreenBufferHandle, IDEScreenBufferHandle,
StartScreenBufferHandle, StartScreenBufferHandle,
DummyScreenBufferHandle,
NewScreenBufferHandle : THandle; NewScreenBufferHandle : THandle;
IDEActive : boolean; IDEActive : boolean;
ConsoleMode,IdeMode : Dword; ConsoleMode,IdeMode : Dword;
@ -613,6 +614,10 @@ begin
GENERIC_READ or GENERIC_WRITE, GENERIC_READ or GENERIC_WRITE,
FILE_SHARE_READ or FILE_SHARE_WRITE,SecurityAttr, FILE_SHARE_READ or FILE_SHARE_WRITE,SecurityAttr,
CONSOLE_TEXTMODE_BUFFER,nil); CONSOLE_TEXTMODE_BUFFER,nil);
DummyScreenBufferHandle:=CreateConsoleScreenBuffer(
GENERIC_READ or GENERIC_WRITE,
FILE_SHARE_READ or FILE_SHARE_WRITE,SecurityAttr,
CONSOLE_TEXTMODE_BUFFER,nil);
StartScreenBufferHandle:=GetStdHandle(STD_OUTPUT_HANDLE); StartScreenBufferHandle:=GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleMode(GetStdHandle(Std_Input_Handle), @ConsoleMode); GetConsoleMode(GetStdHandle(Std_Input_Handle), @ConsoleMode);
IdeMode:=ConsoleMode; IdeMode:=ConsoleMode;
@ -655,6 +660,7 @@ begin
SetStdHandle(Std_Output_Handle,StartScreenBufferHandle); SetStdHandle(Std_Output_Handle,StartScreenBufferHandle);
UpdateFileHandles; UpdateFileHandles;
CloseHandle(NewScreenBufferHandle); CloseHandle(NewScreenBufferHandle);
CloseHandle(DummyScreenBufferHandle);
inherited Done; inherited Done;
end; end;
@ -841,6 +847,9 @@ end;
procedure TWin32Screen.SaveIDEScreen; procedure TWin32Screen.SaveIDEScreen;
begin begin
GetConsoleMode(GetStdHandle(Std_Input_Handle), @IdeMode); GetConsoleMode(GetStdHandle(Std_Input_Handle), @IdeMode);
{ set the dummy buffer as active already now PM }
SetStdHandle(Std_Output_Handle,DummyScreenBufferHandle);
UpdateFileHandles;
end; end;
{ dummy for win32 as the Buffer screen { dummy for win32 as the Buffer screen
@ -848,8 +857,8 @@ end;
procedure TWin32Screen.SaveConsoleScreen; procedure TWin32Screen.SaveConsoleScreen;
begin begin
GetConsoleMode(GetStdHandle(Std_Input_Handle), @ConsoleMode); GetConsoleMode(GetStdHandle(Std_Input_Handle), @ConsoleMode);
{ set the IDE buffer as active already now PM } { set the dummy buffer as active already now PM }
SetStdHandle(Std_Output_Handle,IDEScreenBufferHandle); SetStdHandle(Std_Output_Handle,DummyScreenBufferHandle);
UpdateFileHandles; UpdateFileHandles;
end; end;
@ -869,6 +878,8 @@ var
res : boolean; res : boolean;
error : longint; error : longint;
begin begin
SetStdHandle(Std_Output_Handle,IDEScreenBufferHandle);
UpdateFileHandles;
GetConsoleScreenBufferInfo(IDEScreenBufferHandle, GetConsoleScreenBufferInfo(IDEScreenBufferHandle,
@ConsoleScreenBufferInfo); @ConsoleScreenBufferInfo);
SetConsoleActiveScreenBuffer(IDEScreenBufferHandle); SetConsoleActiveScreenBuffer(IDEScreenBufferHandle);
@ -932,7 +943,10 @@ end;
end. end.
{ {
$Log$ $Log$
Revision 1.8 2002-01-22 16:29:52 pierre Revision 1.9 2002-04-25 13:34:17 pierre
* fix the disappearing desktop for win32
Revision 1.8 2002/01/22 16:29:52 pierre
* try to fix win32 problem with Dos program ouptut in command shell * try to fix win32 problem with Dos program ouptut in command shell
Warning, to debug under win32 with GDB you must use "set new-console on" Warning, to debug under win32 with GDB you must use "set new-console on"