fix mask vframe setup, add unshared vframe constructor
[goodguy/history.git] / cinelerra-5.1 / cinelerra / zwindow.C
index 29a28a1b22a52ba78162b5201622b0154c1f61f0..22c8250b78006ea5c1e31521fd1136d5e8e88221 100644 (file)
@@ -72,6 +72,7 @@ void Mixers::del_mixer(int idx)
 
 void Mixer::set_title(const char *tp)
 {
+       if( tp == title ) return;
        strncpy(title, tp, sizeof(title));
        title[sizeof(title)-1] = 0;
 }
@@ -221,6 +222,14 @@ void ZWindow::change_source(EDL *edl)
        }
 }
 
+void ZWindow::stop_playback()
+{
+       int locked = zgui->get_window_lock();
+       if( locked ) zgui->unlock_window();
+       zgui->playback_engine->interrupt_playback(1);
+       if( locked ) zgui->lock_window("ZWindow::stop_playback");
+}
+
 void ZWindow::issue_command(int command, int wait_tracking,
                int use_inout, int update_refresh, int toggle_audio)
 {
@@ -249,8 +258,9 @@ void ZWindow::set_title(const char *tp)
        char *cp = title, *ep = cp + sizeof(title)-1;
        cp += snprintf(title, ep-cp, _("Mixer %d"), idx);
        if( tp ) cp += snprintf(cp, ep-cp, ": %s", tp);
+       else tp = title;
        Mixer *mixer = mwindow->edl->mixers.get_mixer(idx);
-       if( mixer && tp != mixer->title ) mixer->set_title(tp);
+       if( mixer ) mixer->set_title(title);
 }
 
 void ZWindow::reposition(int x, int y, int w, int h)