From cd1ecb41373cf1e966b07b31fce04d64cd76cd42 Mon Sep 17 00:00:00 2001 From: nickysn Date: Sun, 12 Sep 2010 17:05:44 +0000 Subject: * always set both IntCurrentDriver and IntCurrentNewDriver to the correct old & new style driver numbers git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@15973 3ad0048d-3df7-0310-abae-a5850022a9f2 --- packages/graph/src/inc/modes.inc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'packages/graph') diff --git a/packages/graph/src/inc/modes.inc b/packages/graph/src/inc/modes.inc index dbd03850ed..1d6d8b92f2 100644 --- a/packages/graph/src/inc/modes.inc +++ b/packages/graph/src/inc/modes.inc @@ -395,6 +395,7 @@ end; var modeinfo: PModeInfo; usedDriver: Integer; + dummyNewModeNr: Integer; begin { check if the mode exists... } { Depending on the modenumber, we search using the old or new } @@ -525,7 +526,11 @@ end; OutTextXY:=modeInfo^.OutTextXY; IntCurrentMode := modeinfo^.ModeNumber; - IntCurrentDriver := usedDriver; + { fix by nickysn: always set *both* IntCurrentDriver and IntCurrentNewDriver to the + *correct* old & new style driver numbers. Solves a lot of bugs, e.g. when using InitGraph + with a new style driver/mode and then later using SetGraphMode(GetGraphMode) } + IntCurrentDriver := modeinfo^.DriverNumber; + res2Mode(modeinfo^.maxx+1, modeinfo^.maxy+1, modeinfo^.maxColor, IntCurrentNewDriver, dummyNewModeNr); {$ifdef logging} logln('Entering mode '+strf(intCurrentMode)+' of driver '+strf(intCurrentDriver)); {$endif logging} -- cgit v1.2.1