pub(super) fn leave_undo_block_internal(&self, project: Project, label: &ReaperStr) {
        self.require_main_thread();
        if !self.undo_block_is_active.get() {
            return;
        }
        self.medium_reaper()
            .undo_end_block_2(Proj(project.raw()), label, All);
        self.undo_block_is_active.replace(false);
    }
// Doesn't attempt to end a block if we are not in an undo block.
Doesn't attempt to end a block if we are not in an undo block.
Doesn ' t attempt to end a block if we are not in an undo block .
pub(super) fn leave_undo_block_internal(&self, project: Project, label: &ReaperStr) {
        self.require_main_thread();
        if !self.undo_block_is_active.get() {
            return;
        }
        self.medium_reaper()
            .undo_end_block_2(Proj(project.raw()), label, All);
        self.undo_block_is_active.replace(false);
    }
pub ( super ) fn leave_undo_block_internal ( & self , project : Project , label : & ReaperStr ) { self . require_main_thread ( ) ; if ! self . undo_block_is_active . get ( ) { return ; } self . medium_reaper ( ) . undo_end_block_2 ( Proj ( project . raw ( ) ) , label , All ) ; self . undo_block_is_active . replace ( false ) ; }
Doesn't attempt to end a block if we are not in an undo block.
Doesn ' t attempt to end a block if we are not in an undo block .
&self
project
Project
label
&ReaperStr
&self
project
Project
label
&ReaperStr