Changeset 487 for trunk


Ignore:
Timestamp:
Oct 25, 2023, 12:46:56 AM (22 months ago)
Author:
ataylor
Message:

Automatically set system-modal state when called from a system modal window.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NewView/MainForm.pas

    r486 r487  
    899899  g_ExternalLinkKeepCurrent: boolean; // whether to keep current files open
    900900
     901  g_LastSysModalWindow: HWND;
     902
    901903//
    902904// ----------------------------------------------------------------------------------------
     
    37043706  Settings.MRUList.Destroy;
    37053707
     3708  // [20231023 ALT] Restore any previous system-modal window state
     3709  if g_LastSysModalWindow <> NULLHANDLE then
     3710  begin
     3711    WinSetSysModalWindow( HWND_DESKTOP, g_LastSysModalWindow );
     3712  end;
     3713
    37063714  // TODO rbri maybe we have to do this
    37073715  // Parameters.FilenamesParam.Destroy;
     
    39143922  LogEvent(LogStartup, 'Starting NewView: MainFormOnCreate');
    39153923
     3924  g_LastSysModalWindow := NULLHANDLE;
     3925
    39163926  Application.OnHint := OnHint;
    39173927
     
    41154125    WinSetOwner( Frame.Handle,
    41164126                 CmdLineParameters.getOwnerWindow );
    4117 {
    4118     // ALT 20230523 try to handle system modal owner
    4119     if WinQuerySysModelWindow( HWND_DESKTOP ) = CmdLineParameters.getOwnerWindow then
    4120     begin
    4121       WinSetWindowBits( FindTopFormWindow( MAIN_WINDOW_CLASS_NAME ),
    4122                         QWL_STYLE, WS_TOPMOST, WS_TOPMOST );
    4123     end;
    4124 }
    41254127  end;
    41264128
     
    43304332
    43314333  StartingUp := false;
     4334
     4335  // ALT 20231023 handle system modal owner
     4336  g_LastSysModalWindow := WinQuerySysModalWindow( HWND_DESKTOP );
     4337  if g_LastSysModalWindow <> NULLHANDLE then
     4338  begin
     4339    WinSetSysModalWindow( HWND_DESKTOP, Frame.Handle );
     4340  end;
    43324341
    43334342  LogEvent(LogStartup, 'RUN PROGRAM');
Note: See TracChangeset for help on using the changeset viewer.