Flicking cursor after update
Posted: Mon Aug 03, 2020 10:14 am
After updating from
a Win 7 environment running TChromium 75.0.3770.100 in Delphi 10.3 Rio
to
a Win 10 environment running TChromium 83.5.0 in Delphi 10.4 Sydney
we experience a constantly flickering cursor. When the mouse hovers over almost any app, or the desktop or taskbar, the mouse flickers and the spinning wheel animation is visible almost 100% of the time (also flickering).
This is in VMWare environments. Disabling its mouse setting 'Gaming optimization' does not help.
We use a browser subprocess and initialize it from the main app with:
function InitializeTChromium : Boolean;
begin
Result := True; //Default true so application can always start
GlobalChromiumLoaded := False;
if (DirectoryExists('TTChromium') = True) then
begin
GlobalCEFApp := TCefApplication.Create;
GlobalChromiumLoaded := True;
GlobalCEFApp.DisableFeatures := 'NetworkService';
GlobalCEFApp.DisablePDFExtension := True;
GlobalCEFApp.DisableExtensions := True;
GlobalCEFApp.FlashEnabled := False;
GlobalCEFApp.FrameworkDirPath := 'TTChromium';
GlobalCEFApp.ResourcesDirPath := 'TTChromium';
GlobalCEFApp.LocalesDirPath := 'TTChromium\locales';
GlobalCEFApp.LogFile := 'TTChromium\TTChromiumDebug.log';
GlobalCEFApp.LogSeverity := LOGSEVERITY_ERROR;
GlobalCEFApp.BrowserSubprocessPath := 'TTChromium\TTChromiumBrowser.exe';
try
// Suppress dialog when files are missing:
GlobalCEFApp.ShowMessageDlg := False;
if GlobalCEFApp.StartMainProcess then
begin
GlobalCEFApp.ShowMessageDlg := True;
end
else
begin
GlobalChromiumLoaded := False;
Result := False; // Prevent subprocesses from doing another Application.run
end;
except
GlobalChromiumLoaded := False;
end;
end
else
begin
Result := True; // Just start the app if Chromium can't be loaded. Check GlobalChromiumLoaded
end;
end;
The subprocess starts fine. It just sits idle:
UChromium.InitGlobaalMapVars;
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.DisableFeatures := 'NetworkService';
GlobalCEFApp.DisablePDFExtension := True;
GlobalCEFApp.DisableExtensions := True;
GlobalCEFApp.FlashEnabled := False;
GlobalCEFApp.FrameworkDirPath := '.';
GlobalCEFApp.ResourcesDirPath := '.';
GlobalCEFApp.LocalesDirPath := '.\locales';
GlobalCEFApp.LogFile := '..\TTChromiumDebug.log';
GlobalCEFApp.SetCurrentDir := True;
GlobalCEFApp.OnProcessMessageReceived := UChromium.GlobalCEFApp_OnProcessMessageReceived; // Disabling this makes no difference
GlobalCEFApp.StartSubProcess;
GlobalCEFApp.Free;
GlobalCEFApp := nil;
Is there another setting we can try?
Thanks in advance
Jan
a Win 7 environment running TChromium 75.0.3770.100 in Delphi 10.3 Rio
to
a Win 10 environment running TChromium 83.5.0 in Delphi 10.4 Sydney
we experience a constantly flickering cursor. When the mouse hovers over almost any app, or the desktop or taskbar, the mouse flickers and the spinning wheel animation is visible almost 100% of the time (also flickering).
This is in VMWare environments. Disabling its mouse setting 'Gaming optimization' does not help.
We use a browser subprocess and initialize it from the main app with:
function InitializeTChromium : Boolean;
begin
Result := True; //Default true so application can always start
GlobalChromiumLoaded := False;
if (DirectoryExists('TTChromium') = True) then
begin
GlobalCEFApp := TCefApplication.Create;
GlobalChromiumLoaded := True;
GlobalCEFApp.DisableFeatures := 'NetworkService';
GlobalCEFApp.DisablePDFExtension := True;
GlobalCEFApp.DisableExtensions := True;
GlobalCEFApp.FlashEnabled := False;
GlobalCEFApp.FrameworkDirPath := 'TTChromium';
GlobalCEFApp.ResourcesDirPath := 'TTChromium';
GlobalCEFApp.LocalesDirPath := 'TTChromium\locales';
GlobalCEFApp.LogFile := 'TTChromium\TTChromiumDebug.log';
GlobalCEFApp.LogSeverity := LOGSEVERITY_ERROR;
GlobalCEFApp.BrowserSubprocessPath := 'TTChromium\TTChromiumBrowser.exe';
try
// Suppress dialog when files are missing:
GlobalCEFApp.ShowMessageDlg := False;
if GlobalCEFApp.StartMainProcess then
begin
GlobalCEFApp.ShowMessageDlg := True;
end
else
begin
GlobalChromiumLoaded := False;
Result := False; // Prevent subprocesses from doing another Application.run
end;
except
GlobalChromiumLoaded := False;
end;
end
else
begin
Result := True; // Just start the app if Chromium can't be loaded. Check GlobalChromiumLoaded
end;
end;
The subprocess starts fine. It just sits idle:
UChromium.InitGlobaalMapVars;
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.DisableFeatures := 'NetworkService';
GlobalCEFApp.DisablePDFExtension := True;
GlobalCEFApp.DisableExtensions := True;
GlobalCEFApp.FlashEnabled := False;
GlobalCEFApp.FrameworkDirPath := '.';
GlobalCEFApp.ResourcesDirPath := '.';
GlobalCEFApp.LocalesDirPath := '.\locales';
GlobalCEFApp.LogFile := '..\TTChromiumDebug.log';
GlobalCEFApp.SetCurrentDir := True;
GlobalCEFApp.OnProcessMessageReceived := UChromium.GlobalCEFApp_OnProcessMessageReceived; // Disabling this makes no difference
GlobalCEFApp.StartSubProcess;
GlobalCEFApp.Free;
GlobalCEFApp := nil;
Is there another setting we can try?
Thanks in advance
Jan