int MWindowGUI::focus_in_event()
{
for(int i = 0; i < TOTAL_PANES; i++)
- if(pane[i]) pane[i]->cursor->focus_in_event();
+ if(pane[i] && pane[i]->cursor) pane[i]->cursor->focus_in_event();
return 1;
}
int MWindowGUI::focus_out_event()
{
for(int i = 0; i < TOTAL_PANES; i++)
- if(pane[i]) pane[i]->cursor->focus_out_event();
+ if(pane[i] && pane[i]->cursor) pane[i]->cursor->focus_out_event();
return 1;
}
{
for(int i = 0; i < TOTAL_PANES; i++)
{
- if(pane[i])
+ if(pane[i] && pane[i]->canvas)
{
pane[i]->canvas->deactivate();
}
{
for(int i = 0; i < TOTAL_PANES; i++)
{
- if(pane[i])
+ if(pane[i] && pane[i]->canvas)
{
pane[i]->canvas->draw_overlays();
if(flash_it) pane[i]->canvas->flash();
{
for(int i = 0; i < TOTAL_PANES; i++)
{
- if(pane[i])
+ if(pane[i] && pane[i]->canvas)
{
pane[i]->canvas->refresh_plugintoggles();
}
{
for(int i = 0; i < TOTAL_PANES; i++)
{
- if(pane[i])
+ if(pane[i] && pane[i]->canvas)
{
pane[i]->canvas->draw_indexes(indexable);
}
void MWindowGUI::draw_canvas(int redraw, int hide_cursor)
{
resource_thread->stop_draw(0);
-
- int mode = redraw ? FORCE_REDRAW : NORMAL_DRAW;
+ int mode = NORMAL_DRAW;
+ if( redraw ) {
+ mode = FORCE_REDRAW;
+ resource_pixmaps.remove_all_objects();
+ }
for(int i = 0; i < TOTAL_PANES; i++) {
if( pane[i] )
pane[i]->canvas->draw(mode, hide_cursor);
{
for(int i = 0; i < TOTAL_PANES; i++)
{
- if(pane[i])
+ if(pane[i] && pane[i]->canvas)
{
pane[i]->canvas->flash(flush);
}
{
for(int i = 0; i < TOTAL_PANES; i++)
{
- if(pane[i])
+ if(pane[i] && pane[i]->cursor)
{
pane[i]->cursor->draw(do_plugintoggles);
}
{
for(int i = 0; i < TOTAL_PANES; i++)
{
- if(pane[i])
+ if(pane[i] && pane[i]->cursor)
{
pane[i]->cursor->show(do_plugintoggles);
}
{
for(int i = 0; i < TOTAL_PANES; i++)
{
- if(pane[i])
+ if(pane[i] && pane[i]->cursor)
{
pane[i]->cursor->hide(do_plugintoggles);
}
{
for(int i = 0; i < TOTAL_PANES; i++)
{
- if(pane[i])
+ if(pane[i] && pane[i]->cursor)
{
pane[i]->cursor->update();
}
{
for(int i = 0; i < TOTAL_PANES; i++)
{
- if(pane[i])
+ if(pane[i] && pane[i]->cursor)
{
pane[i]->cursor->playing_back = value;
}
{
for(int i = 0; i < TOTAL_PANES; i++)
{
- if(pane[i])
+ if(pane[i] && pane[i]->canvas)
{
pane[i]->canvas->update_cursor(flush);
}
if( do_canvas != NO_DRAW && do_canvas != IGNORE_THREAD )
resource_thread->stop_draw(1);
+ if( do_canvas == FORCE_REDRAW )
+ resource_pixmaps.remove_all_objects();
+
for(int i = 0; i < TOTAL_PANES; i++)
{
if(pane[i]) pane[i]->update(scrollbars,
for(int i = 0; i < TOTAL_PANES; i++)
{
- if(pane[i]) pane[i]->canvas->drag_motion(
- &over_track,
- &over_edit,
- &over_pluginset,
- &over_plugin);
+ if(pane[i] && pane[i]->canvas)
+ pane[i]->canvas->drag_motion(&over_track, &over_edit,
+ &over_pluginset, &over_plugin);
}
if(mwindow->session->track_highlighted != over_track)
for(int i = 0; i < TOTAL_PANES; i++)
{
- if(pane[i]) result |= pane[i]->canvas->drag_stop(
- &redraw);
+ if(pane[i] && pane[i]->canvas)
+ result |= pane[i]->canvas->drag_stop(&redraw);
}
mwindow->edl->optimize();
int result = 0;
for(int i = 0; i < TOTAL_PANES; i++)
{
- if(pane[i]) result = pane[i]->cursor->repeat_event(duration);
+ if(pane[i] && pane[i]->cursor)
+ result = pane[i]->cursor->repeat_event(duration);
}
return result;
}