Fix [#20711] Loop selection not working with Emulate MMB + Left mouse select

Emulate 3 button mouse is now disabled when Left mouse select is used, to
prevent keymap conflicts. Configs for single button macs etc we can do with
keymap presets.
This commit is contained in:
Matt Ebb 2010-04-01 02:28:08 +00:00
parent 8f5438dcd4
commit f49a82b03e
4 changed files with 14 additions and 25 deletions

@ -1280,8 +1280,8 @@ class USERPREF_PT_input(bpy.types.Panel):
sub.row().prop(inputs, "view_rotation", expand=True)
sub.label(text="Zoom Style:")
sub.row().prop(inputs, "viewport_zoom_style", expand=True)
if inputs.viewport_zoom_style == 'DOLLY':
sub.row().prop(inputs, "zoom_style", text="")
if inputs.zoom_style == 'DOLLY':
sub.row().prop(inputs, "zoom_axis", expand=True)
sub.prop(inputs, "invert_zoom_direction")
@ -1294,11 +1294,12 @@ class USERPREF_PT_input(bpy.types.Panel):
#sub.prop(view, "wheel_scroll_lines", text="Scroll Lines")
col.separator()
''' not implemented yet
sub = col.column()
sub.label(text="NDOF Device:")
sub.prop(inputs, "ndof_pan_speed", text="Pan Speed")
sub.prop(inputs, "ndof_rotate_speed", text="Orbit Speed")
'''
row.separator()

@ -45,7 +45,7 @@ struct Scene;
struct Main;
#define BLENDER_VERSION 252
#define BLENDER_SUBVERSION 2
#define BLENDER_SUBVERSION 3
#define BLENDER_MINVERSION 250
#define BLENDER_MINSUBVERSION 0

@ -1408,6 +1408,11 @@ void init_userdef_do_versions(void)
U.wmdrawmethod = USER_DRAW_AUTOMATIC;
}
if (G.main->versionfile < 252 || (G.main->versionfile == 252 && G.main->subversionfile < 3)) {
if (U.flag & USER_LMOUSESELECT)
U.flag &= ~USER_TWOBUTTONMOUSE;
}
/* GL Texture Garbage Collection (variable abused above!) */
if (U.textimeout == 0) {

@ -68,8 +68,7 @@ static void rna_userdef_mipmap_update(Main *bmain, Scene *scene, PointerRNA *ptr
rna_userdef_update(bmain, scene, ptr);
}
#if 0
static void rna_userdef_lmb_select_set(PointerRNA *ptr,int value)
static void rna_userdef_select_mouse_set(PointerRNA *ptr,int value)
{
UserDef *userdef = (UserDef*)ptr->data;
@ -81,22 +80,6 @@ static void rna_userdef_lmb_select_set(PointerRNA *ptr,int value)
userdef->flag &= ~USER_LMOUSESELECT;
}
static void rna_userdef_rmb_select_set(PointerRNA *ptr,int value)
{
rna_userdef_lmb_select_set(ptr, !value);
}
#endif
static void rna_userdef_emulate_set(PointerRNA *ptr,int value)
{
UserDef *userdef = (UserDef*)ptr->data;
if(userdef->flag & USER_LMOUSESELECT)
userdef->flag &= ~USER_TWOBUTTONMOUSE;
else
userdef->flag ^= USER_TWOBUTTONMOUSE;
}
static int rna_userdef_autokeymode_get(PointerRNA *ptr)
{
UserDef *userdef = (UserDef*)ptr->data;
@ -2592,12 +2575,13 @@ static void rna_def_userdef_input(BlenderRNA *brna)
prop= RNA_def_property(srna, "select_mouse", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_bitflag_sdna(prop, NULL, "flag");
RNA_def_property_enum_items(prop, select_mouse_items);
RNA_def_property_enum_funcs(prop, NULL, "rna_userdef_select_mouse_set", NULL);
RNA_def_property_ui_text(prop, "Select Mouse", "The mouse button used for selection");
prop= RNA_def_property(srna, "viewport_zoom_style", PROP_ENUM, PROP_NONE);
prop= RNA_def_property(srna, "zoom_style", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "viewzoom");
RNA_def_property_enum_items(prop, view_zoom_styles);
RNA_def_property_ui_text(prop, "Viewport Zoom Style", "Which style to use for viewport scaling");
RNA_def_property_ui_text(prop, "Zoom Style", "Which style to use for viewport scaling");
prop= RNA_def_property(srna, "zoom_axis", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_bitflag_sdna(prop, NULL, "uiflag");
@ -2634,7 +2618,6 @@ static void rna_def_userdef_input(BlenderRNA *brna)
prop= RNA_def_property(srna, "emulate_3_button_mouse", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", USER_TWOBUTTONMOUSE);
RNA_def_property_boolean_funcs(prop, NULL, "rna_userdef_emulate_set");
RNA_def_property_ui_text(prop, "Emulate 3 Button Mouse", "Emulates Middle Mouse with Alt+LeftMouse (doesnt work with Left Mouse Select option)");
prop= RNA_def_property(srna, "emulate_numpad", PROP_BOOLEAN, PROP_NONE);