forked from bartvdbraak/blender
Freestyle: added more conditions to be able to switch to the line style texture properties context.
This commit is contained in:
parent
fd7f5c4230
commit
a6f92cd29a
@ -525,12 +525,20 @@ static int buttons_context_path_texture(ButsContextPath *path, ButsContextTextur
|
|||||||
static bool buttons_context_linestyle_pinnable(const bContext *C)
|
static bool buttons_context_linestyle_pinnable(const bContext *C)
|
||||||
{
|
{
|
||||||
Scene *scene = CTX_data_scene(C);
|
Scene *scene = CTX_data_scene(C);
|
||||||
|
SceneRenderLayer *actsrl;
|
||||||
|
FreestyleConfig *config;
|
||||||
SpaceButs *sbuts;
|
SpaceButs *sbuts;
|
||||||
|
|
||||||
/* if Freestyle is disabled in the scene */
|
/* if Freestyle is disabled in the scene */
|
||||||
if ((scene->r.mode & R_EDGE_FRS) == 0) {
|
if ((scene->r.mode & R_EDGE_FRS) == 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
/* if Freestyle is not in the Parameter Editor mode */
|
||||||
|
actsrl = BLI_findlink(&scene->r.layers, scene->r.actlay);
|
||||||
|
config = &actsrl->freestyleConfig;
|
||||||
|
if (config->mode != FREESTYLE_CONTROL_EDITOR_MODE) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
/* if the scene has already been pinned */
|
/* if the scene has already been pinned */
|
||||||
sbuts = CTX_wm_space_buts(C);
|
sbuts = CTX_wm_space_buts(C);
|
||||||
if (sbuts->pinid && sbuts->pinid == &scene->id) {
|
if (sbuts->pinid && sbuts->pinid == &scene->id) {
|
||||||
|
@ -61,6 +61,7 @@
|
|||||||
#include "BKE_paint.h"
|
#include "BKE_paint.h"
|
||||||
#include "BKE_particle.h"
|
#include "BKE_particle.h"
|
||||||
#include "BKE_scene.h"
|
#include "BKE_scene.h"
|
||||||
|
#include "BKE_freestyle.h"
|
||||||
|
|
||||||
#include "RNA_access.h"
|
#include "RNA_access.h"
|
||||||
|
|
||||||
@ -104,8 +105,23 @@ bool ED_texture_context_check_particles(const bContext *C)
|
|||||||
bool ED_texture_context_check_linestyle(const bContext *C)
|
bool ED_texture_context_check_linestyle(const bContext *C)
|
||||||
{
|
{
|
||||||
Scene *scene = CTX_data_scene(C);
|
Scene *scene = CTX_data_scene(C);
|
||||||
FreestyleLineStyle *ls = CTX_data_linestyle_from_scene(scene);
|
SceneRenderLayer *actsrl;
|
||||||
return (scene && (scene->r.mode & R_EDGE_FRS) && ls && (ls->flag & LS_TEXTURE));
|
FreestyleConfig *config;
|
||||||
|
FreestyleLineSet *lineset;
|
||||||
|
FreestyleLineStyle *linestyle;
|
||||||
|
|
||||||
|
if (scene && (scene->r.mode & R_EDGE_FRS)) {
|
||||||
|
actsrl = BLI_findlink(&scene->r.layers, scene->r.actlay);
|
||||||
|
config = &actsrl->freestyleConfig;
|
||||||
|
if (config->mode == FREESTYLE_CONTROL_EDITOR_MODE) {
|
||||||
|
lineset = BKE_freestyle_lineset_get_active(config);
|
||||||
|
if (lineset) {
|
||||||
|
linestyle = lineset->linestyle;
|
||||||
|
return linestyle && (linestyle->flag & LS_TEXTURE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void texture_context_check_modifier_foreach(void *userData, Object *UNUSED(ob), ModifierData *UNUSED(md),
|
static void texture_context_check_modifier_foreach(void *userData, Object *UNUSED(ob), ModifierData *UNUSED(md),
|
||||||
|
Loading…
Reference in New Issue
Block a user