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:
authorJulian Eisel <eiseljulian@gmail.com>2016-12-08 13:53:48 +0300
committerJulian Eisel <eiseljulian@gmail.com>2016-12-08 14:21:57 +0300
commitd5708fdad6a09e1c3b8c6f68e9e852ae673705f2 (patch)
tree3a68346367f1830f09f071c807665a465534c6be /source/blender/editors
parent62a2ed97bacc3bc891a0ea3d3ab730d8253ab366 (diff)
Fix expanding enum property in sub-layout of pie menus
//ui_item_enum_expand// function replaces all pie menu's sub-layouts with radial layout. It should replace only root layout. To reproduce the issue paste the code in Blender's text editor and press Run Script button. ``` import bpy class VIEW3D_PIE_template(bpy.types.Menu): bl_label = "Select Mode" def draw(self, context): layout = self.layout.menu_pie() layout.column().prop( context.scene.render.image_settings, "color_mode", expand=True) def register(): bpy.utils.register_class(VIEW3D_PIE_template) def unregister(): bpy.utils.unregister_class(VIEW3D_PIE_template) if __name__ == "__main__": register() bpy.ops.wm.call_menu_pie(name="VIEW3D_PIE_template") ``` Differential Revision: https://developer.blender.org/D2394 by @raa
Diffstat (limited to 'source/blender/editors')
-rw-r--r--source/blender/editors/interface/interface_layout.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c
index b128bf47b5f..342c7182453 100644
--- a/source/blender/editors/interface/interface_layout.c
+++ b/source/blender/editors/interface/interface_layout.c
@@ -570,8 +570,13 @@ static void ui_item_enum_expand(
/* we dont want nested rows, cols in menus */
if (radial) {
- layout_radial = uiLayoutRadial(layout);
- UI_block_layout_set_current(block, layout_radial);
+ if (layout->root->layout == layout) {
+ layout_radial = uiLayoutRadial(layout);
+ UI_block_layout_set_current(block, layout_radial);
+ }
+ else {
+ UI_block_layout_set_current(block, layout);
+ }
}
else if (layout->root->type != UI_LAYOUT_MENU) {
UI_block_layout_set_current(block, ui_item_local_sublayout(layout, layout, 1));