def overwrite_move_release(x, y, frame, state): """ User releases mouse when in overwrite move mode. """ global edit_data, drag_disabled if editorstate.overwrite_mode_box == True: boxmove.mouse_release(x, y, frame) edit_data = None return if drag_disabled: drag_disabled = False edit_data = None return if edit_data == None: return press_frame = edit_data["press_frame"] first_clip_start = edit_data["first_clip_start"] track = edit_data["track_object"] to_track = edit_data["to_track_object"] over_in = first_clip_start + (frame - press_frame) over_out = over_in + edit_data["moving_length"] # Check locking of target track. Source track checked at press event. if _track_is_locked(to_track): edit_data = None tlinewidgets.set_edit_mode_data(edit_data) updater.repaint_tline() return # Moved clips are completely out of displayable track area, can't do edit. if over_out < 1: edit_data = None return # Autocorrect moved clips to be fully on displayable track area if over_in < 0: over_out += abs(over_in) over_in = 0 # Collect data for edit action data = {"track":track, "over_in":over_in, "over_out":over_out, "selected_range_in":selected_range_in, "selected_range_out":selected_range_out, "move_edit_done_func":move_edit_done} # Do edit. Use different actions depending on if # clip is moved to a differrent track if track == to_track: # Do edit if were moving and clips have moved if (edit_data["move_on"] == True and (press_frame != frame)): clear_selected_clips() action = edit.overwrite_move_action(data) action.do_edit() PLAYER().seek_frame(over_in, False) else: _move_mode_released() else: # Moved to different track data["to_track"] = to_track clear_selected_clips() action = edit.multitrack_overwrite_move_action(data) action.do_edit() PLAYER().seek_frame(over_in, False) # Clear edit mode data edit_data = None tlinewidgets.set_edit_mode_data(edit_data) updater.repaint_tline()