Change summary
crates/auto_update/src/auto_update.rs | 4 ++--
crates/client/src/client.rs | 8 +++++---
crates/editor/src/blink_manager.rs | 9 +++------
3 files changed, 10 insertions(+), 11 deletions(-)
Detailed changes
@@ -63,10 +63,10 @@ pub fn init(http_client: Arc<dyn HttpClient>, server_url: String, cx: &mut AppCo
cx.observe_global::<Settings, _>(move |updater, cx| {
if cx.global::<Settings>().auto_update {
if update_subscription.is_none() {
- *(&mut update_subscription) = Some(updater.start_polling(cx))
+ update_subscription = Some(updater.start_polling(cx))
}
} else {
- (&mut update_subscription).take();
+ update_subscription.take();
}
})
.detach();
@@ -1649,11 +1649,13 @@ mod tests {
},
);
drop(subscription1);
- let _subscription2 =
- client.add_message_handler(model, move |_, _: TypedEnvelope<proto::Ping>, _, _| {
+ let _subscription2 = client.add_message_handler(
+ model.clone(),
+ move |_, _: TypedEnvelope<proto::Ping>, _, _| {
done_tx2.try_send(()).unwrap();
async { Ok(()) }
- });
+ },
+ );
server.send(proto::Ping {});
done_rx2.next().await.unwrap();
}
@@ -15,12 +15,9 @@ pub struct BlinkManager {
impl BlinkManager {
pub fn new(blink_interval: Duration, cx: &mut ModelContext<Self>) -> Self {
- let weak_handle = cx.weak_handle();
- cx.observe_global::<Settings, _>(move |_, cx| {
- if let Some(this) = weak_handle.upgrade(cx) {
- // Make sure we blink the cursors if the setting is re-enabled
- this.update(cx, |this, cx| this.blink_cursors(this.blink_epoch, cx));
- }
+ cx.observe_global::<Settings, _>(move |this, cx| {
+ // Make sure we blink the cursors if the setting is re-enabled
+ this.blink_cursors(this.blink_epoch, cx)
})
.detach();