summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
authordrewski207 <drewski207@ae50a9b5-8222-0410-bf8d-8a13f76226bf>2007-11-03 17:40:50 +0000
committerdrewski207 <drewski207@ae50a9b5-8222-0410-bf8d-8a13f76226bf>2007-11-03 17:40:50 +0000
commit224b0b1f552725154b4f86dd56d1962d000e83c3 (patch)
tree367d6687c954428fb9fd6d45e0862fb548956820 /src/gui
parent049a32a2d057917d26656d54f93673dd394e89df (diff)
downloadfpGUI-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.pas10
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;