fix [#26774] Grease Pencil error?
authorCampbell Barton <ideasman42@gmail.com>
Mon, 4 Apr 2011 09:22:06 +0000 (09:22 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Mon, 4 Apr 2011 09:22:06 +0000 (09:22 +0000)
own error with recent change to grease pencil.

source/blender/editors/gpencil/gpencil_buttons.c

index 8df89a29f281e74007d6091feb0ef4c0217f5674..67b732ffa5ed97afe2f4376942bfd874dce1a43d 100644 (file)
@@ -88,6 +88,14 @@ static void gp_ui_dellayer_cb (bContext *C, void *gpd, void *gpl)
        WM_event_add_notifier(C, NC_SCREEN|ND_GPENCIL|NA_EDITED, NULL); // XXX please work!
 }
 
+static void gp_ui_actlayer_cb (bContext *C, void *gpd, void *gpl)
+{
+       /* make sure the layer we want to remove is the active one */
+       gpencil_layer_setactive(gpd, gpl);
+
+       WM_event_add_notifier(C, NC_SCREEN|ND_GPENCIL|NA_EDITED, NULL); // XXX please work!
+}
+
 /* ------- Drawing Code ------- */
 
 /* draw the controls for a given layer */
@@ -122,9 +130,11 @@ static void gp_drawui_layer (uiLayout *layout, bGPdata *gpd, bGPDlayer *gpl, con
        subrow= uiLayoutRow(row, 0);
        
        /* active */
+       block= uiLayoutGetBlock(subrow);
        icon= (gpl->flag & GP_LAYER_ACTIVE) ? ICON_RADIOBUT_ON : ICON_RADIOBUT_OFF;
-       uiItemR(subrow, &ptr, "active", 0, "", icon);
-       
+       but= uiDefIconBut(block, BUT, 0, icon, 0, 0, UI_UNIT_X, UI_UNIT_Y, NULL, 0.0, 0.0, 0.0, 0.0, "Set active layer");
+       uiButSetFunc(but, gp_ui_activelayer_cb, gpd, gpl);
+
        /* locked */
        icon= (gpl->flag & GP_LAYER_LOCKED) ? ICON_LOCKED : ICON_UNLOCKED;
        uiItemR(subrow, &ptr, "lock", 0, "", icon);