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:
@@ -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)
|
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_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.extend = False
|
||||||
kmi.properties.recursive = 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.extend = True
|
||||||
kmi.properties.recursive = False
|
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.extend = False
|
||||||
kmi.properties.recursive = True
|
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.extend = True
|
||||||
kmi.properties.recursive = True
|
kmi.properties.recursive = True
|
||||||
kmi = km.keymap_items.new('outliner.select_border', 'B', 'PRESS')
|
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.properties.flipped = False
|
||||||
kmi = km.keymap_items.new('pose.paste', 'V', 'PRESS', shift=True, ctrl=True)
|
kmi = km.keymap_items.new('pose.paste', 'V', 'PRESS', shift=True, ctrl=True)
|
||||||
kmi.properties.flipped = 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.properties.action = 'TOGGLE'
|
||||||
kmi = km.keymap_items.new('pose.select_all', 'I', 'PRESS', ctrl=True)
|
kmi = km.keymap_items.new('pose.select_all', 'I', 'PRESS', ctrl=True)
|
||||||
kmi.properties.action = 'INVERT'
|
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.data_path = 'space_data.viewport_shade'
|
||||||
kmi.properties.value_1 = 'SOLID'
|
kmi.properties.value_1 = 'SOLID'
|
||||||
kmi.properties.value_2 = 'TEXTURED'
|
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.extend = False
|
||||||
kmi.properties.deselect = False
|
kmi.properties.deselect = False
|
||||||
kmi.properties.toggle = False
|
kmi.properties.toggle = False
|
||||||
kmi.properties.center = False
|
kmi.properties.center = False
|
||||||
kmi.properties.enumerate = False
|
kmi.properties.enumerate = False
|
||||||
kmi.properties.object = 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.extend = False
|
||||||
kmi.properties.deselect = False
|
kmi.properties.deselect = False
|
||||||
kmi.properties.toggle = True
|
kmi.properties.toggle = True
|
||||||
kmi.properties.center = False
|
kmi.properties.center = False
|
||||||
kmi.properties.enumerate = False
|
kmi.properties.enumerate = False
|
||||||
kmi.properties.object = 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.extend = False
|
||||||
kmi.properties.deselect = False
|
kmi.properties.deselect = False
|
||||||
kmi.properties.toggle = False
|
kmi.properties.toggle = False
|
||||||
kmi.properties.center = True
|
kmi.properties.center = True
|
||||||
kmi.properties.enumerate = False
|
kmi.properties.enumerate = False
|
||||||
kmi.properties.object = True
|
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.extend = False
|
||||||
kmi.properties.deselect = False
|
kmi.properties.deselect = False
|
||||||
kmi.properties.toggle = False
|
kmi.properties.toggle = False
|
||||||
kmi.properties.center = False
|
kmi.properties.center = False
|
||||||
kmi.properties.enumerate = True
|
kmi.properties.enumerate = True
|
||||||
kmi.properties.object = 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.extend = True
|
||||||
kmi.properties.deselect = False
|
kmi.properties.deselect = False
|
||||||
kmi.properties.toggle = True
|
kmi.properties.toggle = True
|
||||||
kmi.properties.center = True
|
kmi.properties.center = True
|
||||||
kmi.properties.enumerate = False
|
kmi.properties.enumerate = False
|
||||||
kmi.properties.object = 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.extend = False
|
||||||
kmi.properties.deselect = False
|
kmi.properties.deselect = False
|
||||||
kmi.properties.toggle = False
|
kmi.properties.toggle = False
|
||||||
kmi.properties.center = True
|
kmi.properties.center = True
|
||||||
kmi.properties.enumerate = True
|
kmi.properties.enumerate = True
|
||||||
kmi.properties.object = 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 = False
|
kmi.properties.extend = False
|
||||||
kmi.properties.deselect = False
|
kmi.properties.deselect = False
|
||||||
kmi.properties.toggle = True
|
kmi.properties.toggle = True
|
||||||
kmi.properties.center = False
|
kmi.properties.center = False
|
||||||
kmi.properties.enumerate = True
|
kmi.properties.enumerate = True
|
||||||
kmi.properties.object = 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 = False
|
kmi.properties.extend = False
|
||||||
kmi.properties.deselect = False
|
kmi.properties.deselect = False
|
||||||
kmi.properties.toggle = True
|
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.delete', 'DEL', 'PRESS')
|
||||||
kmi = km.keymap_items.new('graph.duplicate_move', 'D', 'PRESS', shift=True)
|
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.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.copy', 'C', 'PRESS', ctrl=True)
|
||||||
kmi = km.keymap_items.new('graph.paste', 'V', '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)
|
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 = km.keymap_items.new('file.execute', 'LEFTMOUSE', 'DOUBLE_CLICK')
|
||||||
kmi.properties.need_active = True
|
kmi.properties.need_active = True
|
||||||
kmi = km.keymap_items.new('file.select', 'LEFTMOUSE', 'PRESS')
|
kmi = km.keymap_items.new('file.select', 'LEFTMOUSE', 'CLICK')
|
||||||
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.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.extend = True
|
||||||
kmi.properties.fill = 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.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.extend = True
|
||||||
kmi.properties.open = False
|
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.extend = True
|
||||||
kmi.properties.fill = True
|
kmi.properties.fill = True
|
||||||
kmi.properties.open = False
|
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.split', 'Y', 'PRESS')
|
||||||
kmi = km.keymap_items.new('mesh.vert_connect', 'J', '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('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.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.properties.rotate_source = False
|
||||||
kmi = km.keymap_items.new('wm.call_menu', 'X', 'PRESS')
|
kmi = km.keymap_items.new('wm.call_menu', 'X', 'PRESS')
|
||||||
kmi.properties.name = 'VIEW3D_MT_edit_mesh_delete'
|
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 = km.keymap_items.new('wm.call_menu', 'A', 'PRESS', shift=True)
|
||||||
kmi.properties.name = 'INFO_MT_edit_curve_add'
|
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.handle_type_set', 'V', 'PRESS')
|
||||||
kmi = km.keymap_items.new('curve.vertex_add', 'LEFTMOUSE', 'PRESS', ctrl=True)
|
kmi = km.keymap_items.new('curve.vertex_add', 'LEFTMOUSE', 'CLICK', ctrl=True)
|
||||||
kmi = km.keymap_items.new('curve.select_all', 'LEFTMOUSE', 'PRESS')
|
kmi = km.keymap_items.new('curve.select_all', 'LEFTMOUSE', 'CLICK')
|
||||||
kmi.properties.action = 'TOGGLE'
|
kmi.properties.action = 'TOGGLE'
|
||||||
kmi = km.keymap_items.new('curve.select_all', 'I', 'PRESS', ctrl=True)
|
kmi = km.keymap_items.new('curve.select_all', 'I', 'PRESS', ctrl=True)
|
||||||
kmi.properties.action = 'INVERT'
|
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.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_set', 'P', 'PRESS', ctrl=True)
|
||||||
kmi = km.keymap_items.new('armature.parent_clear', 'P', 'PRESS', alt=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.properties.action = 'TOGGLE'
|
||||||
kmi = km.keymap_items.new('armature.select_all', 'I', 'PRESS', ctrl=True)
|
kmi = km.keymap_items.new('armature.select_all', 'I', 'PRESS', ctrl=True)
|
||||||
kmi.properties.action = 'INVERT'
|
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.duplicate_move', 'D', 'PRESS', shift=True)
|
||||||
kmi = km.keymap_items.new('armature.extrude_move', 'E', 'PRESS')
|
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.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.fill', 'F', 'PRESS', ctrl=True)
|
||||||
kmi = km.keymap_items.new('armature.merge', 'M', '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)
|
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', 'X', 'PRESS')
|
||||||
kmi = km.keymap_items.new('mball.delete_metaelems', 'DEL', '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.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.properties.action = 'TOGGLE'
|
||||||
kmi = km.keymap_items.new('mball.select_all', 'I', 'PRESS', ctrl=True)
|
kmi = km.keymap_items.new('mball.select_all', 'I', 'PRESS', ctrl=True)
|
||||||
kmi.properties.action = 'INVERT'
|
kmi.properties.action = 'INVERT'
|
||||||
@@ -2366,7 +2366,7 @@ kmi.properties.value_2 = 'CONNECTED'
|
|||||||
# Map Lattice
|
# Map Lattice
|
||||||
km = kc.keymaps.new('Lattice', space_type='EMPTY', region_type='WINDOW', modal=False)
|
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.properties.action = 'TOGGLE'
|
||||||
kmi = km.keymap_items.new('lattice.select_all', 'I', 'PRESS', ctrl=True)
|
kmi = km.keymap_items.new('lattice.select_all', 'I', 'PRESS', ctrl=True)
|
||||||
kmi.properties.action = 'INVERT'
|
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)
|
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_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.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.properties.extend = True
|
||||||
kmi = km.keymap_items.new('outliner.select_border', 'EVT_TWEAK_S', 'ANY', any=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')
|
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('mesh.duplicate_move', 'D', 'PRESS', ctrl=True)
|
||||||
kmi = km.keymap_items.new('wm.call_menu', 'A', 'PRESS', shift=True)
|
kmi = km.keymap_items.new('wm.call_menu', 'A', 'PRESS', shift=True)
|
||||||
kmi.properties.name = 'INFO_MT_mesh_add'
|
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 = km.keymap_items.new('wm.call_menu', 'BACK_SPACE', 'PRESS')
|
||||||
kmi.properties.name = 'VIEW3D_MT_edit_mesh_delete'
|
kmi.properties.name = 'VIEW3D_MT_edit_mesh_delete'
|
||||||
kmi = km.keymap_items.new('wm.call_menu', 'DEL', 'PRESS')
|
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 = km.keymap_items.new('wm.call_menu', 'A', 'PRESS', shift=True)
|
||||||
kmi.properties.name = 'INFO_MT_edit_curve_add'
|
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.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 = km.keymap_items.new('curve.select_all', 'A', 'PRESS', ctrl=True)
|
||||||
kmi.properties.action = 'TOGGLE'
|
kmi.properties.action = 'TOGGLE'
|
||||||
kmi = km.keymap_items.new('curve.select_all', 'I', 'PRESS', ctrl=True)
|
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.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_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.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.fill', 'F', 'PRESS', alt=True)
|
||||||
kmi = km.keymap_items.new('armature.merge', 'M', '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)
|
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.data_path = 'space_data.viewport_shade'
|
||||||
kmi.properties.value_1 = 'TEXTURED'
|
kmi.properties.value_1 = 'TEXTURED'
|
||||||
kmi.properties.value_2 = 'SOLID'
|
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.extend = False
|
||||||
kmi.properties.toggle = False
|
kmi.properties.toggle = False
|
||||||
kmi.properties.deselect = False
|
kmi.properties.deselect = False
|
||||||
kmi.properties.center = False
|
kmi.properties.center = False
|
||||||
kmi.properties.object = False
|
kmi.properties.object = False
|
||||||
kmi.properties.enumerate = 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.extend = False
|
||||||
kmi.properties.toggle = True
|
kmi.properties.toggle = True
|
||||||
kmi.properties.deselect = False
|
kmi.properties.deselect = False
|
||||||
kmi.properties.center = False
|
kmi.properties.center = False
|
||||||
kmi.properties.object = False
|
kmi.properties.object = False
|
||||||
kmi.properties.enumerate = 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.center = False
|
||||||
kmi.properties.extend = False
|
kmi.properties.extend = False
|
||||||
kmi.properties.toggle = False
|
kmi.properties.toggle = False
|
||||||
kmi.properties.deselect = True
|
kmi.properties.deselect = True
|
||||||
kmi.properties.object = False
|
kmi.properties.object = False
|
||||||
kmi.properties.enumerate = 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.enumerate = True
|
||||||
kmi.properties.extend = False
|
kmi.properties.extend = False
|
||||||
kmi.properties.toggle = False
|
kmi.properties.toggle = False
|
||||||
kmi.properties.deselect = False
|
kmi.properties.deselect = False
|
||||||
kmi.properties.center = False
|
kmi.properties.center = False
|
||||||
kmi.properties.object = 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.extend = True
|
||||||
kmi.properties.center = True
|
kmi.properties.center = True
|
||||||
kmi.properties.toggle = False
|
kmi.properties.toggle = False
|
||||||
kmi.properties.deselect = False
|
kmi.properties.deselect = False
|
||||||
kmi.properties.object = False
|
kmi.properties.object = False
|
||||||
kmi.properties.enumerate = 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.center = True
|
||||||
kmi.properties.enumerate = True
|
kmi.properties.enumerate = True
|
||||||
kmi.properties.extend = False
|
kmi.properties.extend = False
|
||||||
kmi.properties.toggle = False
|
kmi.properties.toggle = False
|
||||||
kmi.properties.deselect = False
|
kmi.properties.deselect = False
|
||||||
kmi.properties.object = 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.extend = True
|
||||||
kmi.properties.enumerate = True
|
kmi.properties.enumerate = True
|
||||||
kmi.properties.toggle = False
|
kmi.properties.toggle = False
|
||||||
kmi.properties.deselect = False
|
kmi.properties.deselect = False
|
||||||
kmi.properties.center = False
|
kmi.properties.center = False
|
||||||
kmi.properties.object = 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.extend = True
|
||||||
kmi.properties.center = True
|
kmi.properties.center = True
|
||||||
kmi.properties.enumerate = 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 = km.keymap_items.new('anim.channels_click', 'LEFTMOUSE', 'PRESS')
|
||||||
kmi.properties.extend = False
|
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.properties.extend = True
|
||||||
kmi = km.keymap_items.new('anim.channels_click', 'LEFTMOUSE', 'PRESS', shift=True, ctrl=True)
|
kmi = km.keymap_items.new('anim.channels_click', 'LEFTMOUSE', 'PRESS', shift=True, ctrl=True)
|
||||||
kmi.properties.children_only = 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 = km.keymap_items.new('wm.context_toggle', 'Q', 'PRESS')
|
||||||
kmi.properties.data_path = 'tool_settings.use_uv_sculpt'
|
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.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.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.properties.extend = True
|
||||||
kmi = km.keymap_items.new('uv.select_loop', 'LEFTMOUSE', 'PRESS', ctrl=True, alt=True)
|
kmi = km.keymap_items.new('uv.select_loop', 'LEFTMOUSE', 'PRESS', ctrl=True, alt=True)
|
||||||
kmi.properties.extend = False
|
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.properties.data_path = 'space_data.show_handles'
|
||||||
kmi = km.keymap_items.new('graph.cursor_set', 'LEFTMOUSE', 'PRESS', key_modifier='K')
|
kmi = km.keymap_items.new('graph.cursor_set', 'LEFTMOUSE', 'PRESS', key_modifier='K')
|
||||||
kmi.properties.value = 1.1754943508222875e-38
|
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.extend = False
|
||||||
kmi.properties.column = False
|
kmi.properties.column = False
|
||||||
kmi.properties.curves = 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.extend = False
|
||||||
kmi.properties.column = True
|
kmi.properties.column = True
|
||||||
kmi.properties.curves = False
|
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.extend = True
|
||||||
kmi.properties.column = False
|
kmi.properties.column = False
|
||||||
kmi.properties.curves = 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.extend = True
|
||||||
kmi.properties.column = True
|
kmi.properties.column = True
|
||||||
kmi.properties.curves = False
|
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.extend = False
|
||||||
kmi.properties.column = False
|
kmi.properties.column = False
|
||||||
kmi.properties.curves = True
|
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.extend = True
|
||||||
kmi.properties.column = False
|
kmi.properties.column = False
|
||||||
kmi.properties.curves = True
|
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.delete', 'DEL', 'PRESS')
|
||||||
kmi = km.keymap_items.new('graph.duplicate_move', 'D', 'PRESS', ctrl=True)
|
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.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.copy', 'C', 'PRESS', ctrl=True)
|
||||||
kmi = km.keymap_items.new('graph.paste', 'V', '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)
|
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 = km.keymap_items.new('file.execute', 'LEFTMOUSE', 'DOUBLE_CLICK')
|
||||||
kmi.properties.need_active = True
|
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.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.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.extend = True
|
||||||
kmi.properties.fill = True
|
kmi.properties.fill = True
|
||||||
kmi = km.keymap_items.new('file.select_all_toggle', 'A', 'PRESS', ctrl=True)
|
kmi = km.keymap_items.new('file.select_all_toggle', 'A', 'PRESS', ctrl=True)
|
||||||
@@ -1541,13 +1541,13 @@ kmi.properties.increment = -100
|
|||||||
# Map Dopesheet
|
# Map Dopesheet
|
||||||
km = kc.keymaps.new('Dopesheet', space_type='DOPESHEET_EDITOR', region_type='WINDOW', modal=False)
|
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.extend = False
|
||||||
kmi.properties.column = False
|
kmi.properties.column = False
|
||||||
kmi = km.keymap_items.new('action.clickselect', 'LEFTMOUSE', 'PRESS', alt=True)
|
kmi = km.keymap_items.new('action.clickselect', 'LEFTMOUSE', 'PRESS', alt=True)
|
||||||
kmi.properties.extend = False
|
kmi.properties.extend = False
|
||||||
kmi.properties.column = True
|
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.extend = True
|
||||||
kmi.properties.column = False
|
kmi.properties.column = False
|
||||||
kmi = km.keymap_items.new('action.clickselect', 'LEFTMOUSE', 'PRESS', shift=True, alt=True)
|
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
|
# Map NLA Editor
|
||||||
km = kc.keymaps.new('NLA Editor', space_type='NLA_EDITOR', region_type='WINDOW', modal=False)
|
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.properties.extend = False
|
||||||
kmi = km.keymap_items.new('nla.click_select', 'SELECTMOUSE', 'PRESS', shift=True)
|
kmi = km.keymap_items.new('nla.click_select', 'SELECTMOUSE', 'PRESS', shift=True)
|
||||||
kmi.properties.extend = True
|
kmi.properties.extend = True
|
||||||
@@ -1740,12 +1740,12 @@ kmi = km.keymap_items.new('sequencer.cut_multicam', 'NINE', 'PRESS')
|
|||||||
kmi.properties.camera = 9
|
kmi.properties.camera = 9
|
||||||
kmi = km.keymap_items.new('sequencer.cut_multicam', 'ZERO', 'PRESS')
|
kmi = km.keymap_items.new('sequencer.cut_multicam', 'ZERO', 'PRESS')
|
||||||
kmi.properties.camera = 10
|
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.extend = False
|
||||||
kmi.properties.linked_handle = False
|
kmi.properties.linked_handle = False
|
||||||
kmi.properties.left_right = 'NONE'
|
kmi.properties.left_right = 'NONE'
|
||||||
kmi.properties.linked_time = False
|
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.extend = True
|
||||||
kmi.properties.linked_handle = False
|
kmi.properties.linked_handle = False
|
||||||
kmi.properties.left_right = 'NONE'
|
kmi.properties.left_right = 'NONE'
|
||||||
@@ -1755,7 +1755,7 @@ kmi.properties.extend = False
|
|||||||
kmi.properties.linked_handle = True
|
kmi.properties.linked_handle = True
|
||||||
kmi.properties.left_right = 'NONE'
|
kmi.properties.left_right = 'NONE'
|
||||||
kmi.properties.linked_time = False
|
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.extend = True
|
||||||
kmi.properties.linked_handle = True
|
kmi.properties.linked_handle = True
|
||||||
kmi.properties.left_right = 'NONE'
|
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.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='ZOOMIN')
|
||||||
subrow.operator("wm.interaction_preset_add", text="", icon='ZOOMOUT').remove_active = True
|
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.separator()
|
||||||
|
|
||||||
sub.label(text="Mouse:")
|
sub.label(text="Mouse:")
|
||||||
@@ -1077,6 +1068,10 @@ class USERPREF_PT_input(Panel):
|
|||||||
sub.label(text="Select With:")
|
sub.label(text="Select With:")
|
||||||
sub.row().prop(inputs, "select_mouse", expand=True)
|
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.separator()
|
||||||
|
|
||||||
sub.prop(inputs, "use_emulate_numpad")
|
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_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_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_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_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_merge", MKEY, KM_PRESS, KM_ALT, 0);
|
||||||
WM_keymap_add_item(keymap, "ARMATURE_OT_split", YKEY, KM_PRESS, 0, 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_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);
|
kmi = WM_keymap_add_item(keymap, "CURVE_OT_select_all", AKEY, KM_PRESS, 0, 0);
|
||||||
RNA_enum_set(kmi->ptr, "action", SEL_TOGGLE);
|
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 */
|
/* stroke could be smoothed, send notifier to refresh screen */
|
||||||
WM_event_add_notifier(C, NC_GPENCIL | NA_EDITED, NULL);
|
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"); */
|
/* printf("\t\tGP - end of stroke + op\n"); */
|
||||||
p->status = GP_STATUS_DONE;
|
p->status = GP_STATUS_DONE;
|
||||||
estate = OPERATOR_FINISHED;
|
estate = OPERATOR_FINISHED;
|
||||||
|
|||||||
@@ -277,10 +277,6 @@ static int eyedropper_modal(bContext *C, wmOperator *op, const wmEvent *event)
|
|||||||
eyedropper_cancel(C, op);
|
eyedropper_cancel(C, op);
|
||||||
return OPERATOR_CANCELLED;
|
return OPERATOR_CANCELLED;
|
||||||
case LEFTMOUSE:
|
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 (event->val == KM_RELEASE) {
|
||||||
if (eye->accum_tot == 0) {
|
if (eye->accum_tot == 0) {
|
||||||
eyedropper_color_sample(C, eye, event->x, event->y);
|
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) {
|
switch (event->type) {
|
||||||
case LEFTMOUSE:
|
case LEFTMOUSE:
|
||||||
{
|
{
|
||||||
if (event->val == KM_RELEASE) {
|
if (event->val != KM_PRESS) {
|
||||||
done = true;
|
done = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -2721,7 +2721,8 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle
|
|||||||
if (data->searchbox)
|
if (data->searchbox)
|
||||||
inbox = ui_searchbox_inside(data->searchbox, event->x, event->y);
|
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;
|
float mx, my;
|
||||||
|
|
||||||
mx = event->x;
|
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 */
|
/* 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_PREV, false, STRCUR_JUMP_DELIM);
|
||||||
ui_textedit_move(but, data, STRCUR_DIR_NEXT, true, STRCUR_JUMP_DELIM);
|
ui_textedit_move(but, data, STRCUR_DIR_NEXT, true, STRCUR_JUMP_DELIM);
|
||||||
retval = WM_UI_HANDLER_BREAK;
|
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) {
|
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))
|
if (!(but->flag & UI_SELECT))
|
||||||
data->cancel = true;
|
data->cancel = true;
|
||||||
button_activate_state(C, but, BUTTON_STATE_EXIT);
|
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);
|
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) {
|
if (data->dragchange) {
|
||||||
#ifdef USE_DRAG_MULTINUM
|
#ifdef USE_DRAG_MULTINUM
|
||||||
/* if we started multibutton but didnt drag, then edit */
|
/* 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);
|
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) {
|
if (data->dragchange) {
|
||||||
#ifdef USE_DRAG_MULTINUM
|
#ifdef USE_DRAG_MULTINUM
|
||||||
/* if we started multibutton but didnt drag, then edit */
|
/* 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);
|
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);
|
button_activate_state(C, but, BUTTON_STATE_EXIT);
|
||||||
}
|
}
|
||||||
else if (event->type == MOUSEMOVE) {
|
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);
|
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);
|
button_activate_state(C, but, BUTTON_STATE_EXIT);
|
||||||
}
|
}
|
||||||
else if (event->type == MOUSEMOVE) {
|
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
|
* editing field for editing list item names
|
||||||
*/
|
*/
|
||||||
if ((ELEM(event->type, LEFTMOUSE, PADENTER, RETKEY) && event->val == KM_PRESS && event->ctrl) ||
|
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);
|
uiBut *labelbut = ui_but_list_row_text_activate(C, but, data, event, BUTTON_ACTIVATE_TEXT_EDITING);
|
||||||
if (labelbut) {
|
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);
|
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);
|
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);
|
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);
|
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);
|
button_activate_state(C, but, BUTTON_STATE_EXIT);
|
||||||
}
|
}
|
||||||
return WM_UI_HANDLER_BREAK;
|
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);
|
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);
|
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);
|
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) {
|
if (data->dragsel != -1) {
|
||||||
CurveMapping *cumap = (CurveMapping *)but->poin;
|
CurveMapping *cumap = (CurveMapping *)but->poin;
|
||||||
CurveMap *cuma = cumap->cm + cumap->cur;
|
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);
|
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);
|
button_activate_state(C, but, BUTTON_STATE_EXIT);
|
||||||
}
|
}
|
||||||
return WM_UI_HANDLER_BREAK;
|
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);
|
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);
|
button_activate_state(C, but, BUTTON_STATE_EXIT);
|
||||||
}
|
}
|
||||||
return WM_UI_HANDLER_BREAK;
|
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) {
|
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))
|
if (!(but->flag & UI_SELECT))
|
||||||
data->cancel = true;
|
data->cancel = true;
|
||||||
button_activate_state(C, but, BUTTON_STATE_EXIT);
|
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);
|
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);
|
button_activate_state(C, but, BUTTON_STATE_EXIT);
|
||||||
}
|
}
|
||||||
return WM_UI_HANDLER_BREAK;
|
return WM_UI_HANDLER_BREAK;
|
||||||
@@ -8315,7 +8316,7 @@ static int ui_handle_menu_event(
|
|||||||
|
|
||||||
#ifdef USE_DRAG_POPUP
|
#ifdef USE_DRAG_POPUP
|
||||||
if (menu->is_grab) {
|
if (menu->is_grab) {
|
||||||
if (event->type == LEFTMOUSE && event->val == KM_RELEASE) {
|
if (event->type == LEFTMOUSE) {
|
||||||
menu->is_grab = false;
|
menu->is_grab = false;
|
||||||
retval = WM_UI_HANDLER_BREAK;
|
retval = WM_UI_HANDLER_BREAK;
|
||||||
}
|
}
|
||||||
@@ -8600,7 +8601,7 @@ static int ui_handle_menu_event(
|
|||||||
uiSafetyRct *saferct = block->saferct.first;
|
uiSafetyRct *saferct = block->saferct.first;
|
||||||
|
|
||||||
if (ELEM(event->type, LEFTMOUSE, MIDDLEMOUSE, RIGHTMOUSE) &&
|
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) {
|
if ((is_parent_menu == false) && (U.uiflag & USER_MENUOPENAUTO) == 0) {
|
||||||
/* for root menus, allow clicking to close */
|
/* 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) {
|
switch (event->type) {
|
||||||
case MOUSEMOVE:
|
case MOUSEMOVE:
|
||||||
/* verify we have a real mousemove */
|
|
||||||
if (event->x == event->prevx && event->y == event->prevy) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!is_click_style) {
|
if (!is_click_style) {
|
||||||
float len_sq = len_squared_v2v2(event_xy, block->pie_data.pie_center_init);
|
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:
|
case LEFTMOUSE:
|
||||||
if (is_click_style) {
|
if (is_click_style) {
|
||||||
/* the click_type test sends a second event on KM_CLICK that
|
if (block->pie_data.flags & UI_PIE_INVALID_DIR) {
|
||||||
* may destroy nested pies even before they are drawn */
|
|
||||||
if ((block->pie_data.flags & UI_PIE_INVALID_DIR) && (event->click_type != KM_CLICK)) {
|
|
||||||
menu->menuretval = UI_RETURN_CANCEL;
|
menu->menuretval = UI_RETURN_CANCEL;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -9051,7 +9045,9 @@ static int ui_pie_handler(bContext *C, const wmEvent *event, uiPopupBlockHandle
|
|||||||
case YKEY:
|
case YKEY:
|
||||||
case ZKEY:
|
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) {
|
for (but = block->buttons.first; but; but = but->next) {
|
||||||
if (but->menu_key == event->type) {
|
if (but->menu_key == event->type) {
|
||||||
ui_but_pie_button_activate(C, but, menu);
|
ui_but_pie_button_activate(C, but, menu);
|
||||||
@@ -9158,9 +9154,8 @@ static int ui_handle_menus_recursive(
|
|||||||
|
|
||||||
if (block->flag & UI_BLOCK_RADIAL)
|
if (block->flag & UI_BLOCK_RADIAL)
|
||||||
retval = ui_pie_handler(C, event, menu);
|
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);
|
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);
|
retval = ui_handle_list_event(C, event, ar);
|
||||||
|
|
||||||
if (retval == WM_UI_HANDLER_CONTINUE) {
|
if (retval == WM_UI_HANDLER_CONTINUE) {
|
||||||
if (but) {
|
if (but)
|
||||||
retval = ui_handle_button_event(C, event, but);
|
retval = ui_handle_button_event(C, event, but);
|
||||||
}
|
else
|
||||||
else {
|
|
||||||
retval = ui_handle_button_over(C, event, ar);
|
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 */
|
/* re-enable tooltips */
|
||||||
|
|||||||
@@ -1865,7 +1865,7 @@ static int ui_handler_panel(bContext *C, const wmEvent *event, void *userdata)
|
|||||||
uiHandlePanelData *data = panel->activedata;
|
uiHandlePanelData *data = panel->activedata;
|
||||||
|
|
||||||
/* verify if we can stop */
|
/* 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);
|
ScrArea *sa = CTX_wm_area(C);
|
||||||
ARegion *ar = CTX_wm_region(C);
|
ARegion *ar = CTX_wm_region(C);
|
||||||
int align = panel_aligned(sa, ar);
|
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->puphash = ui_popup_menu_hash(title);
|
||||||
pie->block_radial->flag |= UI_BLOCK_RADIAL;
|
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 pie is spawned by a left click, it is always assumed to be click style */
|
||||||
if ((event->type == LEFTMOUSE) || (event->val == KM_RELEASE)) {
|
if (event->type == LEFTMOUSE) {
|
||||||
pie->block_radial->pie_data.flags |= UI_PIE_CLICK_STYLE;
|
pie->block_radial->pie_data.flags |= UI_PIE_CLICK_STYLE;
|
||||||
pie->block_radial->pie_data.event = EVENT_NONE;
|
pie->block_radial->pie_data.event = EVENT_NONE;
|
||||||
win->lock_pie_event = EVENT_NONE;
|
win->lock_pie_event = EVENT_NONE;
|
||||||
|
|||||||
@@ -2602,12 +2602,7 @@ void init_userdef_do_versions(void)
|
|||||||
cp[3] = 255;
|
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)
|
if (U.pixelsize == 0.0f)
|
||||||
U.pixelsize = 1.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 done = false;
|
||||||
bool use_proj;
|
bool use_proj;
|
||||||
|
|
||||||
if (ELEM(event->click_type, KM_CLICK, KM_HOLD)) {
|
|
||||||
return OPERATOR_CANCELLED;
|
|
||||||
}
|
|
||||||
|
|
||||||
em_setup_viewcontext(C, &vc);
|
em_setup_viewcontext(C, &vc);
|
||||||
|
|
||||||
ED_view3d_init_mats_rv3d(vc.obedit, vc.rv3d);
|
ED_view3d_init_mats_rv3d(vc.obedit, vc.rv3d);
|
||||||
|
|||||||
@@ -407,7 +407,7 @@ void ED_keymap_mesh(wmKeyConfig *keyconf)
|
|||||||
/* Vertex Slide */
|
/* Vertex Slide */
|
||||||
WM_keymap_add_item(keymap, "TRANSFORM_OT_vert_slide", VKEY, KM_PRESS, KM_SHIFT, 0);
|
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 */
|
/* 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);
|
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);
|
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);
|
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);
|
keymap = WM_keymap_find(keyconf, "Object Non-modal", 0, 0);
|
||||||
|
|
||||||
/* Note: this keymap works disregarding mode */
|
/* 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_enum_set(kmi->ptr, "mode", OB_MODE_EDIT);
|
||||||
RNA_boolean_set(kmi->ptr, "toggle", true);
|
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 LEFTMOUSE:
|
||||||
case MIDDLEMOUSE:
|
case MIDDLEMOUSE:
|
||||||
case RIGHTMOUSE:
|
case RIGHTMOUSE:
|
||||||
if (event->val == KM_RELEASE) {
|
console_cursor_set_exit(C, op);
|
||||||
console_cursor_set_exit(C, op);
|
return OPERATOR_FINISHED;
|
||||||
return OPERATOR_FINISHED;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case MOUSEMOVE:
|
case MOUSEMOVE:
|
||||||
console_modal_select_apply(C, op, event);
|
console_modal_select_apply(C, op, event);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -444,27 +444,27 @@ static void file_keymap(struct wmKeyConfig *keyconf)
|
|||||||
RNA_boolean_set(kmi->ptr, "need_active", true);
|
RNA_boolean_set(kmi->ptr, "need_active", true);
|
||||||
|
|
||||||
/* left mouse selects and opens */
|
/* left mouse selects and opens */
|
||||||
WM_keymap_add_item(keymap, "FILE_OT_select", LEFTMOUSE, KM_PRESS, 0, 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_PRESS, KM_SHIFT, 0);
|
kmi = WM_keymap_add_item(keymap, "FILE_OT_select", LEFTMOUSE, KM_CLICK, KM_SHIFT, 0);
|
||||||
RNA_boolean_set(kmi->ptr, "extend", true);
|
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, "extend", true);
|
||||||
RNA_boolean_set(kmi->ptr, "fill", true);
|
RNA_boolean_set(kmi->ptr, "fill", true);
|
||||||
|
|
||||||
/* right mouse selects without opening */
|
/* 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);
|
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, "extend", true);
|
||||||
RNA_boolean_set(kmi->ptr, "open", false);
|
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, "extend", true);
|
||||||
RNA_boolean_set(kmi->ptr, "fill", true);
|
RNA_boolean_set(kmi->ptr, "fill", true);
|
||||||
RNA_boolean_set(kmi->ptr, "open", false);
|
RNA_boolean_set(kmi->ptr, "open", false);
|
||||||
|
|
||||||
/* front and back mouse folder navigation */
|
/* 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_previous", BUTTON4MOUSE, KM_CLICK, 0, 0);
|
||||||
WM_keymap_add_item(keymap, "FILE_OT_next", BUTTON5MOUSE, KM_PRESS, 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_select_all_toggle", AKEY, KM_PRESS, 0, 0);
|
||||||
WM_keymap_add_item(keymap, "FILE_OT_refresh", PADPERIOD, 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 */
|
/* insertkey */
|
||||||
WM_keymap_add_item(keymap, "GRAPH_OT_keyframe_insert", IKEY, KM_PRESS, 0, 0);
|
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 */
|
/* copy/paste */
|
||||||
WM_keymap_add_item(keymap, "GRAPH_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0);
|
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 RIGHTMOUSE:
|
||||||
case MIDDLEMOUSE:
|
case MIDDLEMOUSE:
|
||||||
{
|
{
|
||||||
if (event->val != KM_NOTHING) {
|
node_link_exit(C, op, true);
|
||||||
node_link_exit(C, op, true);
|
|
||||||
|
ED_area_headerprint(CTX_wm_area(C), NULL);
|
||||||
ED_area_headerprint(CTX_wm_area(C), NULL);
|
ED_region_tag_redraw(ar);
|
||||||
ED_region_tag_redraw(ar);
|
return OPERATOR_FINISHED;
|
||||||
return OPERATOR_FINISHED;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -91,19 +91,19 @@ void outliner_keymap(wmKeyConfig *keyconf)
|
|||||||
|
|
||||||
WM_keymap_add_item(keymap, "OUTLINER_OT_item_rename", LEFTMOUSE, KM_DBL_CLICK, 0, 0);
|
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, "recursive", false);
|
||||||
RNA_boolean_set(kmi->ptr, "extend", 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, "recursive", false);
|
||||||
RNA_boolean_set(kmi->ptr, "extend", true);
|
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, "recursive", true);
|
||||||
RNA_boolean_set(kmi->ptr, "extend", false);
|
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, "recursive", true);
|
||||||
RNA_boolean_set(kmi->ptr, "extend", 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 LEFTMOUSE:
|
||||||
case RIGHTMOUSE:
|
case RIGHTMOUSE:
|
||||||
case MIDDLEMOUSE:
|
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)) {
|
if (ELEM(tsc->zone, SCROLLHANDLE_MIN_OUTSIDE, SCROLLHANDLE_MAX_OUTSIDE)) {
|
||||||
txt_screen_skip(st, ar, st->viewlines * (tsc->zone == SCROLLHANDLE_MIN_OUTSIDE ? 1 : -1));
|
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 LEFTMOUSE:
|
||||||
case MIDDLEMOUSE:
|
case MIDDLEMOUSE:
|
||||||
case RIGHTMOUSE:
|
case RIGHTMOUSE:
|
||||||
if (event->val != KM_NOTHING) {
|
text_cursor_set_exit(C, op);
|
||||||
text_cursor_set_exit(C, op);
|
return OPERATOR_FINISHED;
|
||||||
return OPERATOR_FINISHED;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case TIMER:
|
case TIMER:
|
||||||
case MOUSEMOVE:
|
case MOUSEMOVE:
|
||||||
text_cursor_set_apply(C, op, event);
|
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);
|
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) */
|
/* 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", MOUSEPAN, 0, 0, 0);
|
||||||
WM_keymap_add_item(keymap, "VIEW3D_OT_rotate", MOUSEROTATE, 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 */
|
/* 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, "data_path", "space_data.viewport_shade");
|
||||||
RNA_string_set(kmi->ptr, "value_1", "SOLID");
|
RNA_string_set(kmi->ptr, "value_1", "SOLID");
|
||||||
RNA_string_set(kmi->ptr, "value_2", "WIREFRAME");
|
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);
|
keymap = WM_modalkeymap_add(keyconf, "Transform Modal Map", modal_items);
|
||||||
|
|
||||||
/* items for modal map */
|
/* items for modal map */
|
||||||
WM_modalkeymap_add_item(keymap, ESCKEY, KM_RELEASE, KM_ANY, 0, TFM_MODAL_CANCEL);
|
WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, 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, LEFTMOUSE, KM_PRESS, 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, RETKEY, KM_PRESS, 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, 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, GKEY, KM_PRESS, 0, 0, TFM_MODAL_TRANSLATE);
|
||||||
WM_modalkeymap_add_item(keymap, RKEY, KM_PRESS, 0, 0, TFM_MODAL_ROTATE);
|
WM_modalkeymap_add_item(keymap, RKEY, KM_PRESS, 0, 0, TFM_MODAL_ROTATE);
|
||||||
|
|||||||
@@ -447,9 +447,7 @@ typedef struct UserDef {
|
|||||||
|
|
||||||
short versions;
|
short versions;
|
||||||
short dbl_click_time;
|
short dbl_click_time;
|
||||||
short click_timeout;
|
|
||||||
short pad3;
|
|
||||||
|
|
||||||
short gameflags;
|
short gameflags;
|
||||||
short wheellinescroll;
|
short wheellinescroll;
|
||||||
int uiflag, uiflag2;
|
int uiflag, uiflag2;
|
||||||
@@ -467,8 +465,7 @@ typedef struct UserDef {
|
|||||||
char pad2[2];
|
char pad2[2];
|
||||||
short transopts;
|
short transopts;
|
||||||
short menuthreshold1, menuthreshold2;
|
short menuthreshold1, menuthreshold2;
|
||||||
int pad4;
|
|
||||||
|
|
||||||
struct ListBase themes;
|
struct ListBase themes;
|
||||||
struct ListBase uifonts;
|
struct ListBase uifonts;
|
||||||
struct ListBase uistyles;
|
struct ListBase uistyles;
|
||||||
|
|||||||
@@ -253,8 +253,7 @@ typedef struct wmKeyMapItem {
|
|||||||
|
|
||||||
/* event */
|
/* event */
|
||||||
short type; /* event code itself */
|
short type; /* event code itself */
|
||||||
short val; /* NOTE: other than event->val this can be the value itself
|
short val; /* KM_ANY, KM_PRESS, KM_NOTHING etc */
|
||||||
* (KM_ANY, KM_PRESS, etc) AND the clicktype (KM_DBL_CLICK, KM_HOLD, etc) */
|
|
||||||
short shift, ctrl, alt, oskey; /* oskey is apple or windowskey, value denotes order of pressed */
|
short shift, ctrl, alt, oskey; /* oskey is apple or windowskey, value denotes order of pressed */
|
||||||
short keymodifier; /* rawkey modifier */
|
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_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");
|
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_int_sdna(prop, NULL, "dbl_click_time");
|
||||||
RNA_def_property_range(prop, 1, 1000);
|
RNA_def_property_range(prop, 1, 1000);
|
||||||
RNA_def_property_ui_text(prop, "Double Click Timeout", "Time/delay (in ms) for a double click");
|
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);
|
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_boolean_sdna(prop, NULL, "flag", USER_TWOBUTTONMOUSE);
|
||||||
RNA_def_property_ui_text(prop, "Emulate 3 Button Mouse",
|
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_PRESS, "PRESS", 0, "Press", ""},
|
||||||
{KM_RELEASE, "RELEASE", 0, "Release", ""},
|
{KM_RELEASE, "RELEASE", 0, "Release", ""},
|
||||||
{KM_CLICK, "CLICK", 0, "Click", ""},
|
{KM_CLICK, "CLICK", 0, "Click", ""},
|
||||||
{KM_HOLD, "HOLD", 0, "Hold", ""},
|
|
||||||
{KM_DBL_CLICK, "DOUBLE_CLICK", 0, "Double Click", ""},
|
{KM_DBL_CLICK, "DOUBLE_CLICK", 0, "Double Click", ""},
|
||||||
{0, NULL, 0, NULL, NULL}
|
{0, NULL, 0, NULL, NULL}
|
||||||
};
|
};
|
||||||
@@ -381,7 +380,6 @@ EnumPropertyItem event_value_items[] = {
|
|||||||
{KM_PRESS, "PRESS", 0, "Press", ""},
|
{KM_PRESS, "PRESS", 0, "Press", ""},
|
||||||
{KM_RELEASE, "RELEASE", 0, "Release", ""},
|
{KM_RELEASE, "RELEASE", 0, "Release", ""},
|
||||||
{KM_CLICK, "CLICK", 0, "Click", ""},
|
{KM_CLICK, "CLICK", 0, "Click", ""},
|
||||||
{KM_HOLD, "HOLD", 0, "Hold", ""},
|
|
||||||
{KM_DBL_CLICK, "DOUBLE_CLICK", 0, "Double Click", ""},
|
{KM_DBL_CLICK, "DOUBLE_CLICK", 0, "Double Click", ""},
|
||||||
{EVT_GESTURE_N, "NORTH", 0, "North", ""},
|
{EVT_GESTURE_N, "NORTH", 0, "North", ""},
|
||||||
{EVT_GESTURE_NE, "NORTH_EAST", 0, "North-East", ""},
|
{EVT_GESTURE_NE, "NORTH_EAST", 0, "North-East", ""},
|
||||||
|
|||||||
@@ -180,11 +180,9 @@ enum {
|
|||||||
#define KM_NOTHING 0
|
#define KM_NOTHING 0
|
||||||
#define KM_PRESS 1
|
#define KM_PRESS 1
|
||||||
#define KM_RELEASE 2
|
#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 ***************** */
|
/* ************** UI Handler ***************** */
|
||||||
|
|
||||||
@@ -429,9 +427,7 @@ typedef struct wmEvent {
|
|||||||
|
|
||||||
short type; /* event code itself (short, is also in keymap) */
|
short type; /* event code itself (short, is also in keymap) */
|
||||||
short val; /* press, release, scrollvalue */
|
short val; /* press, release, scrollvalue */
|
||||||
short click_type; /* click, hold or double click */
|
|
||||||
int x, y; /* mouse pointer position, screen coord */
|
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 :) */
|
int mval[2]; /* region mouse position, name convention pre 2.5 :) */
|
||||||
char utf8_buf[6]; /* from, ghost if utf8 is enabled for the platform,
|
char utf8_buf[6]; /* from, ghost if utf8 is enabled for the platform,
|
||||||
* BLI_str_utf8_size() must _always_ be valid, check
|
* 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 ascii; /* from ghost, fallback if utf8 isn't set */
|
||||||
char pad;
|
char pad;
|
||||||
|
|
||||||
bool is_key_pressed; /* is a (non-modifier) key is pressed? (keyboard, mouse, NDOF, ...) */
|
/* previous state, used for double click and the 'click' */
|
||||||
|
|
||||||
/* previous state, used for clicktype */
|
|
||||||
short prevtype;
|
short prevtype;
|
||||||
short prevval;
|
short prevval;
|
||||||
int prevx, prevy;
|
int prevx, prevy;
|
||||||
double prevclick_time;
|
double prevclicktime;
|
||||||
int prevclickx, prevclicky;
|
int prevclickx, prevclicky;
|
||||||
|
|
||||||
/* modifier states */
|
/* modifier states */
|
||||||
short shift, ctrl, alt, oskey; /* oskey is apple or windowskey, value denotes order of pressed */
|
short shift, ctrl, alt, oskey; /* oskey is apple or windowskey, value denotes order of pressed */
|
||||||
short keymodifier; /* rawkey modifier */
|
short keymodifier; /* rawkey modifier */
|
||||||
|
|
||||||
|
/* set in case a KM_PRESS went by unhandled */
|
||||||
|
short check_click;
|
||||||
|
|
||||||
/* keymap item, set by handler (weak?) */
|
/* keymap item, set by handler (weak?) */
|
||||||
const char *keymap_idname;
|
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 */
|
* 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) &&
|
if (((handler->flag & WM_HANDLER_ACCEPT_DBL_CLICK) == 0) &&
|
||||||
(event->type != LEFTMOUSE) &&
|
(event->type != LEFTMOUSE) &&
|
||||||
(event->click_type == KM_DBL_CLICK))
|
(event->val == KM_DBL_CLICK))
|
||||||
{
|
{
|
||||||
return WM_HANDLER_CONTINUE;
|
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)
|
static int wm_eventmatch(wmEvent *winevent, wmKeyMapItem *kmi)
|
||||||
{
|
{
|
||||||
int kmitype = WM_userdef_event_map(kmi->type);
|
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 (kmitype != KM_ANY)
|
||||||
if (winevent->type != kmitype) return 0;
|
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 (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 */
|
/* modifiers also check bits, so it allows modifier order */
|
||||||
if (kmi->shift != KM_ANY)
|
if (kmi->shift != KM_ANY)
|
||||||
if (winevent->shift != kmi->shift && !(winevent->shift & kmi->shift)) return 0;
|
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
|
/* modal keymap checking returns handled events fine, but all hardcoded modal
|
||||||
* handling typically swallows all events (OPERATOR_RUNNING_MODAL).
|
* handling typically swallows all events (OPERATOR_RUNNING_MODAL).
|
||||||
* This bypass just disables support for double clicks in hardcoded modal handlers */
|
* 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->val = KM_PRESS;
|
||||||
event->click_type = 0;
|
|
||||||
*dbl_click_disabled = true;
|
*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->val = event->prevval;
|
||||||
event->prevval = 0;
|
event->prevval = 0;
|
||||||
}
|
}
|
||||||
else if (dbl_click_disabled) {
|
else if (dbl_click_disabled)
|
||||||
event->click_type = KM_DBL_CLICK;
|
event->val = KM_DBL_CLICK;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Warning: this function removes a modal handler, when finished */
|
/* 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 */
|
/* test for CLICK events */
|
||||||
if (wm_action_not_handled(action)) {
|
if (wm_action_not_handled(action)) {
|
||||||
wmWindow *win = CTX_wm_window(C);
|
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 (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->val = KM_PRESS;
|
||||||
event->click_type = 0;
|
|
||||||
action |= wm_handlers_do_intern(C, event, handlers);
|
action |= wm_handlers_do_intern(C, event, handlers);
|
||||||
|
|
||||||
/* revert value if not handled */
|
/* revert value if not handled */
|
||||||
if (wm_action_not_handled(action)) {
|
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;
|
return action;
|
||||||
@@ -2984,50 +3005,22 @@ static wmWindow *wm_event_cursor_other_windows(wmWindowManager *wm, wmWindow *wi
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
static bool wm_event_is_double_click(wmEvent *event, wmEvent *event_state)
|
||||||
* 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)
|
|
||||||
{
|
{
|
||||||
short click_type = 0;
|
if ((event->type == event_state->prevtype) &&
|
||||||
|
(event_state->prevval == KM_RELEASE) &&
|
||||||
if ((event->val == KM_PRESS) &&
|
(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 ((ISMOUSE(event->type) == false) || ((ABS(event->x - event_state->prevclickx)) <= 2 &&
|
if ((ISMOUSE(event->type) == false) || ((ABS(event->x - event_state->prevclickx)) <= 2 &&
|
||||||
(ABS(event->y - event_state->prevclicky)) <= 2))
|
(ABS(event->y - event_state->prevclicky)) <= 2))
|
||||||
{
|
{
|
||||||
if ((PIL_check_seconds_timer() - event_state->prevclick_time) * 1000 < U.dbl_click_time) {
|
if ((PIL_check_seconds_timer() - event_state->prevclicktime) * 1000 < U.dbl_click_time) {
|
||||||
click_type = KM_DBL_CLICK;
|
return true;
|
||||||
if (G.debug & (G_DEBUG_HANDLERS | G_DEBUG_EVENTS)) {
|
|
||||||
printf("%s Send double click event\n", __func__);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (click_type != event->click_type) {
|
return false;
|
||||||
event_state->click_type = event->click_type = click_type;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void wm_event_add_mousemove(wmWindow *win, const wmEvent *event)
|
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->val = event.val;
|
||||||
evt->type = event.type;
|
evt->type = event.type;
|
||||||
|
|
||||||
/* click_type */
|
|
||||||
wm_event_clicktype_init(win, &event, evt);
|
|
||||||
|
|
||||||
if (win->active == 0) {
|
if (win->active == 0) {
|
||||||
int cx, cy;
|
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;
|
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!) */
|
/* add to other window if event is there (not to both!) */
|
||||||
owin = wm_event_cursor_other_windows(wm, win, &event);
|
owin = wm_event_cursor_other_windows(wm, win, &event);
|
||||||
if (owin) {
|
if (owin) {
|
||||||
@@ -3210,10 +3212,7 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U
|
|||||||
/* copy to event state */
|
/* copy to event state */
|
||||||
evt->val = event.val;
|
evt->val = event.val;
|
||||||
evt->type = event.type;
|
evt->type = event.type;
|
||||||
|
|
||||||
/* clicktype */
|
|
||||||
wm_event_clicktype_init(win, &event, evt);
|
|
||||||
|
|
||||||
/* exclude arrow keys, esc, etc from text input */
|
/* exclude arrow keys, esc, etc from text input */
|
||||||
if (type == GHOST_kEventKeyUp) {
|
if (type == GHOST_kEventKeyUp) {
|
||||||
event.ascii = '\0';
|
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;
|
event.keymodifier = evt->keymodifier = 0;
|
||||||
break;
|
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
|
/* this case happens on holding a key pressed, it should not generate
|
||||||
* press events events with the same key as modifier */
|
* 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;
|
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);
|
wm_event_add(win, &event);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -1192,15 +1192,11 @@ int WM_keymap_item_compare(wmKeyMapItem *k1, wmKeyMapItem *k2)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (k1->val != KM_ANY && k2->val != KM_ANY) {
|
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 */
|
/* take click, press, release conflict into account */
|
||||||
if (k1->val == KM_CLICK && ELEM(k2->val, KM_PRESS, KM_RELEASE, KM_CLICK) == 0)
|
if (k1->val == KM_CLICK && ELEM(k2->val, KM_PRESS, KM_RELEASE, KM_CLICK) == 0)
|
||||||
return 0;
|
return 0;
|
||||||
if (k2->val == KM_CLICK && ELEM(k1->val, KM_PRESS, KM_RELEASE, KM_CLICK) == 0)
|
if (k2->val == KM_CLICK && ELEM(k1->val, KM_PRESS, KM_RELEASE, KM_CLICK) == 0)
|
||||||
return 0;
|
return 0;
|
||||||
#endif
|
|
||||||
|
|
||||||
if (k1->val != k2->val)
|
if (k1->val != k2->val)
|
||||||
return 0;
|
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);
|
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 */
|
/* 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);
|
WM_keymap_add_menu(keymap, "USERPREF_MT_ndof_settings", NDOF_BUTTON_MENU, KM_PRESS, 0, 0);
|
||||||
|
|
||||||
/* Space switching */
|
/* Space switching */
|
||||||
|
|||||||
@@ -1106,76 +1106,6 @@ static int ghost_event_proc(GHOST_EventHandle evt, GHOST_TUserDataPtr C_void_ptr
|
|||||||
return 1;
|
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,
|
/* This timer system only gives maximum 1 timer event per redraw cycle,
|
||||||
* to prevent queues to get overloaded.
|
* to prevent queues to get overloaded.
|
||||||
@@ -1235,11 +1165,7 @@ void wm_window_process_events(const bContext *C)
|
|||||||
|
|
||||||
if (hasevent)
|
if (hasevent)
|
||||||
GHOST_DispatchEvents(g_system);
|
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);
|
hasevent |= wm_window_timer(C);
|
||||||
|
|
||||||
/* no event, we sleep 5 milliseconds */
|
/* no event, we sleep 5 milliseconds */
|
||||||
|
|||||||
Reference in New Issue
Block a user