Revert Sticky Keys (and everything related to that)
Our current keymap doesn't give us enough room to make such changes in the event system. To fix small issues caused by this, we would need to do drastic changes in Blender's keymaps and internal handling. It was worth a try, but it didn't work. I can write down a more descriptive statement in a few days, but for now I need a break of this stuff.
This commit is contained in:
parent
d60ff6c112
commit
cc78664d50
|
@ -139,16 +139,16 @@ kmi = km.keymap_items.new('marker.camera_bind', 'B', 'PRESS', ctrl=True)
|
|||
km = kc.keymaps.new('Outliner', space_type='OUTLINER', region_type='WINDOW', modal=False)
|
||||
|
||||
kmi = km.keymap_items.new('outliner.item_rename', 'LEFTMOUSE', 'DOUBLE_CLICK')
|
||||
kmi = km.keymap_items.new('outliner.item_activate', 'LEFTMOUSE', 'PRESS')
|
||||
kmi = km.keymap_items.new('outliner.item_activate', 'LEFTMOUSE', 'CLICK')
|
||||
kmi.properties.extend = False
|
||||
kmi.properties.recursive = False
|
||||
kmi = km.keymap_items.new('outliner.item_activate', 'LEFTMOUSE', 'PRESS', shift=True)
|
||||
kmi = km.keymap_items.new('outliner.item_activate', 'LEFTMOUSE', 'CLICK', shift=True)
|
||||
kmi.properties.extend = True
|
||||
kmi.properties.recursive = False
|
||||
kmi = km.keymap_items.new('outliner.item_activate', 'LEFTMOUSE', 'PRESS', ctrl=True)
|
||||
kmi = km.keymap_items.new('outliner.item_activate', 'LEFTMOUSE', 'CLICK', ctrl=True)
|
||||
kmi.properties.extend = False
|
||||
kmi.properties.recursive = True
|
||||
kmi = km.keymap_items.new('outliner.item_activate', 'LEFTMOUSE', 'PRESS', shift=True, ctrl=True)
|
||||
kmi = km.keymap_items.new('outliner.item_activate', 'LEFTMOUSE', 'CLICK', shift=True, ctrl=True)
|
||||
kmi.properties.extend = True
|
||||
kmi.properties.recursive = True
|
||||
kmi = km.keymap_items.new('outliner.select_border', 'B', 'PRESS')
|
||||
|
@ -236,7 +236,7 @@ kmi = km.keymap_items.new('pose.paste', 'V', 'PRESS', ctrl=True)
|
|||
kmi.properties.flipped = False
|
||||
kmi = km.keymap_items.new('pose.paste', 'V', 'PRESS', shift=True, ctrl=True)
|
||||
kmi.properties.flipped = True
|
||||
kmi = km.keymap_items.new('pose.select_all', 'LEFTMOUSE', 'PRESS')
|
||||
kmi = km.keymap_items.new('pose.select_all', 'LEFTMOUSE', 'CLICK')
|
||||
kmi.properties.action = 'TOGGLE'
|
||||
kmi = km.keymap_items.new('pose.select_all', 'I', 'PRESS', ctrl=True)
|
||||
kmi.properties.action = 'INVERT'
|
||||
|
@ -586,56 +586,56 @@ kmi = km.keymap_items.new('wm.context_toggle_enum', 'Z', 'PRESS', alt=True)
|
|||
kmi.properties.data_path = 'space_data.viewport_shade'
|
||||
kmi.properties.value_1 = 'SOLID'
|
||||
kmi.properties.value_2 = 'TEXTURED'
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'PRESS')
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'CLICK')
|
||||
kmi.properties.extend = False
|
||||
kmi.properties.deselect = False
|
||||
kmi.properties.toggle = False
|
||||
kmi.properties.center = False
|
||||
kmi.properties.enumerate = False
|
||||
kmi.properties.object = False
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'PRESS', ctrl=True)
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'CLICK', ctrl=True)
|
||||
kmi.properties.extend = False
|
||||
kmi.properties.deselect = False
|
||||
kmi.properties.toggle = True
|
||||
kmi.properties.center = False
|
||||
kmi.properties.enumerate = False
|
||||
kmi.properties.object = False
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'PRESS', shift=True)
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'CLICK', shift=True)
|
||||
kmi.properties.extend = False
|
||||
kmi.properties.deselect = False
|
||||
kmi.properties.toggle = False
|
||||
kmi.properties.center = True
|
||||
kmi.properties.enumerate = False
|
||||
kmi.properties.object = True
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'PRESS', alt=True)
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'CLICK', alt=True)
|
||||
kmi.properties.extend = False
|
||||
kmi.properties.deselect = False
|
||||
kmi.properties.toggle = False
|
||||
kmi.properties.center = False
|
||||
kmi.properties.enumerate = True
|
||||
kmi.properties.object = False
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'PRESS', shift=True, ctrl=True)
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'CLICK', shift=True, ctrl=True)
|
||||
kmi.properties.extend = True
|
||||
kmi.properties.deselect = False
|
||||
kmi.properties.toggle = True
|
||||
kmi.properties.center = True
|
||||
kmi.properties.enumerate = False
|
||||
kmi.properties.object = False
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'PRESS', ctrl=True, alt=True)
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'CLICK', ctrl=True, alt=True)
|
||||
kmi.properties.extend = False
|
||||
kmi.properties.deselect = False
|
||||
kmi.properties.toggle = False
|
||||
kmi.properties.center = True
|
||||
kmi.properties.enumerate = True
|
||||
kmi.properties.object = False
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'PRESS', shift=True, alt=True)
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'CLICK', shift=True, alt=True)
|
||||
kmi.properties.extend = False
|
||||
kmi.properties.deselect = False
|
||||
kmi.properties.toggle = True
|
||||
kmi.properties.center = False
|
||||
kmi.properties.enumerate = True
|
||||
kmi.properties.object = False
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'PRESS', shift=True, ctrl=True, alt=True)
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'CLICK', shift=True, ctrl=True, alt=True)
|
||||
kmi.properties.extend = False
|
||||
kmi.properties.deselect = False
|
||||
kmi.properties.toggle = True
|
||||
|
@ -971,7 +971,7 @@ kmi = km.keymap_items.new('graph.delete', 'X', 'PRESS')
|
|||
kmi = km.keymap_items.new('graph.delete', 'DEL', 'PRESS')
|
||||
kmi = km.keymap_items.new('graph.duplicate_move', 'D', 'PRESS', shift=True)
|
||||
kmi = km.keymap_items.new('graph.keyframe_insert', 'I', 'PRESS')
|
||||
kmi = km.keymap_items.new('graph.click_insert', 'ACTIONMOUSE', 'PRESS', ctrl=True)
|
||||
kmi = km.keymap_items.new('graph.click_insert', 'ACTIONMOUSE', 'CLICK', ctrl=True)
|
||||
kmi = km.keymap_items.new('graph.copy', 'C', 'PRESS', ctrl=True)
|
||||
kmi = km.keymap_items.new('graph.paste', 'V', 'PRESS', ctrl=True)
|
||||
kmi = km.keymap_items.new('graph.previewrange_set', 'P', 'PRESS', ctrl=True, alt=True)
|
||||
|
@ -1130,18 +1130,18 @@ km = kc.keymaps.new('File Browser Main', space_type='FILE_BROWSER', region_type=
|
|||
|
||||
kmi = km.keymap_items.new('file.execute', 'LEFTMOUSE', 'DOUBLE_CLICK')
|
||||
kmi.properties.need_active = True
|
||||
kmi = km.keymap_items.new('file.select', 'LEFTMOUSE', 'PRESS')
|
||||
kmi = km.keymap_items.new('file.select', 'LEFTMOUSE', 'PRESS', shift=True)
|
||||
kmi = km.keymap_items.new('file.select', 'LEFTMOUSE', 'CLICK')
|
||||
kmi = km.keymap_items.new('file.select', 'LEFTMOUSE', 'CLICK', shift=True)
|
||||
kmi.properties.extend = True
|
||||
kmi = km.keymap_items.new('file.select', 'LEFTMOUSE', 'PRESS', alt=True)
|
||||
kmi = km.keymap_items.new('file.select', 'LEFTMOUSE', 'CLICK', alt=True)
|
||||
kmi.properties.extend = True
|
||||
kmi.properties.fill = True
|
||||
kmi = km.keymap_items.new('file.select', 'RIGHTMOUSE', 'PRESS')
|
||||
kmi = km.keymap_items.new('file.select', 'RIGHTMOUSE', 'CLICK')
|
||||
kmi.properties.open = False
|
||||
kmi = km.keymap_items.new('file.select', 'RIGHTMOUSE', 'PRESS', shift=True)
|
||||
kmi = km.keymap_items.new('file.select', 'RIGHTMOUSE', 'CLICK', shift=True)
|
||||
kmi.properties.extend = True
|
||||
kmi.properties.open = False
|
||||
kmi = km.keymap_items.new('file.select', 'RIGHTMOUSE', 'PRESS', alt=True)
|
||||
kmi = km.keymap_items.new('file.select', 'RIGHTMOUSE', 'CLICK', alt=True)
|
||||
kmi.properties.extend = True
|
||||
kmi.properties.fill = True
|
||||
kmi.properties.open = False
|
||||
|
@ -2156,9 +2156,9 @@ kmi = km.keymap_items.new('mesh.separate', 'P', 'PRESS')
|
|||
kmi = km.keymap_items.new('mesh.split', 'Y', 'PRESS')
|
||||
kmi = km.keymap_items.new('mesh.vert_connect', 'J', 'PRESS')
|
||||
kmi = km.keymap_items.new('transform.vert_slide', 'V', 'PRESS', shift=True)
|
||||
kmi = km.keymap_items.new('mesh.dupli_extrude_cursor', 'ACTIONMOUSE', 'PRESS', ctrl=True)
|
||||
kmi = km.keymap_items.new('mesh.dupli_extrude_cursor', 'ACTIONMOUSE', 'CLICK', ctrl=True)
|
||||
kmi.properties.rotate_source = True
|
||||
kmi = km.keymap_items.new('mesh.dupli_extrude_cursor', 'ACTIONMOUSE', 'PRESS', shift=True, ctrl=True)
|
||||
kmi = km.keymap_items.new('mesh.dupli_extrude_cursor', 'ACTIONMOUSE', 'CLICK', shift=True, ctrl=True)
|
||||
kmi.properties.rotate_source = False
|
||||
kmi = km.keymap_items.new('wm.call_menu', 'X', 'PRESS')
|
||||
kmi.properties.name = 'VIEW3D_MT_edit_mesh_delete'
|
||||
|
@ -2223,8 +2223,8 @@ km = kc.keymaps.new('Curve', space_type='EMPTY', region_type='WINDOW', modal=Fal
|
|||
kmi = km.keymap_items.new('wm.call_menu', 'A', 'PRESS', shift=True)
|
||||
kmi.properties.name = 'INFO_MT_edit_curve_add'
|
||||
kmi = km.keymap_items.new('curve.handle_type_set', 'V', 'PRESS')
|
||||
kmi = km.keymap_items.new('curve.vertex_add', 'LEFTMOUSE', 'PRESS', ctrl=True)
|
||||
kmi = km.keymap_items.new('curve.select_all', 'LEFTMOUSE', 'PRESS')
|
||||
kmi = km.keymap_items.new('curve.vertex_add', 'LEFTMOUSE', 'CLICK', ctrl=True)
|
||||
kmi = km.keymap_items.new('curve.select_all', 'LEFTMOUSE', 'CLICK')
|
||||
kmi.properties.action = 'TOGGLE'
|
||||
kmi = km.keymap_items.new('curve.select_all', 'I', 'PRESS', ctrl=True)
|
||||
kmi.properties.action = 'INVERT'
|
||||
|
@ -2293,7 +2293,7 @@ kmi = km.keymap_items.new('armature.switch_direction', 'F', 'PRESS', alt=True)
|
|||
kmi = km.keymap_items.new('armature.bone_primitive_add', 'A', 'PRESS', shift=True)
|
||||
kmi = km.keymap_items.new('armature.parent_set', 'P', 'PRESS', ctrl=True)
|
||||
kmi = km.keymap_items.new('armature.parent_clear', 'P', 'PRESS', alt=True)
|
||||
kmi = km.keymap_items.new('armature.select_all', 'LEFTMOUSE', 'PRESS')
|
||||
kmi = km.keymap_items.new('armature.select_all', 'LEFTMOUSE', 'CLICK')
|
||||
kmi.properties.action = 'TOGGLE'
|
||||
kmi = km.keymap_items.new('armature.select_all', 'I', 'PRESS', ctrl=True)
|
||||
kmi.properties.action = 'INVERT'
|
||||
|
@ -2316,7 +2316,7 @@ kmi = km.keymap_items.new('armature.delete', 'DEL', 'PRESS')
|
|||
kmi = km.keymap_items.new('armature.duplicate_move', 'D', 'PRESS', shift=True)
|
||||
kmi = km.keymap_items.new('armature.extrude_move', 'E', 'PRESS')
|
||||
kmi = km.keymap_items.new('armature.extrude_forked', 'E', 'PRESS', shift=True)
|
||||
kmi = km.keymap_items.new('armature.click_extrude', 'LEFTMOUSE', 'PRESS', ctrl=True)
|
||||
kmi = km.keymap_items.new('armature.click_extrude', 'LEFTMOUSE', 'CLICK', ctrl=True)
|
||||
kmi = km.keymap_items.new('armature.fill', 'F', 'PRESS', ctrl=True)
|
||||
kmi = km.keymap_items.new('armature.merge', 'M', 'PRESS', alt=True)
|
||||
kmi = km.keymap_items.new('armature.separate', 'P', 'PRESS', ctrl=True, alt=True)
|
||||
|
@ -2348,7 +2348,7 @@ kmi.properties.unselected = True
|
|||
kmi = km.keymap_items.new('mball.delete_metaelems', 'X', 'PRESS')
|
||||
kmi = km.keymap_items.new('mball.delete_metaelems', 'DEL', 'PRESS')
|
||||
kmi = km.keymap_items.new('mball.duplicate_metaelems', 'D', 'PRESS', shift=True)
|
||||
kmi = km.keymap_items.new('mball.select_all', 'LEFTMOUSE', 'PRESS')
|
||||
kmi = km.keymap_items.new('mball.select_all', 'LEFTMOUSE', 'CLICK')
|
||||
kmi.properties.action = 'TOGGLE'
|
||||
kmi = km.keymap_items.new('mball.select_all', 'I', 'PRESS', ctrl=True)
|
||||
kmi.properties.action = 'INVERT'
|
||||
|
@ -2366,7 +2366,7 @@ kmi.properties.value_2 = 'CONNECTED'
|
|||
# Map Lattice
|
||||
km = kc.keymaps.new('Lattice', space_type='EMPTY', region_type='WINDOW', modal=False)
|
||||
|
||||
kmi = km.keymap_items.new('lattice.select_all', 'LEFTMOUSE', 'PRESS')
|
||||
kmi = km.keymap_items.new('lattice.select_all', 'LEFTMOUSE', 'CLICK')
|
||||
kmi.properties.action = 'TOGGLE'
|
||||
kmi = km.keymap_items.new('lattice.select_all', 'I', 'PRESS', ctrl=True)
|
||||
kmi.properties.action = 'INVERT'
|
||||
|
|
|
@ -227,9 +227,9 @@ kmi = km.keymap_items.new('time.view_all', 'A', 'PRESS')
|
|||
km = kc.keymaps.new('Outliner', space_type='OUTLINER', region_type='WINDOW', modal=False)
|
||||
|
||||
kmi = km.keymap_items.new('outliner.item_rename', 'LEFTMOUSE', 'DOUBLE_CLICK')
|
||||
kmi = km.keymap_items.new('outliner.item_activate', 'LEFTMOUSE', 'PRESS')
|
||||
kmi = km.keymap_items.new('outliner.item_activate', 'LEFTMOUSE', 'CLICK')
|
||||
kmi.properties.extend = False
|
||||
kmi = km.keymap_items.new('outliner.item_activate', 'LEFTMOUSE', 'PRESS', shift=True)
|
||||
kmi = km.keymap_items.new('outliner.item_activate', 'LEFTMOUSE', 'CLICK', shift=True)
|
||||
kmi.properties.extend = True
|
||||
kmi = km.keymap_items.new('outliner.select_border', 'EVT_TWEAK_S', 'ANY', any=True)
|
||||
kmi = km.keymap_items.new('outliner.item_openclose', 'RET', 'PRESS')
|
||||
|
@ -656,7 +656,7 @@ kmi = km.keymap_items.new('mesh.edge_face_add', 'F', 'PRESS', alt=True)
|
|||
kmi = km.keymap_items.new('mesh.duplicate_move', 'D', 'PRESS', ctrl=True)
|
||||
kmi = km.keymap_items.new('wm.call_menu', 'A', 'PRESS', shift=True)
|
||||
kmi.properties.name = 'INFO_MT_mesh_add'
|
||||
kmi = km.keymap_items.new('mesh.dupli_extrude_cursor', 'MIDDLEMOUSE', 'PRESS', ctrl=True)
|
||||
kmi = km.keymap_items.new('mesh.dupli_extrude_cursor', 'MIDDLEMOUSE', 'CLICK', ctrl=True)
|
||||
kmi = km.keymap_items.new('wm.call_menu', 'BACK_SPACE', 'PRESS')
|
||||
kmi.properties.name = 'VIEW3D_MT_edit_mesh_delete'
|
||||
kmi = km.keymap_items.new('wm.call_menu', 'DEL', 'PRESS')
|
||||
|
@ -727,7 +727,7 @@ km = kc.keymaps.new('Curve', space_type='EMPTY', region_type='WINDOW', modal=Fal
|
|||
kmi = km.keymap_items.new('wm.call_menu', 'A', 'PRESS', shift=True)
|
||||
kmi.properties.name = 'INFO_MT_edit_curve_add'
|
||||
kmi = km.keymap_items.new('curve.handle_type_set', 'RIGHTMOUSE', 'PRESS')
|
||||
kmi = km.keymap_items.new('curve.vertex_add', 'MIDDLEMOUSE', 'PRESS', ctrl=True)
|
||||
kmi = km.keymap_items.new('curve.vertex_add', 'MIDDLEMOUSE', 'CLICK', ctrl=True)
|
||||
kmi = km.keymap_items.new('curve.select_all', 'A', 'PRESS', ctrl=True)
|
||||
kmi.properties.action = 'TOGGLE'
|
||||
kmi = km.keymap_items.new('curve.select_all', 'I', 'PRESS', ctrl=True)
|
||||
|
@ -817,7 +817,7 @@ kmi = km.keymap_items.new('armature.delete', 'DEL', 'PRESS')
|
|||
kmi = km.keymap_items.new('armature.duplicate_move', 'D', 'PRESS', ctrl=True)
|
||||
kmi = km.keymap_items.new('armature.extrude_move', 'X', 'PRESS', alt=True)
|
||||
kmi = km.keymap_items.new('armature.extrude_forked', 'X', 'PRESS', shift=True, alt=True)
|
||||
kmi = km.keymap_items.new('armature.click_extrude', 'MIDDLEMOUSE', 'PRESS', ctrl=True)
|
||||
kmi = km.keymap_items.new('armature.click_extrude', 'MIDDLEMOUSE', 'CLICK', ctrl=True)
|
||||
kmi = km.keymap_items.new('armature.fill', 'F', 'PRESS', alt=True)
|
||||
kmi = km.keymap_items.new('armature.merge', 'M', 'PRESS', alt=True)
|
||||
kmi = km.keymap_items.new('armature.separate', 'P', 'PRESS', ctrl=True, alt=True)
|
||||
|
@ -1003,56 +1003,56 @@ kmi = km.keymap_items.new('wm.context_toggle_enum', 'FIVE', 'PRESS')
|
|||
kmi.properties.data_path = 'space_data.viewport_shade'
|
||||
kmi.properties.value_1 = 'TEXTURED'
|
||||
kmi.properties.value_2 = 'SOLID'
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'PRESS')
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'CLICK')
|
||||
kmi.properties.extend = False
|
||||
kmi.properties.toggle = False
|
||||
kmi.properties.deselect = False
|
||||
kmi.properties.center = False
|
||||
kmi.properties.object = False
|
||||
kmi.properties.enumerate = False
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'PRESS', shift=True)
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'CLICK', shift=True)
|
||||
kmi.properties.extend = False
|
||||
kmi.properties.toggle = True
|
||||
kmi.properties.deselect = False
|
||||
kmi.properties.center = False
|
||||
kmi.properties.object = False
|
||||
kmi.properties.enumerate = False
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'PRESS', ctrl=True)
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'CLICK', ctrl=True)
|
||||
kmi.properties.center = False
|
||||
kmi.properties.extend = False
|
||||
kmi.properties.toggle = False
|
||||
kmi.properties.deselect = True
|
||||
kmi.properties.object = False
|
||||
kmi.properties.enumerate = False
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'PRESS', alt=True)
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'CLICK', alt=True)
|
||||
kmi.properties.enumerate = True
|
||||
kmi.properties.extend = False
|
||||
kmi.properties.toggle = False
|
||||
kmi.properties.deselect = False
|
||||
kmi.properties.center = False
|
||||
kmi.properties.object = False
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'PRESS', shift=True, ctrl=True)
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'CLICK', shift=True, ctrl=True)
|
||||
kmi.properties.extend = True
|
||||
kmi.properties.center = True
|
||||
kmi.properties.toggle = False
|
||||
kmi.properties.deselect = False
|
||||
kmi.properties.object = False
|
||||
kmi.properties.enumerate = False
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'PRESS', ctrl=True, alt=True)
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'CLICK', ctrl=True, alt=True)
|
||||
kmi.properties.center = True
|
||||
kmi.properties.enumerate = True
|
||||
kmi.properties.extend = False
|
||||
kmi.properties.toggle = False
|
||||
kmi.properties.deselect = False
|
||||
kmi.properties.object = False
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'PRESS', shift=True, alt=True)
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'CLICK', shift=True, alt=True)
|
||||
kmi.properties.extend = True
|
||||
kmi.properties.enumerate = True
|
||||
kmi.properties.toggle = False
|
||||
kmi.properties.deselect = False
|
||||
kmi.properties.center = False
|
||||
kmi.properties.object = False
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'PRESS', shift=True, ctrl=True, alt=True)
|
||||
kmi = km.keymap_items.new('view3d.select_or_deselect_all', 'SELECTMOUSE', 'CLICK', shift=True, ctrl=True, alt=True)
|
||||
kmi.properties.extend = True
|
||||
kmi.properties.center = True
|
||||
kmi.properties.enumerate = True
|
||||
|
@ -1106,7 +1106,7 @@ km = kc.keymaps.new('Animation Channels', space_type='EMPTY', region_type='WINDO
|
|||
|
||||
kmi = km.keymap_items.new('anim.channels_click', 'LEFTMOUSE', 'PRESS')
|
||||
kmi.properties.extend = False
|
||||
kmi = km.keymap_items.new('anim.channels_click', 'LEFTMOUSE', 'PRESS', shift=True)
|
||||
kmi = km.keymap_items.new('anim.channels_click', 'LEFTMOUSE', 'CLICK', shift=True)
|
||||
kmi.properties.extend = True
|
||||
kmi = km.keymap_items.new('anim.channels_click', 'LEFTMOUSE', 'PRESS', shift=True, ctrl=True)
|
||||
kmi.properties.children_only = True
|
||||
|
@ -1144,9 +1144,9 @@ km = kc.keymaps.new('UV Editor', space_type='EMPTY', region_type='WINDOW', modal
|
|||
kmi = km.keymap_items.new('wm.context_toggle', 'Q', 'PRESS')
|
||||
kmi.properties.data_path = 'tool_settings.use_uv_sculpt'
|
||||
kmi = km.keymap_items.new('uv.mark_seam', 'E', 'PRESS', ctrl=True)
|
||||
kmi = km.keymap_items.new('uv.select', 'SELECTMOUSE', 'PRESS')
|
||||
kmi = km.keymap_items.new('uv.select', 'SELECTMOUSE', 'CLICK')
|
||||
kmi.properties.extend = False
|
||||
kmi = km.keymap_items.new('uv.select', 'SELECTMOUSE', 'PRESS', shift=True)
|
||||
kmi = km.keymap_items.new('uv.select', 'SELECTMOUSE', 'CLICK', shift=True)
|
||||
kmi.properties.extend = True
|
||||
kmi = km.keymap_items.new('uv.select_loop', 'LEFTMOUSE', 'PRESS', ctrl=True, alt=True)
|
||||
kmi.properties.extend = False
|
||||
|
@ -1314,7 +1314,7 @@ kmi = km.keymap_items.new('wm.context_toggle', 'H', 'PRESS', ctrl=True)
|
|||
kmi.properties.data_path = 'space_data.show_handles'
|
||||
kmi = km.keymap_items.new('graph.cursor_set', 'LEFTMOUSE', 'PRESS', key_modifier='K')
|
||||
kmi.properties.value = 1.1754943508222875e-38
|
||||
kmi = km.keymap_items.new('graph.clickselect', 'SELECTMOUSE', 'PRESS')
|
||||
kmi = km.keymap_items.new('graph.clickselect', 'SELECTMOUSE', 'CLICK')
|
||||
kmi.properties.extend = False
|
||||
kmi.properties.column = False
|
||||
kmi.properties.curves = False
|
||||
|
@ -1322,11 +1322,11 @@ kmi = km.keymap_items.new('graph.clickselect', 'SELECTMOUSE', 'PRESS', alt=True)
|
|||
kmi.properties.extend = False
|
||||
kmi.properties.column = True
|
||||
kmi.properties.curves = False
|
||||
kmi = km.keymap_items.new('graph.clickselect', 'SELECTMOUSE', 'PRESS', shift=True)
|
||||
kmi = km.keymap_items.new('graph.clickselect', 'SELECTMOUSE', 'CLICK', shift=True)
|
||||
kmi.properties.extend = True
|
||||
kmi.properties.column = False
|
||||
kmi.properties.curves = False
|
||||
kmi = km.keymap_items.new('graph.clickselect', 'SELECTMOUSE', 'PRESS', shift=True, alt=True)
|
||||
kmi = km.keymap_items.new('graph.clickselect', 'SELECTMOUSE', 'CLICK', shift=True, alt=True)
|
||||
kmi.properties.extend = True
|
||||
kmi.properties.column = True
|
||||
kmi.properties.curves = False
|
||||
|
@ -1334,7 +1334,7 @@ kmi = km.keymap_items.new('graph.clickselect', 'SELECTMOUSE', 'PRESS', ctrl=True
|
|||
kmi.properties.extend = False
|
||||
kmi.properties.column = False
|
||||
kmi.properties.curves = True
|
||||
kmi = km.keymap_items.new('graph.clickselect', 'SELECTMOUSE', 'PRESS', shift=True, ctrl=True, alt=True)
|
||||
kmi = km.keymap_items.new('graph.clickselect', 'SELECTMOUSE', 'CLICK', shift=True, ctrl=True, alt=True)
|
||||
kmi.properties.extend = True
|
||||
kmi.properties.column = False
|
||||
kmi.properties.curves = True
|
||||
|
@ -1366,7 +1366,7 @@ kmi = km.keymap_items.new('graph.delete', 'BACK_SPACE', 'PRESS')
|
|||
kmi = km.keymap_items.new('graph.delete', 'DEL', 'PRESS')
|
||||
kmi = km.keymap_items.new('graph.duplicate_move', 'D', 'PRESS', ctrl=True)
|
||||
kmi = km.keymap_items.new('graph.keyframe_insert', 'I', 'PRESS')
|
||||
kmi = km.keymap_items.new('graph.click_insert', 'LEFTMOUSE', 'PRESS', ctrl=True)
|
||||
kmi = km.keymap_items.new('graph.click_insert', 'LEFTMOUSE', 'CLICK', ctrl=True)
|
||||
kmi = km.keymap_items.new('graph.copy', 'C', 'PRESS', ctrl=True)
|
||||
kmi = km.keymap_items.new('graph.paste', 'V', 'PRESS', ctrl=True)
|
||||
kmi = km.keymap_items.new('graph.previewrange_set', 'P', 'PRESS', ctrl=True, alt=True)
|
||||
|
@ -1511,11 +1511,11 @@ km = kc.keymaps.new('File Browser Main', space_type='FILE_BROWSER', region_type=
|
|||
|
||||
kmi = km.keymap_items.new('file.execute', 'LEFTMOUSE', 'DOUBLE_CLICK')
|
||||
kmi.properties.need_active = True
|
||||
kmi = km.keymap_items.new('file.select', 'LEFTMOUSE', 'PRESS')
|
||||
kmi = km.keymap_items.new('file.select', 'LEFTMOUSE', 'CLICK')
|
||||
kmi.properties.extend = False
|
||||
kmi = km.keymap_items.new('file.select', 'LEFTMOUSE', 'PRESS', shift=True)
|
||||
kmi = km.keymap_items.new('file.select', 'LEFTMOUSE', 'CLICK', shift=True)
|
||||
kmi.properties.extend = True
|
||||
kmi = km.keymap_items.new('file.select', 'LEFTMOUSE', 'PRESS', alt=True)
|
||||
kmi = km.keymap_items.new('file.select', 'LEFTMOUSE', 'CLICK', alt=True)
|
||||
kmi.properties.extend = True
|
||||
kmi.properties.fill = True
|
||||
kmi = km.keymap_items.new('file.select_all_toggle', 'A', 'PRESS', ctrl=True)
|
||||
|
@ -1541,13 +1541,13 @@ kmi.properties.increment = -100
|
|||
# Map Dopesheet
|
||||
km = kc.keymaps.new('Dopesheet', space_type='DOPESHEET_EDITOR', region_type='WINDOW', modal=False)
|
||||
|
||||
kmi = km.keymap_items.new('action.clickselect', 'LEFTMOUSE', 'PRESS')
|
||||
kmi = km.keymap_items.new('action.clickselect', 'LEFTMOUSE', 'CLICK')
|
||||
kmi.properties.extend = False
|
||||
kmi.properties.column = False
|
||||
kmi = km.keymap_items.new('action.clickselect', 'LEFTMOUSE', 'PRESS', alt=True)
|
||||
kmi.properties.extend = False
|
||||
kmi.properties.column = True
|
||||
kmi = km.keymap_items.new('action.clickselect', 'LEFTMOUSE', 'PRESS', shift=True)
|
||||
kmi = km.keymap_items.new('action.clickselect', 'LEFTMOUSE', 'CLICK', shift=True)
|
||||
kmi.properties.extend = True
|
||||
kmi.properties.column = False
|
||||
kmi = km.keymap_items.new('action.clickselect', 'LEFTMOUSE', 'PRESS', shift=True, alt=True)
|
||||
|
@ -1618,7 +1618,7 @@ kmi = km.keymap_items.new('nla.tracks_delete', 'DEL', 'PRESS')
|
|||
# Map NLA Editor
|
||||
km = kc.keymaps.new('NLA Editor', space_type='NLA_EDITOR', region_type='WINDOW', modal=False)
|
||||
|
||||
kmi = km.keymap_items.new('nla.click_select', 'SELECTMOUSE', 'PRESS')
|
||||
kmi = km.keymap_items.new('nla.click_select', 'SELECTMOUSE', 'CLICK')
|
||||
kmi.properties.extend = False
|
||||
kmi = km.keymap_items.new('nla.click_select', 'SELECTMOUSE', 'PRESS', shift=True)
|
||||
kmi.properties.extend = True
|
||||
|
@ -1740,12 +1740,12 @@ kmi = km.keymap_items.new('sequencer.cut_multicam', 'NINE', 'PRESS')
|
|||
kmi.properties.camera = 9
|
||||
kmi = km.keymap_items.new('sequencer.cut_multicam', 'ZERO', 'PRESS')
|
||||
kmi.properties.camera = 10
|
||||
kmi = km.keymap_items.new('sequencer.select', 'SELECTMOUSE', 'PRESS')
|
||||
kmi = km.keymap_items.new('sequencer.select', 'SELECTMOUSE', 'CLICK')
|
||||
kmi.properties.extend = False
|
||||
kmi.properties.linked_handle = False
|
||||
kmi.properties.left_right = 'NONE'
|
||||
kmi.properties.linked_time = False
|
||||
kmi = km.keymap_items.new('sequencer.select', 'SELECTMOUSE', 'PRESS', shift=True)
|
||||
kmi = km.keymap_items.new('sequencer.select', 'SELECTMOUSE', 'CLICK', shift=True)
|
||||
kmi.properties.extend = True
|
||||
kmi.properties.linked_handle = False
|
||||
kmi.properties.left_right = 'NONE'
|
||||
|
@ -1755,7 +1755,7 @@ kmi.properties.extend = False
|
|||
kmi.properties.linked_handle = True
|
||||
kmi.properties.left_right = 'NONE'
|
||||
kmi.properties.linked_time = False
|
||||
kmi = km.keymap_items.new('sequencer.select', 'SELECTMOUSE', 'PRESS', shift=True, alt=True)
|
||||
kmi = km.keymap_items.new('sequencer.select', 'SELECTMOUSE', 'CLICK', shift=True, alt=True)
|
||||
kmi.properties.extend = True
|
||||
kmi.properties.linked_handle = True
|
||||
kmi.properties.left_right = 'NONE'
|
||||
|
|
|
@ -1055,15 +1055,6 @@ class USERPREF_PT_input(Panel):
|
|||
subrow.menu("USERPREF_MT_interaction_presets", text=bpy.types.USERPREF_MT_interaction_presets.bl_label)
|
||||
subrow.operator("wm.interaction_preset_add", text="", icon='ZOOMIN')
|
||||
subrow.operator("wm.interaction_preset_add", text="", icon='ZOOMOUT').remove_active = True
|
||||
|
||||
sub.separator()
|
||||
|
||||
sub = col.column()
|
||||
sub.label(text="Double Click:")
|
||||
sub.prop(inputs, "double_click_time", text="Speed")
|
||||
sub.label(text="Sticky Keys:")
|
||||
sub.prop(inputs, "click_timeout")
|
||||
|
||||
sub.separator()
|
||||
|
||||
sub.label(text="Mouse:")
|
||||
|
@ -1077,6 +1068,10 @@ class USERPREF_PT_input(Panel):
|
|||
sub.label(text="Select With:")
|
||||
sub.row().prop(inputs, "select_mouse", expand=True)
|
||||
|
||||
sub = col.column()
|
||||
sub.label(text="Double Click:")
|
||||
sub.prop(inputs, "mouse_double_click_time", text="Speed")
|
||||
|
||||
sub.separator()
|
||||
|
||||
sub.prop(inputs, "use_emulate_numpad")
|
||||
|
|
|
@ -271,7 +271,7 @@ void ED_keymap_armature(wmKeyConfig *keyconf)
|
|||
WM_keymap_add_item(keymap, "ARMATURE_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0);
|
||||
WM_keymap_add_item(keymap, "ARMATURE_OT_extrude_move", EKEY, KM_PRESS, 0, 0);
|
||||
WM_keymap_add_item(keymap, "ARMATURE_OT_extrude_forked", EKEY, KM_PRESS, KM_SHIFT, 0);
|
||||
WM_keymap_add_item(keymap, "ARMATURE_OT_click_extrude", ACTIONMOUSE, KM_PRESS, KM_CTRL, 0);
|
||||
WM_keymap_add_item(keymap, "ARMATURE_OT_click_extrude", ACTIONMOUSE, KM_CLICK, KM_CTRL, 0);
|
||||
WM_keymap_add_item(keymap, "ARMATURE_OT_fill", FKEY, KM_PRESS, 0, 0);
|
||||
WM_keymap_add_item(keymap, "ARMATURE_OT_merge", MKEY, KM_PRESS, KM_ALT, 0);
|
||||
WM_keymap_add_item(keymap, "ARMATURE_OT_split", YKEY, KM_PRESS, 0, 0);
|
||||
|
|
|
@ -230,7 +230,7 @@ void ED_keymap_curve(wmKeyConfig *keyconf)
|
|||
|
||||
WM_keymap_add_item(keymap, "CURVE_OT_handle_type_set", VKEY, KM_PRESS, 0, 0);
|
||||
|
||||
WM_keymap_add_item(keymap, "CURVE_OT_vertex_add", ACTIONMOUSE, KM_PRESS, KM_CTRL, 0);
|
||||
WM_keymap_add_item(keymap, "CURVE_OT_vertex_add", ACTIONMOUSE, KM_CLICK, KM_CTRL, 0);
|
||||
|
||||
kmi = WM_keymap_add_item(keymap, "CURVE_OT_select_all", AKEY, KM_PRESS, 0, 0);
|
||||
RNA_enum_set(kmi->ptr, "action", SEL_TOGGLE);
|
||||
|
|
|
@ -1931,7 +1931,7 @@ static int gpencil_draw_modal(bContext *C, wmOperator *op, const wmEvent *event)
|
|||
/* stroke could be smoothed, send notifier to refresh screen */
|
||||
WM_event_add_notifier(C, NC_GPENCIL | NA_EDITED, NULL);
|
||||
}
|
||||
else if (event->val == KM_RELEASE) {
|
||||
else {
|
||||
/* printf("\t\tGP - end of stroke + op\n"); */
|
||||
p->status = GP_STATUS_DONE;
|
||||
estate = OPERATOR_FINISHED;
|
||||
|
|
|
@ -277,10 +277,6 @@ static int eyedropper_modal(bContext *C, wmOperator *op, const wmEvent *event)
|
|||
eyedropper_cancel(C, op);
|
||||
return OPERATOR_CANCELLED;
|
||||
case LEFTMOUSE:
|
||||
/* two release events are sent on KM_CLICK, so ignore second one */
|
||||
if (event->click_type == KM_CLICK) {
|
||||
break;
|
||||
}
|
||||
if (event->val == KM_RELEASE) {
|
||||
if (eye->accum_tot == 0) {
|
||||
eyedropper_color_sample(C, eye, event->x, event->y);
|
||||
|
|
|
@ -1180,7 +1180,7 @@ static int ui_handler_region_drag_toggle(bContext *C, const wmEvent *event, void
|
|||
switch (event->type) {
|
||||
case LEFTMOUSE:
|
||||
{
|
||||
if (event->val == KM_RELEASE) {
|
||||
if (event->val != KM_PRESS) {
|
||||
done = true;
|
||||
}
|
||||
break;
|
||||
|
@ -2721,7 +2721,8 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle
|
|||
if (data->searchbox)
|
||||
inbox = ui_searchbox_inside(data->searchbox, event->x, event->y);
|
||||
|
||||
if (event->val == KM_PRESS) {
|
||||
/* for double click: we do a press again for when you first click on button (selects all text, no cursor pos) */
|
||||
if (event->val == KM_PRESS || event->val == KM_DBL_CLICK) {
|
||||
float mx, my;
|
||||
|
||||
mx = event->x;
|
||||
|
@ -2746,7 +2747,7 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle
|
|||
}
|
||||
|
||||
/* only select a word in button if there was no selection before */
|
||||
if ((event->click_type == KM_DBL_CLICK) && (had_selection == false)) {
|
||||
if (event->val == KM_DBL_CLICK && had_selection == false) {
|
||||
ui_textedit_move(but, data, STRCUR_DIR_PREV, false, STRCUR_JUMP_DELIM);
|
||||
ui_textedit_move(but, data, STRCUR_DIR_NEXT, true, STRCUR_JUMP_DELIM);
|
||||
retval = WM_UI_HANDLER_BREAK;
|
||||
|
@ -3170,7 +3171,7 @@ static int ui_do_but_BUT(bContext *C, uiBut *but, uiHandleButtonData *data, cons
|
|||
}
|
||||
}
|
||||
else if (data->state == BUTTON_STATE_WAIT_RELEASE) {
|
||||
if (event->type == LEFTMOUSE && event->val == KM_RELEASE) {
|
||||
if (event->type == LEFTMOUSE && event->val != KM_PRESS) {
|
||||
if (!(but->flag & UI_SELECT))
|
||||
data->cancel = true;
|
||||
button_activate_state(C, but, BUTTON_STATE_EXIT);
|
||||
|
@ -3738,7 +3739,7 @@ static int ui_do_but_NUM(bContext *C, uiBlock *block, uiBut *but, uiHandleButton
|
|||
button_activate_state(C, but, BUTTON_STATE_EXIT);
|
||||
}
|
||||
}
|
||||
else if (event->type == LEFTMOUSE && event->val == KM_RELEASE) {
|
||||
else if (event->type == LEFTMOUSE && event->val != KM_PRESS) {
|
||||
if (data->dragchange) {
|
||||
#ifdef USE_DRAG_MULTINUM
|
||||
/* if we started multibutton but didnt drag, then edit */
|
||||
|
@ -4035,7 +4036,7 @@ static int ui_do_but_SLI(bContext *C, uiBlock *block, uiBut *but, uiHandleButton
|
|||
button_activate_state(C, but, BUTTON_STATE_EXIT);
|
||||
}
|
||||
}
|
||||
else if (event->type == LEFTMOUSE && event->val == KM_RELEASE) {
|
||||
else if (event->type == LEFTMOUSE && event->val != KM_PRESS) {
|
||||
if (data->dragchange) {
|
||||
#ifdef USE_DRAG_MULTINUM
|
||||
/* if we started multibutton but didnt drag, then edit */
|
||||
|
@ -4180,7 +4181,7 @@ static int ui_do_but_SCROLL(bContext *C, uiBlock *block, uiBut *but, uiHandleBut
|
|||
button_activate_state(C, but, BUTTON_STATE_EXIT);
|
||||
}
|
||||
}
|
||||
else if (event->type == LEFTMOUSE && event->val == KM_RELEASE) {
|
||||
else if (event->type == LEFTMOUSE && event->val != KM_PRESS) {
|
||||
button_activate_state(C, but, BUTTON_STATE_EXIT);
|
||||
}
|
||||
else if (event->type == MOUSEMOVE) {
|
||||
|
@ -4228,7 +4229,7 @@ static int ui_do_but_GRIP(bContext *C, uiBlock *block, uiBut *but, uiHandleButto
|
|||
button_activate_state(C, but, BUTTON_STATE_EXIT);
|
||||
}
|
||||
}
|
||||
else if (event->type == LEFTMOUSE && event->val == KM_RELEASE) {
|
||||
else if (event->type == LEFTMOUSE && event->val != KM_PRESS) {
|
||||
button_activate_state(C, but, BUTTON_STATE_EXIT);
|
||||
}
|
||||
else if (event->type == MOUSEMOVE) {
|
||||
|
@ -4252,7 +4253,7 @@ static int ui_do_but_LISTROW(bContext *C, uiBut *but, uiHandleButtonData *data,
|
|||
* editing field for editing list item names
|
||||
*/
|
||||
if ((ELEM(event->type, LEFTMOUSE, PADENTER, RETKEY) && event->val == KM_PRESS && event->ctrl) ||
|
||||
(event->type == LEFTMOUSE && event->click_type == KM_DBL_CLICK))
|
||||
(event->type == LEFTMOUSE && event->val == KM_DBL_CLICK))
|
||||
{
|
||||
uiBut *labelbut = ui_but_list_row_text_activate(C, but, data, event, BUTTON_ACTIVATE_TEXT_EDITING);
|
||||
if (labelbut) {
|
||||
|
@ -4604,7 +4605,7 @@ static int ui_do_but_UNITVEC(bContext *C, uiBlock *block, uiBut *but, uiHandleBu
|
|||
ui_numedit_apply(C, block, but, data);
|
||||
}
|
||||
}
|
||||
else if (event->type == LEFTMOUSE && event->val == KM_RELEASE) {
|
||||
else if (event->type == LEFTMOUSE && event->val != KM_PRESS) {
|
||||
button_activate_state(C, but, BUTTON_STATE_EXIT);
|
||||
}
|
||||
|
||||
|
@ -4925,7 +4926,7 @@ static int ui_do_but_HSVCUBE(bContext *C, uiBlock *block, uiBut *but, uiHandleBu
|
|||
ui_numedit_apply(C, block, but, data);
|
||||
}
|
||||
}
|
||||
else if (event->type == LEFTMOUSE && event->val == KM_RELEASE) {
|
||||
else if (event->type == LEFTMOUSE && event->val != KM_PRESS) {
|
||||
button_activate_state(C, but, BUTTON_STATE_EXIT);
|
||||
}
|
||||
|
||||
|
@ -5198,7 +5199,7 @@ static int ui_do_but_HSVCIRCLE(bContext *C, uiBlock *block, uiBut *but, uiHandle
|
|||
}
|
||||
}
|
||||
}
|
||||
else if (event->type == LEFTMOUSE && event->val == KM_RELEASE) {
|
||||
else if (event->type == LEFTMOUSE && event->val != KM_PRESS) {
|
||||
button_activate_state(C, but, BUTTON_STATE_EXIT);
|
||||
}
|
||||
return WM_UI_HANDLER_BREAK;
|
||||
|
@ -5283,7 +5284,7 @@ static int ui_do_but_COLORBAND(bContext *C, uiBlock *block, uiBut *but, uiHandle
|
|||
ui_numedit_apply(C, block, but, data);
|
||||
}
|
||||
}
|
||||
else if (event->type == LEFTMOUSE && event->val == KM_RELEASE) {
|
||||
else if (event->type == LEFTMOUSE && event->val != KM_PRESS) {
|
||||
button_activate_state(C, but, BUTTON_STATE_EXIT);
|
||||
}
|
||||
|
||||
|
@ -5522,7 +5523,7 @@ static int ui_do_but_CURVE(bContext *C, uiBlock *block, uiBut *but, uiHandleButt
|
|||
ui_numedit_apply(C, block, but, data);
|
||||
}
|
||||
}
|
||||
else if (event->type == LEFTMOUSE && event->val == KM_RELEASE) {
|
||||
else if (event->type == LEFTMOUSE && event->val != KM_PRESS) {
|
||||
if (data->dragsel != -1) {
|
||||
CurveMapping *cumap = (CurveMapping *)but->poin;
|
||||
CurveMap *cuma = cumap->cm + cumap->cur;
|
||||
|
@ -5618,7 +5619,7 @@ static int ui_do_but_HISTOGRAM(bContext *C, uiBlock *block, uiBut *but, uiHandle
|
|||
ui_numedit_apply(C, block, but, data);
|
||||
}
|
||||
}
|
||||
else if (event->type == LEFTMOUSE && event->val == KM_RELEASE) {
|
||||
else if (event->type == LEFTMOUSE && event->val != KM_PRESS) {
|
||||
button_activate_state(C, but, BUTTON_STATE_EXIT);
|
||||
}
|
||||
return WM_UI_HANDLER_BREAK;
|
||||
|
@ -5691,7 +5692,7 @@ static int ui_do_but_WAVEFORM(bContext *C, uiBlock *block, uiBut *but, uiHandleB
|
|||
ui_numedit_apply(C, block, but, data);
|
||||
}
|
||||
}
|
||||
else if (event->type == LEFTMOUSE && event->val == KM_RELEASE) {
|
||||
else if (event->type == LEFTMOUSE && event->val != KM_PRESS) {
|
||||
button_activate_state(C, but, BUTTON_STATE_EXIT);
|
||||
}
|
||||
return WM_UI_HANDLER_BREAK;
|
||||
|
@ -5716,7 +5717,7 @@ static int ui_do_but_LINK(bContext *C, uiBut *but, uiHandleButtonData *data, con
|
|||
}
|
||||
else if (data->state == BUTTON_STATE_WAIT_RELEASE) {
|
||||
|
||||
if (event->type == LEFTMOUSE && event->val == KM_RELEASE) {
|
||||
if (event->type == LEFTMOUSE && event->val != KM_PRESS) {
|
||||
if (!(but->flag & UI_SELECT))
|
||||
data->cancel = true;
|
||||
button_activate_state(C, but, BUTTON_STATE_EXIT);
|
||||
|
@ -5799,7 +5800,7 @@ static int ui_do_but_TRACKPREVIEW(bContext *C, uiBlock *block, uiBut *but, uiHan
|
|||
ui_numedit_apply(C, block, but, data);
|
||||
}
|
||||
}
|
||||
else if (event->type == LEFTMOUSE && event->val == KM_RELEASE) {
|
||||
else if (event->type == LEFTMOUSE && event->val != KM_PRESS) {
|
||||
button_activate_state(C, but, BUTTON_STATE_EXIT);
|
||||
}
|
||||
return WM_UI_HANDLER_BREAK;
|
||||
|
@ -8315,7 +8316,7 @@ static int ui_handle_menu_event(
|
|||
|
||||
#ifdef USE_DRAG_POPUP
|
||||
if (menu->is_grab) {
|
||||
if (event->type == LEFTMOUSE && event->val == KM_RELEASE) {
|
||||
if (event->type == LEFTMOUSE) {
|
||||
menu->is_grab = false;
|
||||
retval = WM_UI_HANDLER_BREAK;
|
||||
}
|
||||
|
@ -8600,7 +8601,7 @@ static int ui_handle_menu_event(
|
|||
uiSafetyRct *saferct = block->saferct.first;
|
||||
|
||||
if (ELEM(event->type, LEFTMOUSE, MIDDLEMOUSE, RIGHTMOUSE) &&
|
||||
(event->val == KM_PRESS || event->click_type == KM_DBL_CLICK))
|
||||
ELEM(event->val, KM_PRESS, KM_DBL_CLICK))
|
||||
{
|
||||
if ((is_parent_menu == false) && (U.uiflag & USER_MENUOPENAUTO) == 0) {
|
||||
/* for root menus, allow clicking to close */
|
||||
|
@ -8977,11 +8978,6 @@ static int ui_pie_handler(bContext *C, const wmEvent *event, uiPopupBlockHandle
|
|||
|
||||
switch (event->type) {
|
||||
case MOUSEMOVE:
|
||||
/* verify we have a real mousemove */
|
||||
if (event->x == event->prevx && event->y == event->prevy) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (!is_click_style) {
|
||||
float len_sq = len_squared_v2v2(event_xy, block->pie_data.pie_center_init);
|
||||
|
||||
|
@ -9008,9 +9004,7 @@ static int ui_pie_handler(bContext *C, const wmEvent *event, uiPopupBlockHandle
|
|||
|
||||
case LEFTMOUSE:
|
||||
if (is_click_style) {
|
||||
/* the click_type test sends a second event on KM_CLICK that
|
||||
* may destroy nested pies even before they are drawn */
|
||||
if ((block->pie_data.flags & UI_PIE_INVALID_DIR) && (event->click_type != KM_CLICK)) {
|
||||
if (block->pie_data.flags & UI_PIE_INVALID_DIR) {
|
||||
menu->menuretval = UI_RETURN_CANCEL;
|
||||
}
|
||||
else {
|
||||
|
@ -9051,7 +9045,9 @@ static int ui_pie_handler(bContext *C, const wmEvent *event, uiPopupBlockHandle
|
|||
case YKEY:
|
||||
case ZKEY:
|
||||
{
|
||||
if ((event->val == KM_PRESS) && !IS_EVENT_MOD(event, shift, ctrl, oskey)) {
|
||||
if ((event->val == KM_PRESS || event->val == KM_DBL_CLICK) &&
|
||||
!IS_EVENT_MOD(event, shift, ctrl, oskey))
|
||||
{
|
||||
for (but = block->buttons.first; but; but = but->next) {
|
||||
if (but->menu_key == event->type) {
|
||||
ui_but_pie_button_activate(C, but, menu);
|
||||
|
@ -9158,9 +9154,8 @@ static int ui_handle_menus_recursive(
|
|||
|
||||
if (block->flag & UI_BLOCK_RADIAL)
|
||||
retval = ui_pie_handler(C, event, menu);
|
||||
else if ((event->type == LEFTMOUSE) || (event->click_type != KM_DBL_CLICK)) {
|
||||
else if (event->type == LEFTMOUSE || event->val != KM_DBL_CLICK)
|
||||
retval = ui_handle_menu_event(C, event, menu, level, is_parent_inside, is_parent_menu, is_floating);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -9196,16 +9191,10 @@ static int ui_region_handler(bContext *C, const wmEvent *event, void *UNUSED(use
|
|||
retval = ui_handle_list_event(C, event, ar);
|
||||
|
||||
if (retval == WM_UI_HANDLER_CONTINUE) {
|
||||
if (but) {
|
||||
if (but)
|
||||
retval = ui_handle_button_event(C, event, but);
|
||||
}
|
||||
else {
|
||||
else
|
||||
retval = ui_handle_button_over(C, event, ar);
|
||||
|
||||
/* let's make sure we are really not hovering a button by adding a mousemove!
|
||||
* XXX some WM_event_add_mousemove calls may become unnecessary with this and can be removed */
|
||||
WM_event_add_mousemove(C);
|
||||
}
|
||||
}
|
||||
|
||||
/* re-enable tooltips */
|
||||
|
|
|
@ -1865,7 +1865,7 @@ static int ui_handler_panel(bContext *C, const wmEvent *event, void *userdata)
|
|||
uiHandlePanelData *data = panel->activedata;
|
||||
|
||||
/* verify if we can stop */
|
||||
if (event->type == LEFTMOUSE && event->val == KM_RELEASE) {
|
||||
if (event->type == LEFTMOUSE && event->val != KM_PRESS) {
|
||||
ScrArea *sa = CTX_wm_area(C);
|
||||
ARegion *ar = CTX_wm_region(C);
|
||||
int align = panel_aligned(sa, ar);
|
||||
|
|
|
@ -2749,8 +2749,8 @@ uiPieMenu *UI_pie_menu_begin(struct bContext *C, const char *title, int icon, co
|
|||
pie->block_radial->puphash = ui_popup_menu_hash(title);
|
||||
pie->block_radial->flag |= UI_BLOCK_RADIAL;
|
||||
|
||||
/* if pie is spawned by a left click or on release, it is always assumed to be click style */
|
||||
if ((event->type == LEFTMOUSE) || (event->val == KM_RELEASE)) {
|
||||
/* if pie is spawned by a left click, it is always assumed to be click style */
|
||||
if (event->type == LEFTMOUSE) {
|
||||
pie->block_radial->pie_data.flags |= UI_PIE_CLICK_STYLE;
|
||||
pie->block_radial->pie_data.event = EVENT_NONE;
|
||||
win->lock_pie_event = EVENT_NONE;
|
||||
|
|
|
@ -2602,12 +2602,7 @@ void init_userdef_do_versions(void)
|
|||
cp[3] = 255;
|
||||
}
|
||||
}
|
||||
|
||||
if (U.versionfile < 274 || (U.versionfile == 274 && U.subversionfile < 3)) {
|
||||
if (U.click_timeout == 0)
|
||||
U.click_timeout = 250;
|
||||
}
|
||||
|
||||
|
||||
if (U.pixelsize == 0.0f)
|
||||
U.pixelsize = 1.0f;
|
||||
|
||||
|
|
|
@ -511,10 +511,6 @@ static int edbm_dupli_extrude_cursor_invoke(bContext *C, wmOperator *op, const w
|
|||
bool done = false;
|
||||
bool use_proj;
|
||||
|
||||
if (ELEM(event->click_type, KM_CLICK, KM_HOLD)) {
|
||||
return OPERATOR_CANCELLED;
|
||||
}
|
||||
|
||||
em_setup_viewcontext(C, &vc);
|
||||
|
||||
ED_view3d_init_mats_rv3d(vc.obedit, vc.rv3d);
|
||||
|
|
|
@ -407,7 +407,7 @@ void ED_keymap_mesh(wmKeyConfig *keyconf)
|
|||
/* Vertex Slide */
|
||||
WM_keymap_add_item(keymap, "TRANSFORM_OT_vert_slide", VKEY, KM_PRESS, KM_SHIFT, 0);
|
||||
/* use KM_CLICK because same key is used for tweaks */
|
||||
kmi = WM_keymap_add_item(keymap, "MESH_OT_dupli_extrude_cursor", ACTIONMOUSE, KM_RELEASE, KM_CTRL, 0);
|
||||
kmi = WM_keymap_add_item(keymap, "MESH_OT_dupli_extrude_cursor", ACTIONMOUSE, KM_CLICK, KM_CTRL, 0);
|
||||
RNA_boolean_set(kmi->ptr, "rotate_source", true);
|
||||
kmi = WM_keymap_add_item(keymap, "MESH_OT_dupli_extrude_cursor", ACTIONMOUSE, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
|
||||
RNA_boolean_set(kmi->ptr, "rotate_source", false);
|
||||
|
|
|
@ -295,7 +295,7 @@ void ED_keymap_object(wmKeyConfig *keyconf)
|
|||
keymap = WM_keymap_find(keyconf, "Object Non-modal", 0, 0);
|
||||
|
||||
/* Note: this keymap works disregarding mode */
|
||||
kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", TABKEY, KM_CLICK, 0, 0);
|
||||
kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", TABKEY, KM_PRESS, 0, 0);
|
||||
RNA_enum_set(kmi->ptr, "mode", OB_MODE_EDIT);
|
||||
RNA_boolean_set(kmi->ptr, "toggle", true);
|
||||
|
||||
|
|
|
@ -1140,11 +1140,8 @@ static int console_modal_select(bContext *C, wmOperator *op, const wmEvent *even
|
|||
case LEFTMOUSE:
|
||||
case MIDDLEMOUSE:
|
||||
case RIGHTMOUSE:
|
||||
if (event->val == KM_RELEASE) {
|
||||
console_cursor_set_exit(C, op);
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
break;
|
||||
console_cursor_set_exit(C, op);
|
||||
return OPERATOR_FINISHED;
|
||||
case MOUSEMOVE:
|
||||
console_modal_select_apply(C, op, event);
|
||||
break;
|
||||
|
|
|
@ -444,27 +444,27 @@ static void file_keymap(struct wmKeyConfig *keyconf)
|
|||
RNA_boolean_set(kmi->ptr, "need_active", true);
|
||||
|
||||
/* left mouse selects and opens */
|
||||
WM_keymap_add_item(keymap, "FILE_OT_select", LEFTMOUSE, KM_PRESS, 0, 0);
|
||||
kmi = WM_keymap_add_item(keymap, "FILE_OT_select", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0);
|
||||
WM_keymap_add_item(keymap, "FILE_OT_select", LEFTMOUSE, KM_CLICK, 0, 0);
|
||||
kmi = WM_keymap_add_item(keymap, "FILE_OT_select", LEFTMOUSE, KM_CLICK, KM_SHIFT, 0);
|
||||
RNA_boolean_set(kmi->ptr, "extend", true);
|
||||
kmi = WM_keymap_add_item(keymap, "FILE_OT_select", LEFTMOUSE, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
|
||||
kmi = WM_keymap_add_item(keymap, "FILE_OT_select", LEFTMOUSE, KM_CLICK, KM_CTRL | KM_SHIFT, 0);
|
||||
RNA_boolean_set(kmi->ptr, "extend", true);
|
||||
RNA_boolean_set(kmi->ptr, "fill", true);
|
||||
|
||||
/* right mouse selects without opening */
|
||||
kmi = WM_keymap_add_item(keymap, "FILE_OT_select", RIGHTMOUSE, KM_PRESS, 0, 0);
|
||||
kmi = WM_keymap_add_item(keymap, "FILE_OT_select", RIGHTMOUSE, KM_CLICK, 0, 0);
|
||||
RNA_boolean_set(kmi->ptr, "open", false);
|
||||
kmi = WM_keymap_add_item(keymap, "FILE_OT_select", RIGHTMOUSE, KM_PRESS, KM_SHIFT, 0);
|
||||
kmi = WM_keymap_add_item(keymap, "FILE_OT_select", RIGHTMOUSE, KM_CLICK, KM_SHIFT, 0);
|
||||
RNA_boolean_set(kmi->ptr, "extend", true);
|
||||
RNA_boolean_set(kmi->ptr, "open", false);
|
||||
kmi = WM_keymap_add_item(keymap, "FILE_OT_select", RIGHTMOUSE, KM_PRESS, KM_ALT, 0);
|
||||
kmi = WM_keymap_add_item(keymap, "FILE_OT_select", RIGHTMOUSE, KM_CLICK, KM_ALT, 0);
|
||||
RNA_boolean_set(kmi->ptr, "extend", true);
|
||||
RNA_boolean_set(kmi->ptr, "fill", true);
|
||||
RNA_boolean_set(kmi->ptr, "open", false);
|
||||
|
||||
/* front and back mouse folder navigation */
|
||||
WM_keymap_add_item(keymap, "FILE_OT_previous", BUTTON4MOUSE, KM_PRESS, 0, 0);
|
||||
WM_keymap_add_item(keymap, "FILE_OT_next", BUTTON5MOUSE, KM_PRESS, 0, 0);
|
||||
WM_keymap_add_item(keymap, "FILE_OT_previous", BUTTON4MOUSE, KM_CLICK, 0, 0);
|
||||
WM_keymap_add_item(keymap, "FILE_OT_next", BUTTON5MOUSE, KM_CLICK, 0, 0);
|
||||
|
||||
WM_keymap_add_item(keymap, "FILE_OT_select_all_toggle", AKEY, KM_PRESS, 0, 0);
|
||||
WM_keymap_add_item(keymap, "FILE_OT_refresh", PADPERIOD, KM_PRESS, 0, 0);
|
||||
|
|
|
@ -574,7 +574,7 @@ static void graphedit_keymap_keyframes(wmKeyConfig *keyconf, wmKeyMap *keymap)
|
|||
|
||||
/* insertkey */
|
||||
WM_keymap_add_item(keymap, "GRAPH_OT_keyframe_insert", IKEY, KM_PRESS, 0, 0);
|
||||
WM_keymap_add_item(keymap, "GRAPH_OT_click_insert", ACTIONMOUSE, KM_PRESS, KM_CTRL, 0);
|
||||
WM_keymap_add_item(keymap, "GRAPH_OT_click_insert", ACTIONMOUSE, KM_CLICK, KM_CTRL, 0);
|
||||
|
||||
/* copy/paste */
|
||||
WM_keymap_add_item(keymap, "GRAPH_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0);
|
||||
|
|
|
@ -633,14 +633,11 @@ static int node_link_modal(bContext *C, wmOperator *op, const wmEvent *event)
|
|||
case RIGHTMOUSE:
|
||||
case MIDDLEMOUSE:
|
||||
{
|
||||
if (event->val != KM_NOTHING) {
|
||||
node_link_exit(C, op, true);
|
||||
|
||||
ED_area_headerprint(CTX_wm_area(C), NULL);
|
||||
ED_region_tag_redraw(ar);
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
break;
|
||||
node_link_exit(C, op, true);
|
||||
|
||||
ED_area_headerprint(CTX_wm_area(C), NULL);
|
||||
ED_region_tag_redraw(ar);
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -91,19 +91,19 @@ void outliner_keymap(wmKeyConfig *keyconf)
|
|||
|
||||
WM_keymap_add_item(keymap, "OUTLINER_OT_item_rename", LEFTMOUSE, KM_DBL_CLICK, 0, 0);
|
||||
|
||||
kmi = WM_keymap_add_item(keymap, "OUTLINER_OT_item_activate", LEFTMOUSE, KM_PRESS, 0, 0);
|
||||
kmi = WM_keymap_add_item(keymap, "OUTLINER_OT_item_activate", LEFTMOUSE, KM_CLICK, 0, 0);
|
||||
RNA_boolean_set(kmi->ptr, "recursive", false);
|
||||
RNA_boolean_set(kmi->ptr, "extend", false);
|
||||
|
||||
kmi = WM_keymap_add_item(keymap, "OUTLINER_OT_item_activate", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0);
|
||||
kmi = WM_keymap_add_item(keymap, "OUTLINER_OT_item_activate", LEFTMOUSE, KM_CLICK, KM_SHIFT, 0);
|
||||
RNA_boolean_set(kmi->ptr, "recursive", false);
|
||||
RNA_boolean_set(kmi->ptr, "extend", true);
|
||||
|
||||
kmi = WM_keymap_add_item(keymap, "OUTLINER_OT_item_activate", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
|
||||
kmi = WM_keymap_add_item(keymap, "OUTLINER_OT_item_activate", LEFTMOUSE, KM_CLICK, KM_CTRL, 0);
|
||||
RNA_boolean_set(kmi->ptr, "recursive", true);
|
||||
RNA_boolean_set(kmi->ptr, "extend", false);
|
||||
|
||||
kmi = WM_keymap_add_item(keymap, "OUTLINER_OT_item_activate", LEFTMOUSE, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
|
||||
kmi = WM_keymap_add_item(keymap, "OUTLINER_OT_item_activate", LEFTMOUSE, KM_CLICK, KM_CTRL | KM_SHIFT, 0);
|
||||
RNA_boolean_set(kmi->ptr, "recursive", true);
|
||||
RNA_boolean_set(kmi->ptr, "extend", true);
|
||||
|
||||
|
|
|
@ -2163,11 +2163,6 @@ static int text_scroll_modal(bContext *C, wmOperator *op, const wmEvent *event)
|
|||
case LEFTMOUSE:
|
||||
case RIGHTMOUSE:
|
||||
case MIDDLEMOUSE:
|
||||
/* don't exit on dummy events */
|
||||
if (event->val == KM_NOTHING) {
|
||||
return OPERATOR_RUNNING_MODAL;
|
||||
}
|
||||
|
||||
if (ELEM(tsc->zone, SCROLLHANDLE_MIN_OUTSIDE, SCROLLHANDLE_MAX_OUTSIDE)) {
|
||||
txt_screen_skip(st, ar, st->viewlines * (tsc->zone == SCROLLHANDLE_MIN_OUTSIDE ? 1 : -1));
|
||||
|
||||
|
@ -2672,11 +2667,8 @@ static int text_set_selection_modal(bContext *C, wmOperator *op, const wmEvent *
|
|||
case LEFTMOUSE:
|
||||
case MIDDLEMOUSE:
|
||||
case RIGHTMOUSE:
|
||||
if (event->val != KM_NOTHING) {
|
||||
text_cursor_set_exit(C, op);
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
break;
|
||||
text_cursor_set_exit(C, op);
|
||||
return OPERATOR_FINISHED;
|
||||
case TIMER:
|
||||
case MOUSEMOVE:
|
||||
text_cursor_set_apply(C, op, event);
|
||||
|
|
|
@ -237,7 +237,7 @@ void view3d_keymap(wmKeyConfig *keyconf)
|
|||
WM_keymap_verify_item(keymap, "VIEW3D_OT_navigate", FKEY, KM_PRESS, KM_SHIFT, 0);
|
||||
|
||||
/* value is set to KM_NOTHING to avoid conflicts with click type (see T44251) */
|
||||
WM_keymap_verify_item(keymap, "VIEW3D_OT_smoothview", TIMER1, KM_NOTHING, KM_ANY, 0);
|
||||
WM_keymap_verify_item(keymap, "VIEW3D_OT_smoothview", TIMER1, KM_ANY, KM_ANY, 0);
|
||||
|
||||
WM_keymap_add_item(keymap, "VIEW3D_OT_rotate", MOUSEPAN, 0, 0, 0);
|
||||
WM_keymap_add_item(keymap, "VIEW3D_OT_rotate", MOUSEROTATE, 0, 0, 0);
|
||||
|
@ -387,7 +387,7 @@ void view3d_keymap(wmKeyConfig *keyconf)
|
|||
|
||||
/* drawtype */
|
||||
|
||||
kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle_enum", ZKEY, KM_CLICK, 0, 0);
|
||||
kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle_enum", ZKEY, KM_PRESS, 0, 0);
|
||||
RNA_string_set(kmi->ptr, "data_path", "space_data.viewport_shade");
|
||||
RNA_string_set(kmi->ptr, "value_1", "SOLID");
|
||||
RNA_string_set(kmi->ptr, "value_2", "WIREFRAME");
|
||||
|
|
|
@ -866,10 +866,10 @@ wmKeyMap *transform_modal_keymap(wmKeyConfig *keyconf)
|
|||
keymap = WM_modalkeymap_add(keyconf, "Transform Modal Map", modal_items);
|
||||
|
||||
/* items for modal map */
|
||||
WM_modalkeymap_add_item(keymap, ESCKEY, KM_RELEASE, KM_ANY, 0, TFM_MODAL_CANCEL);
|
||||
WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_RELEASE, KM_ANY, 0, TFM_MODAL_CONFIRM);
|
||||
WM_modalkeymap_add_item(keymap, RETKEY, KM_RELEASE, KM_ANY, 0, TFM_MODAL_CONFIRM);
|
||||
WM_modalkeymap_add_item(keymap, PADENTER, KM_RELEASE, KM_ANY, 0, TFM_MODAL_CONFIRM);
|
||||
WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, TFM_MODAL_CANCEL);
|
||||
WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_PRESS, KM_ANY, 0, TFM_MODAL_CONFIRM);
|
||||
WM_modalkeymap_add_item(keymap, RETKEY, KM_PRESS, KM_ANY, 0, TFM_MODAL_CONFIRM);
|
||||
WM_modalkeymap_add_item(keymap, PADENTER, KM_PRESS, KM_ANY, 0, TFM_MODAL_CONFIRM);
|
||||
|
||||
WM_modalkeymap_add_item(keymap, GKEY, KM_PRESS, 0, 0, TFM_MODAL_TRANSLATE);
|
||||
WM_modalkeymap_add_item(keymap, RKEY, KM_PRESS, 0, 0, TFM_MODAL_ROTATE);
|
||||
|
|
|
@ -447,9 +447,7 @@ typedef struct UserDef {
|
|||
|
||||
short versions;
|
||||
short dbl_click_time;
|
||||
short click_timeout;
|
||||
short pad3;
|
||||
|
||||
|
||||
short gameflags;
|
||||
short wheellinescroll;
|
||||
int uiflag, uiflag2;
|
||||
|
@ -467,8 +465,7 @@ typedef struct UserDef {
|
|||
char pad2[2];
|
||||
short transopts;
|
||||
short menuthreshold1, menuthreshold2;
|
||||
int pad4;
|
||||
|
||||
|
||||
struct ListBase themes;
|
||||
struct ListBase uifonts;
|
||||
struct ListBase uistyles;
|
||||
|
|
|
@ -253,8 +253,7 @@ typedef struct wmKeyMapItem {
|
|||
|
||||
/* event */
|
||||
short type; /* event code itself */
|
||||
short val; /* NOTE: other than event->val this can be the value itself
|
||||
* (KM_ANY, KM_PRESS, etc) AND the clicktype (KM_DBL_CLICK, KM_HOLD, etc) */
|
||||
short val; /* KM_ANY, KM_PRESS, KM_NOTHING etc */
|
||||
short shift, ctrl, alt, oskey; /* oskey is apple or windowskey, value denotes order of pressed */
|
||||
short keymodifier; /* rawkey modifier */
|
||||
|
||||
|
|
|
@ -4324,16 +4324,12 @@ static void rna_def_userdef_input(BlenderRNA *brna)
|
|||
RNA_def_property_boolean_sdna(prop, NULL, "ndof_flag", NDOF_FLY_HELICOPTER);
|
||||
RNA_def_property_ui_text(prop, "Helicopter Mode", "Device up/down directly controls your Z position");
|
||||
|
||||
prop = RNA_def_property(srna, "double_click_time", PROP_INT, PROP_NONE);
|
||||
|
||||
prop = RNA_def_property(srna, "mouse_double_click_time", PROP_INT, PROP_NONE);
|
||||
RNA_def_property_int_sdna(prop, NULL, "dbl_click_time");
|
||||
RNA_def_property_range(prop, 1, 1000);
|
||||
RNA_def_property_ui_text(prop, "Double Click Timeout", "Time/delay (in ms) for a double click");
|
||||
|
||||
prop = RNA_def_property(srna, "click_timeout", PROP_INT, PROP_NONE);
|
||||
RNA_def_property_int_sdna(prop, NULL, "click_timeout");
|
||||
RNA_def_property_range(prop, 0, 10000);
|
||||
RNA_def_property_ui_text(prop, "Click Timeout", "Time (in ms) to determine if a key is clicked or held");
|
||||
|
||||
prop = RNA_def_property(srna, "use_mouse_emulate_3_button", PROP_BOOLEAN, PROP_NONE);
|
||||
RNA_def_property_boolean_sdna(prop, NULL, "flag", USER_TWOBUTTONMOUSE);
|
||||
RNA_def_property_ui_text(prop, "Emulate 3 Button Mouse",
|
||||
|
|
|
@ -49,7 +49,6 @@ static EnumPropertyItem event_keymouse_value_items[] = {
|
|||
{KM_PRESS, "PRESS", 0, "Press", ""},
|
||||
{KM_RELEASE, "RELEASE", 0, "Release", ""},
|
||||
{KM_CLICK, "CLICK", 0, "Click", ""},
|
||||
{KM_HOLD, "HOLD", 0, "Hold", ""},
|
||||
{KM_DBL_CLICK, "DOUBLE_CLICK", 0, "Double Click", ""},
|
||||
{0, NULL, 0, NULL, NULL}
|
||||
};
|
||||
|
@ -381,7 +380,6 @@ EnumPropertyItem event_value_items[] = {
|
|||
{KM_PRESS, "PRESS", 0, "Press", ""},
|
||||
{KM_RELEASE, "RELEASE", 0, "Release", ""},
|
||||
{KM_CLICK, "CLICK", 0, "Click", ""},
|
||||
{KM_HOLD, "HOLD", 0, "Hold", ""},
|
||||
{KM_DBL_CLICK, "DOUBLE_CLICK", 0, "Double Click", ""},
|
||||
{EVT_GESTURE_N, "NORTH", 0, "North", ""},
|
||||
{EVT_GESTURE_NE, "NORTH_EAST", 0, "North-East", ""},
|
||||
|
|
|
@ -180,11 +180,9 @@ enum {
|
|||
#define KM_NOTHING 0
|
||||
#define KM_PRESS 1
|
||||
#define KM_RELEASE 2
|
||||
#define KM_CLICK 3
|
||||
#define KM_DBL_CLICK 4
|
||||
|
||||
/* clicktype */
|
||||
#define KM_CLICK 3 /* clicked key (click_time <= U.click_timeout) */
|
||||
#define KM_DBL_CLICK 4 /* double click - keep at 4 to avoid breakage with older key configs */
|
||||
#define KM_HOLD 5 /* held key (click_time > U.click_timeout) */
|
||||
|
||||
/* ************** UI Handler ***************** */
|
||||
|
||||
|
@ -429,9 +427,7 @@ typedef struct wmEvent {
|
|||
|
||||
short type; /* event code itself (short, is also in keymap) */
|
||||
short val; /* press, release, scrollvalue */
|
||||
short click_type; /* click, hold or double click */
|
||||
int x, y; /* mouse pointer position, screen coord */
|
||||
double click_time; /* the time since keypress started */
|
||||
int mval[2]; /* region mouse position, name convention pre 2.5 :) */
|
||||
char utf8_buf[6]; /* from, ghost if utf8 is enabled for the platform,
|
||||
* BLI_str_utf8_size() must _always_ be valid, check
|
||||
|
@ -439,19 +435,20 @@ typedef struct wmEvent {
|
|||
char ascii; /* from ghost, fallback if utf8 isn't set */
|
||||
char pad;
|
||||
|
||||
bool is_key_pressed; /* is a (non-modifier) key is pressed? (keyboard, mouse, NDOF, ...) */
|
||||
|
||||
/* previous state, used for clicktype */
|
||||
/* previous state, used for double click and the 'click' */
|
||||
short prevtype;
|
||||
short prevval;
|
||||
int prevx, prevy;
|
||||
double prevclick_time;
|
||||
double prevclicktime;
|
||||
int prevclickx, prevclicky;
|
||||
|
||||
/* modifier states */
|
||||
short shift, ctrl, alt, oskey; /* oskey is apple or windowskey, value denotes order of pressed */
|
||||
short keymodifier; /* rawkey modifier */
|
||||
|
||||
/* set in case a KM_PRESS went by unhandled */
|
||||
short check_click;
|
||||
|
||||
/* keymap item, set by handler (weak?) */
|
||||
const char *keymap_idname;
|
||||
|
||||
|
|
|
@ -404,7 +404,7 @@ static int wm_handler_ui_call(bContext *C, wmEventHandler *handler, wmEvent *eve
|
|||
* to make the DBL_CLICK conversion work, we just don't send this to UI, except mouse clicks */
|
||||
if (((handler->flag & WM_HANDLER_ACCEPT_DBL_CLICK) == 0) &&
|
||||
(event->type != LEFTMOUSE) &&
|
||||
(event->click_type == KM_DBL_CLICK))
|
||||
(event->val == KM_DBL_CLICK))
|
||||
{
|
||||
return WM_HANDLER_CONTINUE;
|
||||
}
|
||||
|
@ -1442,7 +1442,6 @@ int WM_userdef_event_map(int kmitype)
|
|||
}
|
||||
|
||||
|
||||
/* XXX rename to something more descriptive like wm_event_is_keymapitem_matching and use bool */
|
||||
static int wm_eventmatch(wmEvent *winevent, wmKeyMapItem *kmi)
|
||||
{
|
||||
int kmitype = WM_userdef_event_map(kmi->type);
|
||||
|
@ -1459,13 +1458,10 @@ static int wm_eventmatch(wmEvent *winevent, wmKeyMapItem *kmi)
|
|||
|
||||
if (kmitype != KM_ANY)
|
||||
if (winevent->type != kmitype) return 0;
|
||||
|
||||
/* KM_ANY excludes KM_HOLD since it's time based and not a real input - filter it out */
|
||||
if (kmi->val == KM_ANY && winevent->click_type == KM_HOLD) return 0;
|
||||
|
||||
|
||||
if (kmi->val != KM_ANY)
|
||||
if (!ELEM(kmi->val, winevent->val, winevent->click_type)) return 0;
|
||||
|
||||
if (winevent->val != kmi->val) return 0;
|
||||
|
||||
/* modifiers also check bits, so it allows modifier order */
|
||||
if (kmi->shift != KM_ANY)
|
||||
if (winevent->shift != kmi->shift && !(winevent->shift & kmi->shift)) return 0;
|
||||
|
@ -1512,9 +1508,8 @@ static void wm_event_modalkeymap(const bContext *C, wmOperator *op, wmEvent *eve
|
|||
/* modal keymap checking returns handled events fine, but all hardcoded modal
|
||||
* handling typically swallows all events (OPERATOR_RUNNING_MODAL).
|
||||
* This bypass just disables support for double clicks in hardcoded modal handlers */
|
||||
if (event->click_type == KM_DBL_CLICK) {
|
||||
if (event->val == KM_DBL_CLICK) {
|
||||
event->val = KM_PRESS;
|
||||
event->click_type = 0;
|
||||
*dbl_click_disabled = true;
|
||||
}
|
||||
}
|
||||
|
@ -1546,9 +1541,9 @@ static void wm_event_modalmap_end(wmEvent *event, bool dbl_click_disabled)
|
|||
event->val = event->prevval;
|
||||
event->prevval = 0;
|
||||
}
|
||||
else if (dbl_click_disabled) {
|
||||
event->click_type = KM_DBL_CLICK;
|
||||
}
|
||||
else if (dbl_click_disabled)
|
||||
event->val = KM_DBL_CLICK;
|
||||
|
||||
}
|
||||
|
||||
/* Warning: this function removes a modal handler, when finished */
|
||||
|
@ -2026,21 +2021,47 @@ static int wm_handlers_do(bContext *C, wmEvent *event, ListBase *handlers)
|
|||
/* test for CLICK events */
|
||||
if (wm_action_not_handled(action)) {
|
||||
wmWindow *win = CTX_wm_window(C);
|
||||
|
||||
/* XXX check if those double click hacks can be removed/improved since click_type was introduced */
|
||||
|
||||
/* eventstate stores if previous event was a KM_PRESS, in case that
|
||||
* wasn't handled, the KM_RELEASE will become a KM_CLICK */
|
||||
|
||||
if (win && event->val == KM_PRESS) {
|
||||
win->eventstate->check_click = true;
|
||||
}
|
||||
|
||||
if (win && win->eventstate->prevtype == event->type) {
|
||||
if (event->click_type == KM_DBL_CLICK) {
|
||||
|
||||
if ((event->val == KM_RELEASE) &&
|
||||
(win->eventstate->prevval == KM_PRESS) &&
|
||||
(win->eventstate->check_click == true))
|
||||
{
|
||||
event->val = KM_CLICK;
|
||||
|
||||
if (G.debug & (G_DEBUG_HANDLERS)) {
|
||||
printf("%s: handling CLICK\n", __func__);
|
||||
}
|
||||
|
||||
action |= wm_handlers_do_intern(C, event, handlers);
|
||||
|
||||
event->val = KM_RELEASE;
|
||||
}
|
||||
else if (event->val == KM_DBL_CLICK) {
|
||||
event->val = KM_PRESS;
|
||||
event->click_type = 0;
|
||||
action |= wm_handlers_do_intern(C, event, handlers);
|
||||
|
||||
/* revert value if not handled */
|
||||
if (wm_action_not_handled(action)) {
|
||||
event->click_type = KM_DBL_CLICK;
|
||||
event->val = KM_DBL_CLICK;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
wmWindow *win = CTX_wm_window(C);
|
||||
|
||||
if (win)
|
||||
win->eventstate->check_click = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return action;
|
||||
|
@ -2984,50 +3005,22 @@ static wmWindow *wm_event_cursor_other_windows(wmWindowManager *wm, wmWindow *wi
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clicktype test
|
||||
*
|
||||
* We have 3 different click_types: #KM_CLICK, #KM_HOLD# and #KM_DBL_CLICK.
|
||||
*
|
||||
* Time is used to determine, what to send. It works as follows:
|
||||
* - #KM_RELEASE && time since first #KM_PRESS < U.click_timeout --> send #KM_CLICK
|
||||
* - #KM_PRESS && time since first #KM_PRESS > U.click_timeout --> send #KM_HOLD
|
||||
* - #KM_PRESS after a #KM_RELEASE && time since previous #KM_PRESS < U.dbl_click_time --> send #KM_DBL_CLICK
|
||||
*
|
||||
* \note: only #KM_DBL_CLICK is handled here, rest in #wm_window_event_clicktype_init (wm_window.c)
|
||||
*/
|
||||
static void wm_event_clicktype_init(wmWindow *win, wmEvent *event, wmEvent *event_state)
|
||||
static bool wm_event_is_double_click(wmEvent *event, wmEvent *event_state)
|
||||
{
|
||||
short click_type = 0;
|
||||
|
||||
if ((event->val == KM_PRESS) &&
|
||||
(event_state->prevval != KM_PRESS || event->prevtype != win->eventstate->prevtype))
|
||||
{
|
||||
event_state->prevclick_time = event->click_time;
|
||||
event_state->prevclickx = event->x;
|
||||
event_state->prevclicky = event->y;
|
||||
}
|
||||
|
||||
/* double click */
|
||||
if (event->type == event_state->prevtype &&
|
||||
event_state->prevval == KM_RELEASE &&
|
||||
event->val == KM_PRESS)
|
||||
if ((event->type == event_state->prevtype) &&
|
||||
(event_state->prevval == KM_RELEASE) &&
|
||||
(event->val == KM_PRESS))
|
||||
{
|
||||
if ((ISMOUSE(event->type) == false) || ((ABS(event->x - event_state->prevclickx)) <= 2 &&
|
||||
(ABS(event->y - event_state->prevclicky)) <= 2))
|
||||
{
|
||||
if ((PIL_check_seconds_timer() - event_state->prevclick_time) * 1000 < U.dbl_click_time) {
|
||||
click_type = KM_DBL_CLICK;
|
||||
if (G.debug & (G_DEBUG_HANDLERS | G_DEBUG_EVENTS)) {
|
||||
printf("%s Send double click event\n", __func__);
|
||||
}
|
||||
if ((PIL_check_seconds_timer() - event_state->prevclicktime) * 1000 < U.dbl_click_time) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (click_type != event->click_type) {
|
||||
event_state->click_type = event->click_type = click_type;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static void wm_event_add_mousemove(wmWindow *win, const wmEvent *event)
|
||||
|
@ -3159,9 +3152,6 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U
|
|||
evt->val = event.val;
|
||||
evt->type = event.type;
|
||||
|
||||
/* click_type */
|
||||
wm_event_clicktype_init(win, &event, evt);
|
||||
|
||||
if (win->active == 0) {
|
||||
int cx, cy;
|
||||
|
||||
|
@ -3172,6 +3162,18 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U
|
|||
event.y = evt->y = cy;
|
||||
}
|
||||
|
||||
/* double click test */
|
||||
if (wm_event_is_double_click(&event, evt)) {
|
||||
if (G.debug & (G_DEBUG_HANDLERS | G_DEBUG_EVENTS))
|
||||
printf("%s Send double click\n", __func__);
|
||||
event.val = KM_DBL_CLICK;
|
||||
}
|
||||
if (event.val == KM_PRESS) {
|
||||
evt->prevclicktime = PIL_check_seconds_timer();
|
||||
evt->prevclickx = event.x;
|
||||
evt->prevclicky = event.y;
|
||||
}
|
||||
|
||||
/* add to other window if event is there (not to both!) */
|
||||
owin = wm_event_cursor_other_windows(wm, win, &event);
|
||||
if (owin) {
|
||||
|
@ -3210,10 +3212,7 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U
|
|||
/* copy to event state */
|
||||
evt->val = event.val;
|
||||
evt->type = event.type;
|
||||
|
||||
/* clicktype */
|
||||
wm_event_clicktype_init(win, &event, evt);
|
||||
|
||||
|
||||
/* exclude arrow keys, esc, etc from text input */
|
||||
if (type == GHOST_kEventKeyUp) {
|
||||
event.ascii = '\0';
|
||||
|
@ -3279,6 +3278,14 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U
|
|||
event.keymodifier = evt->keymodifier = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
/* double click test */
|
||||
/* if previous event was same type, and previous was release, and now it presses... */
|
||||
if (wm_event_is_double_click(&event, evt)) {
|
||||
if (G.debug & (G_DEBUG_HANDLERS | G_DEBUG_EVENTS))
|
||||
printf("%s Send double click\n", __func__);
|
||||
evt->val = event.val = KM_DBL_CLICK;
|
||||
}
|
||||
|
||||
/* this case happens on holding a key pressed, it should not generate
|
||||
* press events events with the same key as modifier */
|
||||
|
@ -3299,6 +3306,13 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U
|
|||
G.is_break = true;
|
||||
}
|
||||
|
||||
/* double click test - only for press */
|
||||
if (event.val == KM_PRESS) {
|
||||
evt->prevclicktime = PIL_check_seconds_timer();
|
||||
evt->prevclickx = event.x;
|
||||
evt->prevclicky = event.y;
|
||||
}
|
||||
|
||||
wm_event_add(win, &event);
|
||||
|
||||
break;
|
||||
|
|
|
@ -1192,15 +1192,11 @@ int WM_keymap_item_compare(wmKeyMapItem *k1, wmKeyMapItem *k2)
|
|||
return 0;
|
||||
|
||||
if (k1->val != KM_ANY && k2->val != KM_ANY) {
|
||||
|
||||
#if 0 /* thanks to clicktype those shouldn't be needed anymore */
|
||||
/* take click, press, release conflict into account */
|
||||
if (k1->val == KM_CLICK && ELEM(k2->val, KM_PRESS, KM_RELEASE, KM_CLICK) == 0)
|
||||
return 0;
|
||||
if (k2->val == KM_CLICK && ELEM(k1->val, KM_PRESS, KM_RELEASE, KM_CLICK) == 0)
|
||||
return 0;
|
||||
#endif
|
||||
|
||||
if (k1->val != k2->val)
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -5149,7 +5149,7 @@ void wm_window_keymap(wmKeyConfig *keyconf)
|
|||
WM_keymap_verify_item(keymap, "WM_OT_debug_menu", DKEY, KM_PRESS, KM_ALT | KM_CTRL, 0);
|
||||
|
||||
/* menus that can be accessed anywhere in blender */
|
||||
WM_keymap_verify_item(keymap, "WM_OT_search_menu", SPACEKEY, KM_CLICK, 0, 0);
|
||||
WM_keymap_verify_item(keymap, "WM_OT_search_menu", SPACEKEY, KM_PRESS, 0, 0);
|
||||
WM_keymap_add_menu(keymap, "USERPREF_MT_ndof_settings", NDOF_BUTTON_MENU, KM_PRESS, 0, 0);
|
||||
|
||||
/* Space switching */
|
||||
|
|
|
@ -1106,76 +1106,6 @@ static int ghost_event_proc(GHOST_EventHandle evt, GHOST_TUserDataPtr C_void_ptr
|
|||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* #KM_DBL_CLICK is set in wm_event_clicktype_init (wm_event_system.c)
|
||||
* Normally, this should be there too, but for #KM_CLICK/#KM_HOLD, we need a
|
||||
* time precision of a few milliseconds, which we can't get from there
|
||||
*/
|
||||
static void wm_window_event_clicktype_init(const bContext *C)
|
||||
{
|
||||
wmWindowManager *wm = CTX_wm_manager(C);
|
||||
|
||||
if (wm->winactive) {
|
||||
wmWindow *win = wm->winactive;
|
||||
wmEvent *event = win->eventstate;
|
||||
short click_type = event->click_type;
|
||||
|
||||
BLI_assert(event != NULL);
|
||||
|
||||
if ((event->type == EVENT_NONE) ||
|
||||
((event->val == KM_NOTHING) && (event->is_key_pressed == false)))
|
||||
{
|
||||
/* nothing needs to be done here */
|
||||
return;
|
||||
}
|
||||
|
||||
/* we always want click_type of last clicked button (to enable
|
||||
* use with modifier keys) - unnecessary for mouse though */
|
||||
if (!ISMOUSE(event->type) &&
|
||||
event->val == KM_PRESS &&
|
||||
event->type != event->keymodifier)
|
||||
{
|
||||
event->is_key_pressed = false;
|
||||
}
|
||||
else if (event->val == KM_PRESS && !event->is_key_pressed) {
|
||||
event->is_key_pressed = true;
|
||||
event->click_time = PIL_check_seconds_timer();
|
||||
}
|
||||
else if (event->val == KM_RELEASE && event->is_key_pressed) {
|
||||
event->is_key_pressed = false;
|
||||
}
|
||||
else if (event->is_key_pressed == false) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* the actual test */
|
||||
if ((PIL_check_seconds_timer() - event->click_time) * 1000 <= U.click_timeout) {
|
||||
/* for any reason some X11 systems send two release events triggering two KM_CLICK
|
||||
* events - making the rules more strict by checking for prevval resolves this */
|
||||
if (event->val == KM_RELEASE && event->prevval != KM_RELEASE) {
|
||||
click_type = KM_CLICK;
|
||||
if (G.debug & (G_DEBUG_HANDLERS | G_DEBUG_EVENTS)) {
|
||||
printf("%s Send click event\n", __func__);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (event->is_key_pressed) {
|
||||
click_type = KM_HOLD;
|
||||
if (G.debug & (G_DEBUG_HANDLERS | G_DEBUG_EVENTS)) {
|
||||
printf("%s Send hold event\n", __func__);
|
||||
}
|
||||
|
||||
/* the event we send in this case is a "dummy" event - don't send value */
|
||||
event->val = KM_NOTHING;
|
||||
}
|
||||
|
||||
/* send event with new click_type */
|
||||
if (event->click_type != click_type) {
|
||||
event->click_type = click_type;
|
||||
wm_event_add(win, event);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* This timer system only gives maximum 1 timer event per redraw cycle,
|
||||
* to prevent queues to get overloaded.
|
||||
|
@ -1235,11 +1165,7 @@ void wm_window_process_events(const bContext *C)
|
|||
|
||||
if (hasevent)
|
||||
GHOST_DispatchEvents(g_system);
|
||||
|
||||
/* not nice to have this here, but it's the only place
|
||||
* that can call it with the needed time precision */
|
||||
wm_window_event_clicktype_init(C);
|
||||
|
||||
|
||||
hasevent |= wm_window_timer(C);
|
||||
|
||||
/* no event, we sleep 5 milliseconds */
|
||||
|
|
Loading…
Reference in New Issue