{"push_id":585401976,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"3886e458d04c5cac3244952050f4554aaa6e3a3f","before":"60e1edfdda56b8a034720d114e8b32b9a1b04f5c","commits":[{"sha":"3886e458d04c5cac3244952050f4554aaa6e3a3f","author":{"email":"17b9e1c64588c7fa6419b4d29dc1f4426279ba01@codeux.com","name":"Michael Morris"},"message":"Swizzle parts of NSUserDefaultsController\n\nOut-of-the-box NSUserDefaults does not communicate changes directly\nwith NSUserDefaultsController. Therefore, when manually setting a\nconfiguration option in Textual (maybe through setBool:forKey:), then\nit would register the defaults in NSUserDefaults, but UI elements would\nnot update behind it.\n\nTPCPreferencesUserDefaults now proxies all request to setObject:forKey:\nto TPCPreferencesUserDefaultsController so the UI can update when\nobserved keys are changed. However, because TPCPreferencesUserDefaults\nproxies setObject:forKey: elsewhere, if\nTPCPreferencesUserDefaultsController tried to call it, which it would\nunder normal conditions, it would introduce a loop.\n\nTherefore, I swizzled the method inside\nTPCPreferencesUserDefaultsController responsible for setting values to\ncall a secondary method on TPCPreferencesUserDefaults. The logic is the\nsame in the swizzled method as can be seen by using Hopper\nDisassembler.\n\nChanges of rejection from store behind this change: 10x normal levels","distinct":true,"url":"https://api.github.com/repos/Codeux-Software/Textual/commits/3886e458d04c5cac3244952050f4554aaa6e3a3f"}]}