fix [#28786] Large enum lists display columns in inverted order (right to left)
authorCampbell Barton <ideasman42@gmail.com>
Sat, 1 Oct 2011 21:09:42 +0000 (21:09 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Sat, 1 Oct 2011 21:09:42 +0000 (21:09 +0000)
also cleared annoying intel c++ warnings.

CMakeLists.txt
source/blender/editors/interface/interface_regions.c
source/blender/makesrna/intern/rna_ID.c
source/blender/makesrna/intern/rna_internal.h

index 69d6bd5..d1070ba 100644 (file)
@@ -1293,6 +1293,10 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "Intel")
        ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_INVALID_OFFSETOF -Wno-invalid-offsetof)
        ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_SIGN_COMPARE -Wno-sign-compare)
 
        ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_INVALID_OFFSETOF -Wno-invalid-offsetof)
        ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_SIGN_COMPARE -Wno-sign-compare)
 
+       # disable numbered, false positives
+       set(C_WARNINGS "${C_WARNINGS} -wd188,186,144,913,556")
+       set(CXX_WARNINGS "${CXX_WARNINGS} -wd188,186,144,913,556")
+
 endif()
 
 # MSVC2010 fails to links C++ libs right
 endif()
 
 # MSVC2010 fails to links C++ libs right
index c898ba9..d29e597 100644 (file)
@@ -2308,7 +2308,6 @@ uiPopupBlockHandle *ui_popup_menu_create(bContext *C, ARegion *butregion, uiBut
        uiStyle *style= UI_GetStyle();
        uiPopupBlockHandle *handle;
        uiPopupMenu *pup;
        uiStyle *style= UI_GetStyle();
        uiPopupBlockHandle *handle;
        uiPopupMenu *pup;
-       
        pup= MEM_callocN(sizeof(uiPopupMenu), "menu dummy");
        pup->block= uiBeginBlock(C, NULL, "ui_button_menu_create", UI_EMBOSSP);
        pup->layout= uiBlockLayout(pup->block, UI_LAYOUT_VERTICAL, UI_LAYOUT_MENU, 0, 0, 200, 0, style);
        pup= MEM_callocN(sizeof(uiPopupMenu), "menu dummy");
        pup->block= uiBeginBlock(C, NULL, "ui_button_menu_create", UI_EMBOSSP);
        pup->layout= uiBlockLayout(pup->block, UI_LAYOUT_VERTICAL, UI_LAYOUT_MENU, 0, 0, 200, 0, style);
@@ -2323,6 +2322,14 @@ uiPopupBlockHandle *ui_popup_menu_create(bContext *C, ARegion *butregion, uiBut
                pup->popup= 1;
                pup->block->flag |= UI_BLOCK_NO_FLIP;
        }
                pup->popup= 1;
                pup->block->flag |= UI_BLOCK_NO_FLIP;
        }
+       else {
+               /* if this is an rna button then we can assume its an enum
+                * flipping enums is generally not good since the order can be
+                * important [#28786] */
+               if(but->rnaprop && RNA_property_type(but->rnaprop) == PROP_ENUM) {
+                       pup->block->flag |= UI_BLOCK_NO_FLIP;
+               }
+       }
 
        if(str) {
                /* menu is created from a string */
 
        if(str) {
                /* menu is created from a string */
index 3f8a310..ddd0fcc 100644 (file)
@@ -314,7 +314,7 @@ static int rna_IDPArray_length(PointerRNA *ptr)
        return prop->len;
 }
 
        return prop->len;
 }
 
-int rna_IDMaterials_assign_int(PointerRNA *ptr, int key, PointerRNA *assign_ptr)
+int rna_IDMaterials_assign_int(PointerRNA *ptr, int key, const PointerRNA *assign_ptr)
 {
        ID *id=           ptr->id.data;
        Material *mat_id= assign_ptr->id.data;
 {
        ID *id=           ptr->id.data;
        Material *mat_id= assign_ptr->id.data;
index aab7405..4cd4a2f 100644 (file)
@@ -383,7 +383,7 @@ struct MTex *rna_mtex_texture_slots_create(struct ID *self, struct bContext *C,
 void rna_mtex_texture_slots_clear(struct ID *self, struct bContext *C, struct ReportList *reports, int index);
 
 
 void rna_mtex_texture_slots_clear(struct ID *self, struct bContext *C, struct ReportList *reports, int index);
 
 
-int rna_IDMaterials_assign_int(struct PointerRNA *ptr, int key, struct PointerRNA *assign_ptr);
+int rna_IDMaterials_assign_int(struct PointerRNA *ptr, int key, const struct PointerRNA *assign_ptr);
 
 #endif /* RNA_INTERNAL_H */
 
 
 #endif /* RNA_INTERNAL_H */