fix #30 - Show a dialog when there's an attempt to close a docked widget but that docking is locked

This commit is contained in:
Basile Burg 2020-04-23 19:36:54 +02:00
parent 3a5453f2c2
commit 014628276e
3 changed files with 6 additions and 4 deletions

View File

@ -3,6 +3,7 @@
## Enhancements ## Enhancements
- Dlang highlighter: added suport for HEREDOC strings literal of type `q"()"` `q"[]"`, `q"<>"` and `q"{}"`. "Custom" HEREDOC strings literal wont be handled as they might be removed as per DIP 1026. - Dlang highlighter: added suport for HEREDOC strings literal of type `q"()"` `q"[]"`, `q"<>"` and `q"{}"`. "Custom" HEREDOC strings literal wont be handled as they might be removed as per DIP 1026.
- Docking: added disalog to remind that docking is locked in certain scenarios. (#30)
- TODO list: a new option, _disableIfMoreFilesThan_, allows to disable auto refreshing of the list could be slow when the current project is huge. - TODO list: a new option, _disableIfMoreFilesThan_, allows to disable auto refreshing of the list could be slow when the current project is huge.
## Bugs fixed ## Bugs fixed
@ -14,7 +15,7 @@
## Other ## Other
- Toolchain: removed the background tool _dastworx_ and replaced it with a library called _libdexed-d_. - Toolchain: removed the background tool _dastworx_ and replaced it with a library called _libdexed-d_.
- Toolchain: ddemangle is not required anymore and is moved to _libdexed-d_. - Toolchain: ddemangle is not required anymore, demangling D names is nopw done in _libdexed-d_.
# v3.8.4 # v3.8.4

View File

@ -9,7 +9,6 @@ object DexedWidget: TDexedWidget
ClientWidth = 332 ClientWidth = 332
ShowHint = True ShowHint = True
ShowInTaskBar = stNever ShowInTaskBar = stNever
LCLVersion = '2.0.0.4'
object Back: TPanel object Back: TPanel
Left = 0 Left = 0
Height = 121 Height = 121

View File

@ -6,7 +6,7 @@ interface
uses uses
Classes, SysUtils, FileUtil, Forms, Controls, ExtCtrls, ActnList, Menus, Classes, SysUtils, FileUtil, Forms, Controls, ExtCtrls, ActnList, Menus,
AnchorDocking, u_interfaces, u_dsgncontrols, u_common; AnchorDocking, u_interfaces, u_dsgncontrols, u_common, u_dialogs;
type type
@ -188,7 +188,9 @@ begin
result := inherited; result := inherited;
if fIsDockable and (not DockMaster.AllowDragging) and not if fIsDockable and (not DockMaster.AllowDragging) and not
(DockMaster.GetAnchorSite(self).GetTopParent = DockMaster.GetAnchorSite(self)) then (DockMaster.GetAnchorSite(self).GetTopParent = DockMaster.GetAnchorSite(self)) then
result := false; begin
result := dlgYesNo('widgets are currently locked, close anyway ?') = mrYes;
end;
end; end;
function TDexedWidget.getIfModal: boolean; function TDexedWidget.getIfModal: boolean;