Ignore:
Timestamp:
Dec 28, 2023, 3:58:08 AM (20 months ago)
Author:
ataylor
Message:

Add system modal handling logic to TForm class and update NewView.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NewView/MainForm.pas

    r489 r492  
    520520    Procedure DoFind( FindOrigin: TFindOrigin );
    521521
     522    // ALT 2023-12-24
     523    Procedure CheckSetSysModal(FormWindow: TForm);
     524    Procedure CheckUnsetSysModal;
     525
    522526    // Bookmarks ------------------------------------------
    523527
     
    37363740
    37373741  // [20231023 ALT] Restore any previous system-modal window state
     3742  {
    37383743  if g_LastSysModalWindow <> NULLHANDLE then
    37393744  begin
    37403745    WinSetSysModalWindow( HWND_DESKTOP, g_LastSysModalWindow );
    37413746  end;
     3747  }
     3748  CheckUnsetSysModal;
    37423749
    37433750  // TODO rbri maybe we have to do this
     
    43634370  StartingUp := false;
    43644371
    4365   // ALT 20231023 handle system modal owner
     4372  // [ALT 20231023] handle system modal owner
    43664373  g_LastSysModalWindow := WinQuerySysModalWindow( HWND_DESKTOP );
     4374  {
    43674375  if g_LastSysModalWindow <> NULLHANDLE then
    43684376  begin
    43694377    WinSetSysModalWindow( HWND_DESKTOP, Frame.Handle );
    43704378  end;
     4379  }
     4380  // [ALT 2023-12-26] move above to procedure
     4381  CheckSetSysModal(Self);
    43714382
    43724383  LogEvent(LogStartup, 'RUN PROGRAM');
     
    46904701    EndUpdate;
    46914702  end;
     4703//  CheckSetSysModal(InformationForm);
    46924704  InformationForm.ShowModal;
     4705//  CheckSetSysModal(Self);
    46934706End;
    46944707
     
    51525165  end;
    51535166
     5167  // [ALT 2023-12-26] Disable certain items when running sysmodal
     5168  if g_LastSysModalWindow <> NULLHANDLE then
     5169  begin
     5170    OpenMI.Enabled := false;
     5171    OpenSpecialMI.Enabled := false;
     5172    FileSaveAsMI.Enabled := false;
     5173    PrintMI.Enabled := false;
     5174//    FileInformationMI.Enabled := false;
     5175    SaveAsIPFMI.Enabled := false;
     5176    EditGlobalSearchMI.Enabled := false;
     5177    GlobalSearchMI.Enabled := false;
     5178    AddNoteMI.Enabled := false;
     5179    DebugSaveLanguageFileMI.Enabled := false;
     5180    DebugLoadLanguageMI.Enabled := false;
     5181
     5182    Coolbar.Sections[ ciOpen ].Disabled := true;
     5183    Coolbar.Sections[ ciPrint ].Disabled := true;
     5184    Coolbar.Sections[ ciAddNote ].Disabled := true;
     5185  end;
    51545186
    51555187end;
     
    62016233begin
    62026234  NoteSelected:= NotesListBox.ItemIndex <> -1;
    6203   EditNoteButton.Enabled:= NoteSelected;
    62046235  GotoNoteButton.Enabled:= NoteSelected;
    6205   DeleteNoteButton.Enabled:= NoteSelected;
    6206   AddNoteButton.Enabled := CurrentOpenFiles.Count > 0;
     6236  if g_LastSysModalWindow <> NULLHANDLE then
     6237  begin
     6238    AddNoteButton.Enabled := false;
     6239    EditNoteButton.Enabled := false;
     6240    DeleteNoteButton.Enabled := false;
     6241  end
     6242  else
     6243  begin
     6244    EditNoteButton.Enabled:= NoteSelected;
     6245    DeleteNoteButton.Enabled:= NoteSelected;
     6246    AddNoteButton.Enabled := CurrentOpenFiles.Count > 0;
     6247  end;
    62076248end;
    62086249
     
    71767217end;
    71777218
     7219
     7220Procedure TMainForm.CheckSetSysModal(FormWindow: TForm);
     7221begin
     7222  // Override any existing system-modal state
     7223  if g_LastSysModalWindow <> NULLHANDLE then
     7224  begin
     7225    WinSetSysModalWindow( HWND_DESKTOP, FormWindow.Frame.Handle );
     7226  end;
     7227end;
     7228
     7229
     7230Procedure TMainForm.CheckUnsetSysModal;
     7231begin
     7232  // Restore any previous system-modal window state
     7233  if g_LastSysModalWindow <> NULLHANDLE then
     7234  begin
     7235    WinSetSysModalWindow( HWND_DESKTOP, g_LastSysModalWindow );
     7236  end;
     7237end;
     7238
    71787239Initialization
    71797240  RegisterClasses ([TMainForm, TSplitBar,
Note: See TracChangeset for help on using the changeset viewer.