From ee399ebccffe340829dbd991e5032acb8c8f8579 Mon Sep 17 00:00:00 2001 From: Smit Barmase Date: Wed, 17 Sep 2025 03:49:47 +0530 Subject: [PATCH] macOS: Make it easier to debug NSAutoFillHeuristicControllerEnabled (#38285) Uses `setObject` instead of `registerDefaults`, so that it can be read with `defaults read dev.zed.Zed`. Still can be overrided. Release Notes: - N/A --- crates/gpui/src/platform/mac/platform.rs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/crates/gpui/src/platform/mac/platform.rs b/crates/gpui/src/platform/mac/platform.rs index 9bb1993f13b0444d7bec2721f160b81509629106..9909c78c472a17e683380be71b65484800c0fa76 100644 --- a/crates/gpui/src/platform/mac/platform.rs +++ b/crates/gpui/src/platform/mac/platform.rs @@ -1363,19 +1363,17 @@ unsafe fn get_mac_platform(object: &mut Object) -> &MacPlatform { extern "C" fn will_finish_launching(_this: &mut Object, _: Sel, _: id) { unsafe { let user_defaults: id = msg_send![class!(NSUserDefaults), standardUserDefaults]; - let defaults_dict: id = msg_send![class!(NSMutableDictionary), dictionary]; // The autofill heuristic controller causes slowdown and high CPU usage. // We don't know exactly why. This disables the full heuristic controller. // // Adapted from: https://github.com/ghostty-org/ghostty/pull/8625 - let false_value: id = msg_send![class!(NSNumber), numberWithBool:false]; - let _: () = msg_send![defaults_dict, - setObject: false_value - forKey: ns_string("NSAutoFillHeuristicControllerEnabled") - ]; - - let _: () = msg_send![user_defaults, registerDefaults:defaults_dict]; + let name = ns_string("NSAutoFillHeuristicControllerEnabled"); + let existing_value: id = msg_send![user_defaults, objectForKey: name]; + if existing_value == nil { + let false_value: id = msg_send![class!(NSNumber), numberWithBool:false]; + let _: () = msg_send![user_defaults, setObject: false_value forKey: name]; + } } }