X-Git-Url: https://cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fcwindowtool.C;h=65cb61097ef96b480fbc9c06884fe5d734d69a97;hb=9fed7535470aa37781733db836068da3b4c17a0d;hp=2ef53fa9041d13b51f35f4af6b5ddd748775fe12;hpb=f7444a58936e4ab8fa7e7062281567cbc74e175f;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/cwindowtool.C b/cinelerra-5.1/cinelerra/cwindowtool.C index 2ef53fa9..65cb6109 100644 --- a/cinelerra-5.1/cinelerra/cwindowtool.C +++ b/cinelerra-5.1/cinelerra/cwindowtool.C @@ -1536,10 +1536,15 @@ int CWindowMaskName::handle_event() void CWindowMaskName::update_items(MaskAuto *keyframe) { mask_items.remove_all_objects(); - int sz = keyframe->masks.size(); - for( int i=0; imasks.get(i); - char *text = sub_mask->name; + int sz = !keyframe ? 0 : keyframe->masks.size(); + for( int i=0; imasks.get(i); + strncpy(text, sub_mask->name, sizeof(text)); + } + else + sprintf(text, "%d", i); mask_items.append(new BC_ListBoxItem(text)); } update_list(&mask_items); @@ -2386,36 +2391,29 @@ void CWindowMaskGUI::update() //printf("CWindowMaskGUI::update 1\n"); get_keyframe(track, autos, keyframe, mask, point, 0); - double position = mwindow->edl->local_session->get_selectionstart(1); - position = mwindow->edl->align_to_frame(position, 0); - if(track) - { + name->update_items(keyframe); + const char *text = ""; + int sz = !keyframe ? 0 : keyframe->masks.size(); + int k = mwindow->edl->session->cwindow_mask; + if( k >= 0 && k < sz ) + text = keyframe->masks[k]->name; + name->update(text); + update_buttons(keyframe, k); + if( point ) { + x->update(point->x); + y->update(point->y); + } + if( track ) { + double position = mwindow->edl->local_session->get_selectionstart(1); int64_t position_i = track->to_units(position, 0); - - if(point) { - x->update(point->x); - y->update(point->y); - } - - if(mask) { - int k = mwindow->edl->session->cwindow_mask; - update_buttons(keyframe, k); - feather->update(autos->get_feather(position_i, k, PLAY_FORWARD)); - fade->update(autos->get_fader(position_i, k, PLAY_FORWARD)); - apply_before_plugins->update(keyframe->apply_before_plugins); - disable_opengl_masking->update(keyframe->disable_opengl_masking); - } + feather->update(autos->get_feather(position_i, k, PLAY_FORWARD)); + fade->update(autos->get_fader(position_i, k, PLAY_FORWARD)); } - - active_point->update((int64_t)mwindow->cwindow->gui->affected_point); - const char *text = ""; if( keyframe ) { - name->update_items(keyframe); - int k = mwindow->edl->session->cwindow_mask; - if( k >= 0 && k < keyframe->masks.size() ) - text = keyframe->masks[k]->name; + apply_before_plugins->update(keyframe->apply_before_plugins); + disable_opengl_masking->update(keyframe->disable_opengl_masking); } - name->update(text); + active_point->update((int64_t)mwindow->cwindow->gui->affected_point); } void CWindowMaskGUI::handle_event()