summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/graph/src/inc/modes.inc7
1 files changed, 6 insertions, 1 deletions
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}