Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/elfmz/far2l.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelfmz <fenix1905@tut.by>2022-07-10 20:49:56 +0300
committerelfmz <fenix1905@tut.by>2022-07-10 20:49:56 +0300
commitb52873498f7865c65044d06d0b498ce5f997cbb2 (patch)
treeaffed494c9a494f62b3cfe782442bb332b258c2e
parentcafc2f8eed536c1914405e1211a9bd454fcec372 (diff)
fix multiple files attributes handling
-rw-r--r--far2l/src/setattr.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/far2l/src/setattr.cpp b/far2l/src/setattr.cpp
index 7574e6b6..da80ef15 100644
--- a/far2l/src/setattr.cpp
+++ b/far2l/src/setattr.cpp
@@ -638,10 +638,19 @@ static bool ApplyFileOwnerGroupIfChanged(DialogItemEx &EditItem, int (*ESetFN)(L
static void ApplyFSFileFlags(DialogItemEx *AttrDlg, const FARString &strSelName)
{
FSFileFlags FFFlags(strSelName.GetMB());
- FFFlags.SetImmutable(AttrDlg[SA_CHECKBOX_IMMUTABLE].Selected != 0);
- FFFlags.SetAppend(AttrDlg[SA_CHECKBOX_APPEND].Selected != 0);
+ if (AttrDlg[SA_CHECKBOX_IMMUTABLE].Selected == BSTATE_CHECKED
+ || AttrDlg[SA_CHECKBOX_IMMUTABLE].Selected == BSTATE_UNCHECKED) {
+ FFFlags.SetImmutable(AttrDlg[SA_CHECKBOX_IMMUTABLE].Selected != BSTATE_UNCHECKED);
+ }
+ if (AttrDlg[SA_CHECKBOX_APPEND].Selected == BSTATE_CHECKED
+ || AttrDlg[SA_CHECKBOX_APPEND].Selected == BSTATE_UNCHECKED) {
+ FFFlags.SetAppend(AttrDlg[SA_CHECKBOX_APPEND].Selected != BSTATE_UNCHECKED);
+ }
#if defined(__APPLE__) || defined(__FreeBSD__)
- FFFlags.SetHidden(AttrDlg[SA_CHECKBOX_HIDDEN].Selected != 0);
+ if (AttrDlg[SA_CHECKBOX_HIDDEN].Selected == BSTATE_CHECKED
+ || AttrDlg[SA_CHECKBOX_HIDDEN].Selected == BSTATE_UNCHECKED) {
+ FFFlags.SetHidden(AttrDlg[SA_CHECKBOX_HIDDEN].Selected != BSTATE_UNCHECKED);
+ }
#endif
FFFlags.Apply(strSelName.GetMB());
}