diff options
author | drewski207 <drewski207@ae50a9b5-8222-0410-bf8d-8a13f76226bf> | 2007-11-03 17:40:50 +0000 |
---|---|---|
committer | drewski207 <drewski207@ae50a9b5-8222-0410-bf8d-8a13f76226bf> | 2007-11-03 17:40:50 +0000 |
commit | 224b0b1f552725154b4f86dd56d1962d000e83c3 (patch) | |
tree | 367d6687c954428fb9fd6d45e0862fb548956820 /src/gui | |
parent | 049a32a2d057917d26656d54f93673dd394e89df (diff) | |
download | fpGUI-224b0b1f552725154b4f86dd56d1962d000e83c3.tar.xz |
* Improved modal form in X11 to use net window hints
* Implemented NET_WM_PING so newer window managers can kill our process if it stops responding
* Changed how Modal form are stored. fpgApplication now keeps a stack/list of Modal Forms
* Added fpgApplication PushModalForm and PopModalForm
* Fixed a bug in WindowAddProtocol which caused a libc doublefree error
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/gui_form.pas | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/gui/gui_form.pas b/src/gui/gui_form.pas index 14291e15..8c1dd83d 100644 --- a/src/gui/gui_form.pas +++ b/src/gui/gui_form.pas @@ -43,7 +43,6 @@ type FOnShow: TNotifyEvent; procedure SetBackgroundColor(const AValue: TfpgColor); protected - FPrevModalForm: TfpgWindowBase; FModalResult: integer; FParentForm: TfpgForm; FWindowPosition: TWindowPosition; @@ -211,7 +210,6 @@ begin FMinWidth := 32; FMinHeight := 32; FModalResult := 0; - FPrevModalForm := nil; AfterCreate; end; @@ -229,8 +227,8 @@ end; function TfpgForm.ShowModal: integer; begin - FPrevModalForm := fpgApplication.TopModalForm; - fpgApplication.TopModalForm := self; + FWindowType := wtModalForm; + fpgApplication.PushModalForm(self); ModalResult := 0; Show; @@ -241,7 +239,7 @@ begin fpgWaitWindowMessage; until (ModalResult <> 0) or (not Visible); - fpgApplication.TopModalForm := FPrevModalForm; + fpgApplication.PopModalForm; Result := ModalResult; end; @@ -312,7 +310,7 @@ end; procedure TfpgForm.Hide; begin if (fpgApplication.TopModalForm = self) then - fpgApplication.TopModalForm := FPrevModalForm; + fpgApplication.PopModalForm; HandleHide; if ModalResult = 0 then ModalResult := -1; |