summaryrefslogtreecommitdiff
path: root/src/corelib
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib')
-rw-r--r--src/corelib/gfx_popupwindow.pas5
-rw-r--r--src/corelib/x11/gfx_x11.pas21
2 files changed, 16 insertions, 10 deletions
diff --git a/src/corelib/gfx_popupwindow.pas b/src/corelib/gfx_popupwindow.pas
index cf75b5da..def8e47c 100644
--- a/src/corelib/gfx_popupwindow.pas
+++ b/src/corelib/gfx_popupwindow.pas
@@ -64,7 +64,7 @@ implementation
type
- // Popup window linked list. Maybe we can implemnt it via a TList as well.
+ // Popup window linked list. Maybe we can implement it via a TList as well.
PPopupListRec = ^PopupListRec;
PopupListRec = record
Widget: TfpgPopupWindow;
@@ -83,6 +83,9 @@ procedure ClosePopups;
begin
while uFirstPopup <> nil do
begin
+ {$IFDEF DEBUG}
+ writeln('...closing ', uFirstPopup^.Widget.Name);
+ {$ENDIF}
TfpgPopupWindow(uFirstPopup^.Widget).Close;
end;
end;
diff --git a/src/corelib/x11/gfx_x11.pas b/src/corelib/x11/gfx_x11.pas
index ed9e93c5..60bba3d1 100644
--- a/src/corelib/x11/gfx_x11.pas
+++ b/src/corelib/x11/gfx_x11.pas
@@ -935,17 +935,20 @@ begin
}
{ This closes popup windows when you click the mouse elsewhere }
- if (Popup <> nil) then
+ if ev._type = X.ButtonPress then
begin
- ew := w;
- while (w <> nil) and (w.Parent <> nil) do
- w := TfpgWindowImpl(w.Parent);
-
- if (w <> nil) and (PopupListFind(w.WinHandle) = nil) and
- (not PopupDontCloseWidget(TfpgWidget(ew))) then
+ if (Popup <> nil) then
begin
- ClosePopups;
- fpgPostMessage(nil, ew, FPGM_POPUPCLOSE);
+ ew := w;
+ while (w <> nil) and (w.Parent <> nil) do
+ w := TfpgWindowImpl(w.Parent);
+
+ if (w <> nil) and (PopupListFind(w.WinHandle) = nil) and
+ (not PopupDontCloseWidget(TfpgWidget(ew))) then
+ begin
+ ClosePopups;
+// fpgPostMessage(nil, ew, FPGM_POPUPCLOSE);
+ end;
end;
end;