trust + fix redraw bug

This commit is contained in:
2025-12-17 01:16:28 -05:00
parent 70ac0fbcb2
commit 7e6369029f
7 changed files with 38 additions and 32 deletions

View File

@@ -1,5 +1,6 @@
use crate::prelude::*;
use arboard::Clipboard;
use iris_core::util::forget_mut;
use std::{marker::Sized, sync::Arc, time::Instant};
use winit::{
event::{Ime, WindowEvent},
@@ -52,10 +53,7 @@ pub trait HasUiState: Sized + 'static + HasUi {
fn ui_state(&mut self) -> &mut UiState<Self>;
fn ui_with_ui_state(&mut self) -> (&mut Ui<Self>, &mut UiState<Self>) {
// as long as you're not doing anything actually unhinged this should always work safely
(
unsafe { std::mem::transmute::<&mut Ui<Self>, &mut Ui<Self>>(self.ui()) },
self.ui_state(),
)
(unsafe { forget_mut(self.ui()) }, self.ui_state())
}
}