Fix #22947: sample color tool not working in user preferences, was assuming the

color to be a property on an ID block. Note that sampling from another window
still does not work, only within the same window.
This commit is contained in:
Brecht Van Lommel 2010-09-23 20:26:03 +00:00
parent 1199551239
commit 63746ac4f7
5 changed files with 10 additions and 10 deletions

@ -377,7 +377,7 @@ static int add_driver_button_exec (bContext *C, wmOperator *op)
if (all)
index= -1;
if (ptr.data && prop && RNA_property_animateable(&ptr, prop)) {
if (ptr.id.data && ptr.data && prop && RNA_property_animateable(&ptr, prop)) {
path= RNA_path_from_ID_to_property(&ptr, prop);
if (path) {
@ -432,7 +432,7 @@ static int remove_driver_button_exec (bContext *C, wmOperator *op)
if (all)
index= -1;
if (ptr.data && prop) {
if (ptr.id.data && ptr.data && prop) {
path= RNA_path_from_ID_to_property(&ptr, prop);
success= ANIM_remove_driver(ptr.id.data, path, index, 0);
MEM_freeN(path);
@ -480,7 +480,7 @@ static int copy_driver_button_exec (bContext *C, wmOperator *op)
memset(&ptr, 0, sizeof(PointerRNA));
uiAnimContextProperty(C, &ptr, &prop, &index);
if (ptr.data && prop && RNA_property_animateable(&ptr, prop)) {
if (ptr.id.data && ptr.data && prop && RNA_property_animateable(&ptr, prop)) {
path= RNA_path_from_ID_to_property(&ptr, prop);
if (path) {
@ -524,7 +524,7 @@ static int paste_driver_button_exec (bContext *C, wmOperator *op)
memset(&ptr, 0, sizeof(PointerRNA));
uiAnimContextProperty(C, &ptr, &prop, &index);
if (ptr.data && prop && RNA_property_animateable(&ptr, prop)) {
if (ptr.id.data && ptr.data && prop && RNA_property_animateable(&ptr, prop)) {
path= RNA_path_from_ID_to_property(&ptr, prop);
if (path) {

@ -1364,7 +1364,7 @@ static int insert_key_button_exec (bContext *C, wmOperator *op)
memset(&ptr, 0, sizeof(PointerRNA));
uiAnimContextProperty(C, &ptr, &prop, &index);
if ((ptr.data && prop) && RNA_property_animateable(&ptr, prop)) {
if ((ptr.id.data && ptr.data && prop) && RNA_property_animateable(&ptr, prop)) {
path= RNA_path_from_ID_to_property(&ptr, prop);
if (path) {
@ -1448,7 +1448,7 @@ static int delete_key_button_exec (bContext *C, wmOperator *op)
memset(&ptr, 0, sizeof(PointerRNA));
uiAnimContextProperty(C, &ptr, &prop, &index);
if (ptr.data && prop) {
if (ptr.id.data && ptr.data && prop) {
path= RNA_path_from_ID_to_property(&ptr, prop);
if (path) {

@ -326,7 +326,7 @@ static int add_keyingset_button_exec (bContext *C, wmOperator *op)
uiAnimContextProperty(C, &ptr, &prop, &index);
/* check if property is able to be added */
if (ptr.data && prop && RNA_property_animateable(&ptr, prop)) {
if (ptr.id.data && ptr.data && prop && RNA_property_animateable(&ptr, prop)) {
path= RNA_path_from_ID_to_property(&ptr, prop);
if (path) {
@ -411,7 +411,7 @@ static int remove_keyingset_button_exec (bContext *C, wmOperator *op)
memset(&ptr, 0, sizeof(PointerRNA));
uiAnimContextProperty(C, &ptr, &prop, &index);
if (ptr.data && prop) {
if (ptr.id.data && ptr.data && prop) {
path= RNA_path_from_ID_to_property(&ptr, prop);
if (path) {

@ -127,7 +127,7 @@ void uiAnimContextProperty(const bContext *C, struct PointerRNA *ptr, struct Pro
if(ar) {
for(block=ar->uiblocks.first; block; block=block->next) {
for(but=block->buttons.first; but; but= but->next) {
if((but->active || but->flag & UI_BUT_LAST_ACTIVE) && but->rnapoin.id.data) {
if((but->active || but->flag & UI_BUT_LAST_ACTIVE) && but->rnapoin.data) {
*ptr= but->rnapoin;
*prop= but->rnaprop;
*index= but->rnaindex;

@ -230,7 +230,7 @@ static int copy_data_path_button_exec(bContext *C, wmOperator *op)
/* try to create driver using property retrieved from UI */
uiAnimContextProperty(C, &ptr, &prop, &index);
if (ptr.data && prop) {
if (ptr.id.data && ptr.data && prop) {
path= RNA_path_from_ID_to_property(&ptr, prop);
if (path) {