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:
authorCampbell Barton <ideasman42@gmail.com>2019-01-18 01:31:39 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-01-18 01:31:39 +0300
commit2757469824bbe98d943b42f57ff23782b97a3abf (patch)
tree8fcb55970a4e1e5b42605a245823076df1f3b195 /source/blender/editors
parent7a0cc955cc0b13e69412ff64b83bea1fcbbb9206 (diff)
UI: only reset eyedropper on cancel when set
Diffstat (limited to 'source/blender/editors')
-rw-r--r--source/blender/editors/interface/interface_eyedropper_color.c6
-rw-r--r--source/blender/editors/interface/interface_eyedropper_colorband.c9
-rw-r--r--source/blender/editors/interface/interface_eyedropper_depth.c6
3 files changed, 17 insertions, 4 deletions
diff --git a/source/blender/editors/interface/interface_eyedropper_color.c b/source/blender/editors/interface/interface_eyedropper_color.c
index 322d368dc27..9448585a563 100644
--- a/source/blender/editors/interface/interface_eyedropper_color.c
+++ b/source/blender/editors/interface/interface_eyedropper_color.c
@@ -71,6 +71,7 @@ typedef struct Eyedropper {
int index;
bool is_undo;
+ bool is_set;
float init_col[3]; /* for resetting on cancel */
bool accum_start; /* has mouse been pressed */
@@ -212,6 +213,7 @@ static void eyedropper_color_set(bContext *C, Eyedropper *eye, const float col[3
}
RNA_property_float_set_array(&eye->ptr, eye->prop, col_conv);
+ eye->is_set = true;
RNA_property_update(C, &eye->ptr, eye->prop);
}
@@ -245,7 +247,9 @@ static void eyedropper_color_sample(bContext *C, Eyedropper *eye, int mx, int my
static void eyedropper_cancel(bContext *C, wmOperator *op)
{
Eyedropper *eye = op->customdata;
- eyedropper_color_set(C, eye, eye->init_col);
+ if (eye->is_set) {
+ eyedropper_color_set(C, eye, eye->init_col);
+ }
eyedropper_exit(C, op);
}
diff --git a/source/blender/editors/interface/interface_eyedropper_colorband.c b/source/blender/editors/interface/interface_eyedropper_colorband.c
index dd4524c9066..805e1177d87 100644
--- a/source/blender/editors/interface/interface_eyedropper_colorband.c
+++ b/source/blender/editors/interface/interface_eyedropper_colorband.c
@@ -73,6 +73,7 @@ typedef struct EyedropperColorband {
PointerRNA ptr;
PropertyRNA *prop;
bool is_undo;
+ bool is_set;
} EyedropperColorband;
/* For user-data only. */
@@ -132,6 +133,7 @@ static void eyedropper_colorband_sample_point(bContext *C, EyedropperColorband *
eye->color_buffer_len += 1;
eye->last_x = mx;
eye->last_y = my;
+ eye->is_set = true;
}
}
@@ -172,14 +174,17 @@ static void eyedropper_colorband_apply(bContext *C, wmOperator *op)
/* Always filter, avoids noise in resulting color-band. */
bool filter_samples = true;
BKE_colorband_init_from_table_rgba(eye->color_band, eye->color_buffer, eye->color_buffer_len, filter_samples);
+ eye->is_set = true;
RNA_property_update(C, &eye->ptr, eye->prop);
}
static void eyedropper_colorband_cancel(bContext *C, wmOperator *op)
{
EyedropperColorband *eye = op->customdata;
- *eye->color_band = eye->init_color_band;
- RNA_property_update(C, &eye->ptr, eye->prop);
+ if (eye->is_set) {
+ *eye->color_band = eye->init_color_band;
+ RNA_property_update(C, &eye->ptr, eye->prop);
+ }
eyedropper_colorband_exit(C, op);
}
diff --git a/source/blender/editors/interface/interface_eyedropper_depth.c b/source/blender/editors/interface/interface_eyedropper_depth.c
index 4d0a95a6bbd..1634e7c6bd4 100644
--- a/source/blender/editors/interface/interface_eyedropper_depth.c
+++ b/source/blender/editors/interface/interface_eyedropper_depth.c
@@ -69,6 +69,7 @@ typedef struct DepthDropper {
PropertyRNA *prop;
bool is_undo;
+ bool is_set;
float init_depth; /* for resetting on cancel */
bool accum_start; /* has mouse been presed */
@@ -219,6 +220,7 @@ static void depthdropper_depth_sample_pt(bContext *C, DepthDropper *ddr, int mx,
static void depthdropper_depth_set(bContext *C, DepthDropper *ddr, const float depth)
{
RNA_property_float_set(&ddr->ptr, ddr->prop, depth);
+ ddr->is_set = true;
RNA_property_update(C, &ddr->ptr, ddr->prop);
}
@@ -255,7 +257,9 @@ static void depthdropper_depth_sample_accum(bContext *C, DepthDropper *ddr, int
static void depthdropper_cancel(bContext *C, wmOperator *op)
{
DepthDropper *ddr = op->customdata;
- depthdropper_depth_set(C, ddr, ddr->init_depth);
+ if (ddr->is_set) {
+ depthdropper_depth_set(C, ddr, ddr->init_depth);
+ }
depthdropper_exit(C, op);
}