diff --git a/pitivi/editorstate.py b/pitivi/editorstate.py index 963a66f2c30de52da077aef9854f274180af6bee..21c9735b82ec44fa5db683c47ae0a34983155f57 100644 --- a/pitivi/editorstate.py +++ b/pitivi/editorstate.py @@ -44,9 +44,6 @@ class EditorState(Loggable): self._editor_state = {} self.__state_saving_handle = 0 - self.project_manager.connect("new-project-loaded", - self._new_project_loaded_cb) - def get_value(self, key): """Get a value from the loaded editor state.""" return self._editor_state.get(key) @@ -65,7 +62,7 @@ class EditorState(Loggable): self.__state_saving_handle = 0 self.save_editor_state() - def _new_project_loaded_cb(self, project_manager, project): + def set_project(self, project): self.project = project self.conf_file_path = os.path.join(self.conf_folder_path, self.project.get_project_id() + ".conf") self.load_editor_state() diff --git a/pitivi/timeline/timeline.py b/pitivi/timeline/timeline.py index 100b2433756b9f8a0c4514462945a16d2724e4a5..b928453399205a2bfb845e7fed4aa1e27da674f6 100644 --- a/pitivi/timeline/timeline.py +++ b/pitivi/timeline/timeline.py @@ -1584,11 +1584,16 @@ class TimelineContainer(Gtk.Grid, Zoomable, Loggable): self.timeline.update_snapping_distance() self.markers.markers_container = project.ges_timeline.get_marker_list("markers") + self.editor_state.set_project(project) + self.restore_state() def restore_state(self): if self.state_restored: return + if not self._project or not self.get_realized(): + return + # One attempt is enough. self.state_restored = True @@ -1614,6 +1619,10 @@ class TimelineContainer(Gtk.Grid, Zoomable, Loggable): # TODO: Figure out why self.scroll_to_pixel(scroll) which calls _scroll_to_pixel directly does not work. GLib.idle_add(self._scroll_to_pixel, scroll) + def do_realize(self): + Gtk.Widget.do_realize(self) + self.restore_state() + def update_actions(self): selection = self.timeline.selection selection_non_empty = bool(selection)