mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-16 06:10:38 +02:00
* pollkey fixes (merged)
This commit is contained in:
parent
5beb1658ce
commit
9d93d0d4e3
@ -105,8 +105,11 @@ begin
|
|||||||
exit(PendingKeyEvent);
|
exit(PendingKeyEvent);
|
||||||
If Assigned(CurrentKeyBoardDriver.PollKeyEvent) Then
|
If Assigned(CurrentKeyBoardDriver.PollKeyEvent) Then
|
||||||
begin
|
begin
|
||||||
PendingKeyEvent:=CurrentKeyBoardDriver.PollKeyEvent();
|
PollKeyEvent:=CurrentKeyBoardDriver.PollKeyEvent();
|
||||||
PollKeyEvent:=PendingKeyEvent;
|
// PollKeyEvent:=PendingKeyEvent;
|
||||||
|
// Must be done inside every keyboard specific
|
||||||
|
// PollKeyEvent procedure
|
||||||
|
// to avoid problems if that procedure is called directly PM
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
PollKeyEvent:=0;
|
PollKeyEvent:=0;
|
||||||
@ -292,7 +295,10 @@ end;
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.5 2001-10-10 20:19:00 michael
|
Revision 1.6 2001-10-12 16:03:15 peter
|
||||||
|
* pollkey fixes (merged)
|
||||||
|
|
||||||
|
Revision 1.5 2001/10/10 20:19:00 michael
|
||||||
+ Merge of Fixed PollKeyEvent - Pierres fix was not complete
|
+ Merge of Fixed PollKeyEvent - Pierres fix was not complete
|
||||||
|
|
||||||
Revision 1.4 2001/10/03 20:08:36 michael
|
Revision 1.4 2001/10/03 20:08:36 michael
|
||||||
|
@ -35,15 +35,22 @@ end;
|
|||||||
|
|
||||||
Var
|
Var
|
||||||
CurrentVideoDriver : TVideoDriver;
|
CurrentVideoDriver : TVideoDriver;
|
||||||
|
NextVideoMode : TVideoMode;
|
||||||
|
|
||||||
Const
|
Const
|
||||||
VideoInitialized : Boolean = False;
|
VideoInitialized : Boolean = False;
|
||||||
|
DriverInitialized : Boolean = False;
|
||||||
|
NextVideoModeSet : Boolean = False;
|
||||||
|
|
||||||
Function SetVideoDriver (Const Driver : TVideoDriver) : Boolean;
|
Function SetVideoDriver (Const Driver : TVideoDriver) : Boolean;
|
||||||
{ Sets the videodriver to be used }
|
{ Sets the videodriver to be used }
|
||||||
begin
|
begin
|
||||||
If Not VideoInitialized then
|
If Not VideoInitialized then
|
||||||
|
Begin
|
||||||
CurrentVideoDriver:=Driver;
|
CurrentVideoDriver:=Driver;
|
||||||
|
DriverInitialized:=true;
|
||||||
|
NextVideoModeSet:=false;
|
||||||
|
End;
|
||||||
SetVideoDriver:=Not VideoInitialized;
|
SetVideoDriver:=Not VideoInitialized;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -93,8 +100,8 @@ begin
|
|||||||
R:=OldRows;
|
R:=OldRows;
|
||||||
For I:=0 to R-1 do
|
For I:=0 to R-1 do
|
||||||
begin
|
begin
|
||||||
Move(VideoBuf[I*S*OldCols],NewVideoBuf[I*S*ScreenWidth],S*C);
|
Move(VideoBuf^[I*OldCols],NewVideoBuf^[I*ScreenWidth],S*C);
|
||||||
Move(OldVideoBuf[I*S*OldCols],NewOldVideoBuf[I*S*ScreenWidth],S*C);
|
Move(OldVideoBuf^[I*OldCols],NewOldVideoBuf^[I*ScreenWidth],S*C);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
FreeVideoBuf;
|
FreeVideoBuf;
|
||||||
@ -110,6 +117,10 @@ begin
|
|||||||
begin
|
begin
|
||||||
If Assigned(CurrentVideoDriver.InitDriver) then
|
If Assigned(CurrentVideoDriver.InitDriver) then
|
||||||
CurrentVideoDriver.InitDriver;
|
CurrentVideoDriver.InitDriver;
|
||||||
|
VideoInitialized:=True;
|
||||||
|
if NextVideoModeSet then
|
||||||
|
SetVideoMode(NextVideoMode)
|
||||||
|
else
|
||||||
AssignVideoBuf(0,0);
|
AssignVideoBuf(0,0);
|
||||||
ClearScreen;
|
ClearScreen;
|
||||||
end;
|
end;
|
||||||
@ -198,6 +209,11 @@ Var
|
|||||||
OldR,OldC: Word;
|
OldR,OldC: Word;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
|
SetVideoMode:=DriverInitialized;
|
||||||
|
if not DriverInitialized then
|
||||||
|
exit;
|
||||||
|
If VideoInitialized then
|
||||||
|
begin
|
||||||
OldC:=ScreenWidth;
|
OldC:=ScreenWidth;
|
||||||
OldR:=ScreenHeight;
|
OldR:=ScreenHeight;
|
||||||
If Assigned(CurrentVideoDriver.SetVideoMode) then
|
If Assigned(CurrentVideoDriver.SetVideoMode) then
|
||||||
@ -207,6 +223,12 @@ begin
|
|||||||
// Assign buffer
|
// Assign buffer
|
||||||
If SetVideoMode then
|
If SetVideoMode then
|
||||||
AssignVideoBuf(OldC,Oldr);
|
AssignVideoBuf(OldC,Oldr);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
NextVideoMode:=Mode;
|
||||||
|
NextVideoModeSet:=true;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -214,7 +236,7 @@ Function GetVideoModeCount : Word;
|
|||||||
|
|
||||||
begin
|
begin
|
||||||
If Assigned(CurrentVideoDriver.GetVideoModeCount) then
|
If Assigned(CurrentVideoDriver.GetVideoModeCount) then
|
||||||
GetVideoModeCount:=GetVideoModeCount()
|
GetVideoModeCount:=CurrentVideoDriver.GetVideoModeCount()
|
||||||
else
|
else
|
||||||
GetVideoModeCount:=1;
|
GetVideoModeCount:=1;
|
||||||
end;
|
end;
|
||||||
@ -239,11 +261,12 @@ begin
|
|||||||
DefaultErrorHandler := errAbort; { return error code }
|
DefaultErrorHandler := errAbort; { return error code }
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.5 2001-10-10 21:03:48 michael
|
Revision 1.6 2001-10-12 16:03:15 peter
|
||||||
|
* pollkey fixes (merged)
|
||||||
|
|
||||||
|
Revision 1.5 2001/10/10 21:03:48 michael
|
||||||
+ Clearscreen now also clears oldvideobuf after screenupdate
|
+ Clearscreen now also clears oldvideobuf after screenupdate
|
||||||
|
|
||||||
Revision 1.4 2001/10/06 22:28:24 michael
|
Revision 1.4 2001/10/06 22:28:24 michael
|
||||||
|
@ -1483,9 +1483,15 @@ end;
|
|||||||
|
|
||||||
|
|
||||||
function SysPollKeyEvent: TKeyEvent;
|
function SysPollKeyEvent: TKeyEvent;
|
||||||
|
var
|
||||||
|
KeyEvent : TKeyEvent;
|
||||||
begin
|
begin
|
||||||
if keypressed then
|
if keypressed then
|
||||||
SysPollKeyEvent:=SysGetKeyEvent
|
begin
|
||||||
|
KeyEvent:=SysGetKeyEvent;
|
||||||
|
PutKeyEvent(KeyEvent);
|
||||||
|
SysPollKeyEvent:=KeyEvent
|
||||||
|
end
|
||||||
else
|
else
|
||||||
SysPollKeyEvent:=0;
|
SysPollKeyEvent:=0;
|
||||||
end;
|
end;
|
||||||
@ -1498,11 +1504,11 @@ end;
|
|||||||
|
|
||||||
|
|
||||||
procedure RestoreStartMode;
|
procedure RestoreStartMode;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
TCSetAttr(1,TCSANOW,StartTio);
|
TCSetAttr(1,TCSANOW,StartTio);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
Const
|
Const
|
||||||
SysKeyboardDriver : TKeyboardDriver = (
|
SysKeyboardDriver : TKeyboardDriver = (
|
||||||
InitDriver : @SysInitKeyBoard;
|
InitDriver : @SysInitKeyBoard;
|
||||||
@ -1520,7 +1526,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.8 2001-09-21 21:33:36 michael
|
Revision 1.9 2001-10-12 16:03:15 peter
|
||||||
|
* pollkey fixes (merged)
|
||||||
|
|
||||||
|
Revision 1.8 2001/09/21 21:33:36 michael
|
||||||
+ Merged driver support from fixbranch
|
+ Merged driver support from fixbranch
|
||||||
|
|
||||||
Revision 1.7 2001/08/30 20:55:08 peter
|
Revision 1.7 2001/08/30 20:55:08 peter
|
||||||
|
Loading…
Reference in New Issue
Block a user