diff --git a/flutter/lib/common/widgets/toolbar.dart b/flutter/lib/common/widgets/toolbar.dart index 4c739468c..a3b67b752 100644 --- a/flutter/lib/common/widgets/toolbar.dart +++ b/flutter/lib/common/widgets/toolbar.dart @@ -594,7 +594,8 @@ List toolbarPrivacyMode( final implKey = (privacyModeImpls[0] as List)[0] as String; return [ getDefaultMenu((sid, opt) async { - bind.sessionTogglePrivacyMode(sessionId: sid, implKey: implKey); + bind.sessionTogglePrivacyMode( + sessionId: sid, implKey: implKey, on: privacyModeState.isEmpty); togglePrivacyModeTime = DateTime.now(); }) ]; @@ -609,7 +610,7 @@ List toolbarPrivacyMode( if (value == null) return; togglePrivacyModeTime = DateTime.now(); bind.sessionTogglePrivacyMode( - sessionId: sessionId, implKey: implKey); + sessionId: sessionId, implKey: implKey, on: value); }); }).toList(); } diff --git a/flutter/lib/desktop/widgets/remote_toolbar.dart b/flutter/lib/desktop/widgets/remote_toolbar.dart index ed399651f..271879428 100644 --- a/flutter/lib/desktop/widgets/remote_toolbar.dart +++ b/flutter/lib/desktop/widgets/remote_toolbar.dart @@ -1071,11 +1071,11 @@ class _DisplayMenuState extends State<_DisplayMenu> { ffi: widget.ffi, child: Text(translate('Privacy Mode')), menuChildren: privacyModeList - .map((e) => Obx(() => CkbMenuButton( + .map((e) => CkbMenuButton( value: e.value, onChanged: e.onChanged, child: e.child, - ffi: ffi))) + ffi: ffi)) .toList()), ]); } diff --git a/src/flutter_ffi.rs b/src/flutter_ffi.rs index 907e95295..761d0d438 100644 --- a/src/flutter_ffi.rs +++ b/src/flutter_ffi.rs @@ -224,9 +224,9 @@ pub fn session_toggle_option(session_id: SessionID, value: String) { } } -pub fn session_toggle_privacy_mode(session_id: SessionID, impl_key: String) { +pub fn session_toggle_privacy_mode(session_id: SessionID, impl_key: String, on: bool) { if let Some(session) = sessions::get_session_by_session_id(&session_id) { - session.toggle_privacy_mode(impl_key); + session.toggle_privacy_mode(impl_key, on); } } diff --git a/src/ui_session_interface.rs b/src/ui_session_interface.rs index 8cf3b38b1..bc44161ab 100644 --- a/src/ui_session_interface.rs +++ b/src/ui_session_interface.rs @@ -317,11 +317,11 @@ impl Session { } } - pub fn toggle_privacy_mode(&self, impl_key: String) { + pub fn toggle_privacy_mode(&self, impl_key: String, on: bool) { let mut misc = Misc::new(); misc.set_toggle_privacy_mode(TogglePrivacyMode { impl_key, - on: !self.lc.read().unwrap().get_toggle_option("privacy-mode"), + on, ..Default::default() }); let mut msg_out = Message::new();