https://git.reactos.org/?p=reactos.git;a=commitdiff;h=1928e170f269cd300ff86f...
commit 1928e170f269cd300ff86f022d03c356251f1f57 Author: Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org AuthorDate: Tue Dec 24 16:13:10 2019 +0100 Commit: Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org CommitDate: Tue Dec 24 16:13:10 2019 +0100
[BLUE] Fix a visual regression introduced in bfd8a848: Don't touch INBV when resetting internal screen state during driver loading. --- drivers/setup/blue/blue.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/drivers/setup/blue/blue.c b/drivers/setup/blue/blue.c index e9accab60e8..2558506fb53 100644 --- a/drivers/setup/blue/blue.c +++ b/drivers/setup/blue/blue.c @@ -279,9 +279,12 @@ ScrInbvCleanup(VOID) // HANDLE ThreadHandle;
// ResetDisplayParametersDeviceExtension = NULL; - InbvNotifyDisplayOwnershipLost(NULL); - ScrResetDisplayParametersEx(80, 50, FALSE); - // or InbvAcquireDisplayOwnership(); ? + if (ResetDisplayParametersDeviceExtension) + { + InbvNotifyDisplayOwnershipLost(NULL); + ScrResetDisplayParametersEx(80, 50, FALSE); + // or InbvAcquireDisplayOwnership(); ? + }
#if 0 // TODO: Find the best way to communicate the request. @@ -1323,9 +1326,10 @@ DriverEntry( Status = IoCreateSymbolicLink(&SymlinkName, &DeviceName); if (NT_SUCCESS(Status)) { - /* By default disable the screen */ - ResetDisplayParametersDeviceExtension = DeviceObject->DeviceExtension; + /* By default disable the screen (but don't touch INBV: ResetDisplayParametersDeviceExtension is still NULL) */ ScrResetScreen(DeviceObject->DeviceExtension, TRUE, FALSE); + /* Now set ResetDisplayParametersDeviceExtension to enable synchronizing with INBV */ + ResetDisplayParametersDeviceExtension = DeviceObject->DeviceExtension; DeviceObject->Flags &= ~DO_DEVICE_INITIALIZING; } else