a_clipboard_copy_selected ( vlp );
if (IS_VIK_AGGREGATE_LAYER(parent)) {
- if ( vik_aggregate_layer_delete ( parent, &iter ) )
- vik_layers_panel_emit_update ( vlp );
+
+ g_signal_emit ( G_OBJECT(vlp), layers_panel_signals[VLP_DELETE_LAYER_SIGNAL], 0 );
+
+ if ( vik_aggregate_layer_delete ( parent, &iter ) )
+ vik_layers_panel_emit_update ( vlp );
}
}
else
static void trw_layer_draw ( VikTrwLayer *l, gpointer data )
{
- // TODO: learn which highlight vtl in dp somehow or just ask vikwindow here,
- // then check if highlighted vtl and skip drawing if (highlight mode off)
- // as it will then get redrawn
- // may seem slightly inefficient - but for very large vtls, this should save redraws...
- trw_layer_draw_with_highlight ( l, data, FALSE ) ;
+ // If this layer is to be highlighted - then don't draw now - as it will be drawn later on in the specific highlight draw stage
+ // This may seem slightly inefficient to test each time for every layer
+ // but for a layer with *lots* of tracks & waypoints this can save some effort by not drawing the items twice
+ if ( vik_viewport_get_draw_highlight ( (VikViewport*)data ) &&
+ vik_window_get_selected_trw_layer ((VikWindow*)VIK_GTK_WINDOW_FROM_LAYER((VikLayer*)l)) == l )
+ return;
+ trw_layer_draw_with_highlight ( l, data, FALSE );
}
void vik_trw_layer_draw_highlight ( VikTrwLayer *vtl, VikViewport *vvp )