Menu

#132 FileOptimizer: Failure to Remember/Restore User-set Window Position, Window Size, & Column Widths

16.x
open
nobody
2023-11-17
2023-11-17
hairycactus
No

I've been experiencing the below issues in FileOptimizer (FO) for all versions released since Nov 2022.

Observation:
At every run, FO fails to remember/ respect/ restore user-set coordinates for Window Size, Window Location, & Column Widths.

When the above are manually changed in the GUI:

  • FO correctly saves user-set coordinates in INI config file upon exit.
  • But at every next run, FO overwrites with default coordinates, so it always opens with the following behaviours:
    • Window Position: Random off-centre -- usually nearer to top right of screen
    • Window Size: Default (Width=1440 x Height=747)
    • Column Widths: Default (ColWidth=178)

If user specifies the coordinates by editing INI config file & sets the file to Read-only:

  • FO retains user-set coordinates in INI file.
  • But at every run, FO behaves like the aforementioned -- ie. random off-centre window position, default window size, default column widths.

Working Versions:

  • v16.00.2746 (09 Sep 2022) & older

Affected Versions:

  • v16.10.2762 (17 Nov 2022) -- Windows Dark mode, PersistentGrid etc introduced
  • v16.20.2771 (10 Jan 2023)
  • v16.30.2781 (05 May 2023)
  • v16.40.2781 (26 Oct 2023)

Build Tested:
FileOptimizer x64 (portable, extracted from FileOptimizerFull.7z.exe)

Program & INI File Location:
Non-system drive (eg. D:/Portable/FileOptimizer/), with all admin & access rights

FO's INI File Encoding:
UTF-8

OS: Windows 10 x64, Dark mode, English (US)
Screen: 1 only (laptop)
Display Resolution: 1920 x 1080 (recommended)
Scale & Layout: 125% (recommended)
GPU: NVIDIA, discrete


Window Position + Size & Column Width Coordinates in FileOptimizer64.ini config file:

v16.00.2746 (09 Sep 2022) & older:
As set by user & successfully restored/remembered by FO at every run:

    [frmMain]
    Left=816
    Top=504
    Width=1052
    Height=499
    WindowState=0
    DefaultMonitor=3
    Col0Width=517
    Col1Width=89
    Col2Width=129
    Col3Width=129
    Col4Width=155

    AlwaysOnTop=true
    Language=0

v16.10.2762 (17 Nov 2022) & newer:

FO ignores user-set coordinates & restores the below at every run -- just launch & exit FO w/o doing anything else.

  1. Window Position is random (ie. not consistent) from run to run.
  2. Window Size & Column Widths are consistent (always reverting to default values) -- regardless of what user has previously specified.
  3. Changing the values for PersistentGrid=false(default) & AlwaysOnTop=true (default: false) makes no difference in solving the above issue.

Note: If PersistentGrid=true: List the same contents (ie. selected input files) within file grid across run sessions

INI config values from 3 sample consecutive runs are tabulated below:-

[frmMain] Run 1 Run 2 Run 3
Left 224 32 96
Top 224 32 96
Width 1440 1440 1440
Height 747 747 747
WindowState 0 0 0
DefaultMonitor 3 3 3
Col0Width 714 714 714
Col1Width 178 178 178
Col2Width 178 178 178
Col3Width 178 178 178
Col4Width 178 178 178

Discussion

  • hairycactus

    hairycactus - 2023-11-17

    Additional Observations

    If I set LogLevel=4, there are no errors recorded in FileOptimizer (FO)'s log file (FileOptimizer64.log).


    Inspecting FO in Nirsoft's SimpleProgramDebugger (SPD)
    Run & stop FileOptimizer64.exe process from within SPD w/o doing anything else.

    Below are the main differences in the kinds of DLLs loaded by FO.

    v16.00.2746 (09 Sep 2022): OK

    • FO loads & unloads: C:\Windows\system32\d3d11.dll
    • Exception Code: None

    where: d3d11.dll = Direct3D 11 Runtime

    v16.10.2762 (17 Nov 2022) & newer: Affected
    FO loads & unloads a different set of DLLs:

    C:\Windows\System32\DriverStore\FileRepository\nvlt.inf_amd64_c1ac3d8ab8ef6f99\nvwgf2umx.dll

    C:\Windows\System32\DriverStore\FileRepository\nvlt.inf_amd64_c1ac3d8ab8ef6f99\nvldumdx.dll

    C:\Windows\SYSTEM32\d2d1.dll
    Exception Code: 0x0000071a

    where:
    d2d1.dll = Microsoft Direct2D Library

    nvldumdx.dll & nvd3dumx.dll = DirectX DDI & OpenGL ICD drivers for NVIDIA GPUs (for hardware acceleration)

    Exception Code: 0x0000071a
    Meaning: The remote procedure call (RPC) was cancelled.

     
  • hairycactus

    hairycactus - 2023-11-17

    The issue of non-persistent Window Position & Window Size across run sessions is likely related to the description posted by user @edwardtruong at discussion thread [10e412e233], but w/o much detail about his system set-up.

    As he further mentioned at post [10e412e233#55fa] (21 Feb 2023), his issue also started since FO v16.10.2762 (17 Nov 2022), while FO v16.00.2746 (09 Sep 2022) works OK.

    No mention was made about non-persistent Column Widths. Perhaps user didn't notice or mind.

     

    Related

    Discussion: 10e412e233
    Discussion: Size and position does not save upon closing app

  • hairycactus

    hairycactus - 2023-11-17

    Somewhat similar-sounding issue (?) -- but about FileOptimizer not remembering/ restoring PDF-related config settings specified by various users.

    • Ticket [#131] (10 Oct 2023)
    • Discussion Thread [14aab51d] (04 Jun 2018 - 18 Sep 2019)
    • Discussion Thread [36f3e6430a] (14 Jun 2021 - 18 Sep 2022)

    Solved: Discussion Post [913bc3fa#b336]

    Nikkho - 2018-02-13
    Finally was able to reproduce it. It happened when registry values were strings. It was definitively my fault, I missed emptying buffers before reading and thus, previous read was used.
    It is (hopefully fixed) in new EXE (12.40.2213).

     

    Related

    Discussion: 14aab51d
    Discussion: 36f3e6430a
    Discussion: Change default settings for all users
    Tickets: #131


Log in to post a comment.