Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntony Riakiotakis <kalast@gmail.com>2014-09-18 14:45:49 +0400
committerAntony Riakiotakis <kalast@gmail.com>2014-09-18 14:51:54 +0400
commit90c1afb02005671bb631c0fcb8b4981c3aa6e89e (patch)
tree3d5532d9e9f119bec1d72895773729401cd66a0e /source/blender/editors/interface/interface_handlers.c
parent44121442e97496963a13a80a3d96c24d8b38392f (diff)
Fix T41708, active palette indicator not refreshing when clicking
Issue, after a lot of blood sweat and tears, was found in ui_but_update_from_old_block, where we restore a button to its old values when possible. The problem here is that a1 and a2 are not really meant to store temporary variables, because they tend to get overriden and palette selection is one of those temporary states. Instead, we now store the position of each button in the palette in a2 and pointer to the palette in the customdata pointer of each button and use that to test if it's active. The positions won't change when clicking so we are guaranteed that the old button won't override the new one with garbage. It's still hacky but it is better than testing button types when copying old values.
Diffstat (limited to 'source/blender/editors/interface/interface_handlers.c')
-rw-r--r--source/blender/editors/interface/interface_handlers.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index 17f898b5ba3..d3c9ec1fafb 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -4318,9 +4318,7 @@ static int ui_do_but_COLOR(bContext *C, uiBut *but, uiHandleButtonData *data, co
else if ((int)(but->a1) == UI_PALETTE_COLOR &&
event->type == DELKEY && event->val == KM_PRESS)
{
- Scene *scene = CTX_data_scene(C);
- Paint *paint = BKE_paint_get_active(scene);
- Palette *palette = BKE_paint_palette(paint);
+ Palette *palette = but->rnapoin.id.data;
PaletteColor *color = but->rnapoin.data;
BKE_palette_color_remove(palette, color);