Keymap: move builtin keymaps from C to Python
This should be purely an implementation change, for end users there should be no functional difference. The entire key configuration is in one file with ~5000 lines of code. Mostly avoiding code duplication and preserve comments and utility functions from the C code. It's a bit long but for searching and editing it's also convenient to have it all in one file. Notes: - Actual keymap is shared by blender / blender_legacy and stored in `keymap_data/blender_default.py` This only generates JSON-like data to be passed into `keyconfig_import_from_data`, allowing other presets to load and manipulate the default keymap. - Each preset defines 'keyconfig_data' which can be shared between presets. - Some of the utility functions for generating keymap items still need to be ported over to Python. - Some keymap items can be made into loops (marked as TODO). See: D3907
This commit is contained in:
		@@ -261,6 +261,11 @@ def load_scripts(reload_scripts=False, refresh_scripts=False):
 | 
			
		||||
        _addon_utils.reset_all(reload_scripts=reload_scripts)
 | 
			
		||||
    del _initialize
 | 
			
		||||
 | 
			
		||||
    # Load the default key configuration.
 | 
			
		||||
    filepath = preset_find("blender", "keyconfig")
 | 
			
		||||
    if filepath:
 | 
			
		||||
        keyconfig_set(filepath)
 | 
			
		||||
 | 
			
		||||
    # run the active integration preset
 | 
			
		||||
    filepath = preset_find(_user_preferences.inputs.active_keyconfig,
 | 
			
		||||
                           "keyconfig")
 | 
			
		||||
 
 | 
			
		||||
@@ -477,4 +477,5 @@ def keyconfig_test(kc):
 | 
			
		||||
from .keyconfig_utils_experimental import (
 | 
			
		||||
    keyconfig_export_as_data,
 | 
			
		||||
    keyconfig_import_from_data,
 | 
			
		||||
    keyconfig_module_from_preset,
 | 
			
		||||
)
 | 
			
		||||
 
 | 
			
		||||
@@ -21,6 +21,7 @@
 | 
			
		||||
__all__ = (
 | 
			
		||||
    "keyconfig_export_as_data",
 | 
			
		||||
    "keyconfig_import_from_data",
 | 
			
		||||
    "keyconfig_module_from_preset",
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -242,3 +243,22 @@ def keyconfig_import_from_data(name, keyconfig_data):
 | 
			
		||||
                    kmi_props = kmi.properties
 | 
			
		||||
                    for attr, value in kmi_props_data:
 | 
			
		||||
                        kmi_props_setattr(kmi_props, attr, value)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def keyconfig_module_from_preset(name, preset_reference_filename=None):
 | 
			
		||||
    import os
 | 
			
		||||
    import importlib.util
 | 
			
		||||
    if preset_reference_filename is not None:
 | 
			
		||||
        preset_path = os.path.join(os.path.dirname(preset_reference_filename), name + ".py")
 | 
			
		||||
    else:
 | 
			
		||||
        preset_path = None
 | 
			
		||||
 | 
			
		||||
    # External presets may want to re-use other presets too.
 | 
			
		||||
    if not (preset_path and os.path.exists(preset_path)):
 | 
			
		||||
        preset_path = bpy.utils.preset_find(name, "keyconfig")
 | 
			
		||||
 | 
			
		||||
    # module name isn't used or added to 'sys.modules'.
 | 
			
		||||
    mod_spec = importlib.util.spec_from_file_location("__bl_keymap__", preset_path)
 | 
			
		||||
    mod = importlib.util.module_from_spec(mod_spec)
 | 
			
		||||
    mod_spec.loader.exec_module(mod)
 | 
			
		||||
    return mod
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								release/scripts/presets/keyconfig/blender.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								release/scripts/presets/keyconfig/blender.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
 | 
			
		||||
import os
 | 
			
		||||
from bpy_extras.keyconfig_utils import (
 | 
			
		||||
    keyconfig_import_from_data,
 | 
			
		||||
    keyconfig_module_from_preset,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
_mod = keyconfig_module_from_preset(os.path.join("keymap_data", "blender_default"), __file__)
 | 
			
		||||
keyconfig_data = _mod.generate_keymaps()
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
    keyconfig_import_from_data("Blender", keyconfig_data)
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										5029
									
								
								release/scripts/presets/keyconfig/keymap_data/blender_default.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5029
									
								
								release/scripts/presets/keyconfig/keymap_data/blender_default.py
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -1055,11 +1055,6 @@ class USERPREF_MT_keyconfigs(Menu):
 | 
			
		||||
    preset_operator = "wm.keyconfig_activate"
 | 
			
		||||
 | 
			
		||||
    def draw(self, context):
 | 
			
		||||
        props = self.layout.operator("wm.context_set_value", text="Blender (default)")
 | 
			
		||||
        props.data_path = "window_manager.keyconfigs.active"
 | 
			
		||||
        props.value = "context.window_manager.keyconfigs.default"
 | 
			
		||||
 | 
			
		||||
        # now draw the presets
 | 
			
		||||
        Menu.draw_preset(self, context)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -65,7 +65,6 @@
 | 
			
		||||
#include "ED_anim_api.h"
 | 
			
		||||
#include "ED_armature.h"
 | 
			
		||||
#include "ED_keyframes_edit.h" // XXX move the select modes out of there!
 | 
			
		||||
#include "ED_keymap_templates.h"
 | 
			
		||||
#include "ED_object.h"
 | 
			
		||||
#include "ED_screen.h"
 | 
			
		||||
#include "ED_select_utils.h"
 | 
			
		||||
@@ -3195,61 +3194,7 @@ void ED_operatortypes_animchannels(void)
 | 
			
		||||
// TODO: check on a poll callback for this, to get hotkeys into menus
 | 
			
		||||
void ED_keymap_animchannels(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Animation Channels", 0, 0);
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	/* click-select */
 | 
			
		||||
	/* XXX for now, only leftmouse.... */
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_channels_click", LEFTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_click", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "extend", true);
 | 
			
		||||
	RNA_boolean_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_click", LEFTMOUSE, KM_PRESS, KM_CTRL | KM_SHIFT, 0)->ptr, "children_only", true);
 | 
			
		||||
 | 
			
		||||
	/* rename */
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_channels_rename", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_channels_rename", LEFTMOUSE, KM_DBL_CLICK, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_channel_select_keys", LEFTMOUSE, KM_DBL_CLICK, 0, 0);
 | 
			
		||||
	RNA_boolean_set(WM_keymap_add_item(keymap, "ANIM_OT_channel_select_keys", LEFTMOUSE, KM_DBL_CLICK, KM_SHIFT, 0)->ptr, "extend", true);
 | 
			
		||||
 | 
			
		||||
	/* find (i.e. a shortcut for setting the name filter) */
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_channels_find", FKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	/* deselect all */
 | 
			
		||||
	ED_keymap_template_select_all(keymap, "ANIM_OT_channels_select_all");
 | 
			
		||||
 | 
			
		||||
	/* box select */
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_channels_select_box", BKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_channels_select_box", EVT_TWEAK_L, KM_ANY, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* delete */
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_channels_delete", XKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_channels_delete", DELKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* settings */
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_channels_setting_toggle", WKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_channels_setting_enable", WKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_channels_setting_disable", WKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	/* settings - specialized hotkeys */
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_channels_editable_toggle", TABKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* expand/collapse */
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_channels_expand", PADPLUSKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_channels_collapse", PADMINUS, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "ANIM_OT_channels_expand", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "all", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "ANIM_OT_channels_collapse", PADMINUS, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "all", false);
 | 
			
		||||
 | 
			
		||||
	/* rearranging */
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_move", PAGEUPKEY, KM_PRESS, 0, 0)->ptr, "direction", REARRANGE_ANIMCHAN_UP);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_move", PAGEDOWNKEY, KM_PRESS, 0, 0)->ptr, "direction", REARRANGE_ANIMCHAN_DOWN);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_move", PAGEUPKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "direction", REARRANGE_ANIMCHAN_TOP);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_move", PAGEDOWNKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "direction", REARRANGE_ANIMCHAN_BOTTOM);
 | 
			
		||||
 | 
			
		||||
	/* grouping */
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_channels_group", GKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_channels_ungroup", GKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Animation Channels", 0, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* ************************************************************************** */
 | 
			
		||||
 
 | 
			
		||||
@@ -72,7 +72,6 @@
 | 
			
		||||
#include "ED_markers.h"
 | 
			
		||||
#include "ED_screen.h"
 | 
			
		||||
#include "ED_select_utils.h"
 | 
			
		||||
#include "ED_keymap_templates.h"
 | 
			
		||||
#include "ED_util.h"
 | 
			
		||||
#include "ED_numinput.h"
 | 
			
		||||
#include "ED_object.h"
 | 
			
		||||
@@ -1649,50 +1648,5 @@ void ED_operatortypes_marker(void)
 | 
			
		||||
/* called in screen_ops.c:ED_keymap_screen() */
 | 
			
		||||
void ED_keymap_marker(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Markers", 0, 0);
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	WM_keymap_verify_item(keymap, "MARKER_OT_add", MKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_verify_item(keymap, "MARKER_OT_move", EVT_TWEAK_S, KM_ANY, 0, 0);
 | 
			
		||||
	WM_keymap_verify_item(keymap, "MARKER_OT_duplicate", DKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_verify_item(keymap, "MARKER_OT_select", SELECTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MARKER_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
 | 
			
		||||
#ifdef DURIAN_CAMERA_SWITCH
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MARKER_OT_select", SELECTMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "camera", true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MARKER_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "camera", true);
 | 
			
		||||
#else
 | 
			
		||||
	(void)kmi;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	WM_keymap_verify_item(keymap, "MARKER_OT_select_box", BKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	ED_keymap_template_select_all(keymap, "MARKER_OT_select_all");
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "MARKER_OT_delete", XKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "MARKER_OT_delete", DELKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_verify_item(keymap, "MARKER_OT_rename", MKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "MARKER_OT_move", GKEY, KM_PRESS, 0, 0);
 | 
			
		||||
#ifdef DURIAN_CAMERA_SWITCH
 | 
			
		||||
	WM_keymap_add_item(keymap, "MARKER_OT_camera_bind", BKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* to be called from animation editor keymaps, see note below */
 | 
			
		||||
void ED_marker_keymap_animedit_conflictfree(wmKeyMap *keymap)
 | 
			
		||||
{
 | 
			
		||||
	/* duplicate of some marker-hotkeys but without the bounds checking
 | 
			
		||||
	 * since these are handy to be able to do unrestricted and won't conflict
 | 
			
		||||
	 * with primary function hotkeys (Usability tweak [#27469])
 | 
			
		||||
	 */
 | 
			
		||||
	WM_keymap_add_item(keymap, "MARKER_OT_add", MKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "MARKER_OT_rename", MKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Markers", 0, 0);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -536,17 +536,5 @@ void ED_operatortypes_anim(void)
 | 
			
		||||
 | 
			
		||||
void ED_keymap_anim(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Animation", 0, 0);
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	/* frame management */
 | 
			
		||||
	/* NOTE: 'ACTIONMOUSE' not 'LEFTMOUSE', as user may have swapped mouse-buttons */
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_change_frame", ACTIONMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "space_data.show_seconds");
 | 
			
		||||
 | 
			
		||||
	/* preview range */
 | 
			
		||||
	WM_keymap_verify_item(keymap, "ANIM_OT_previewrange_set", PKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_verify_item(keymap, "ANIM_OT_previewrange_clear", PKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Animation", 0, 0);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -36,7 +36,6 @@
 | 
			
		||||
#include "ED_armature.h"
 | 
			
		||||
#include "ED_screen.h"
 | 
			
		||||
#include "ED_select_utils.h"
 | 
			
		||||
#include "ED_keymap_templates.h"
 | 
			
		||||
#include "ED_transform.h"
 | 
			
		||||
 | 
			
		||||
#include "armature_intern.h"
 | 
			
		||||
@@ -191,212 +190,15 @@ void ED_operatormacros_armature(void)
 | 
			
		||||
void ED_keymap_armature(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap;
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	/* Armature ------------------------ */
 | 
			
		||||
	/* only set in editmode armature, by space_view3d listener */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Armature", 0, 0);
 | 
			
		||||
	keymap->poll = ED_operator_editarmature;
 | 
			
		||||
 | 
			
		||||
	/* only set in editmode armature, by space_view3d listener */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "ARMATURE_OT_hide", HKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "ARMATURE_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_align", AKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_calculate_roll", NKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
#else
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_calculate_roll", NKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
#endif
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_roll_clear", RKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_switch_direction", FKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_bone_primitive_add", AKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_parent_set", PKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_parent_clear", PKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	ED_keymap_template_select_all(keymap, "ARMATURE_OT_select_all");
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "ARMATURE_OT_select_mirror", MKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "ARMATURE_OT_select_hierarchy", LEFTBRACKETKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "direction", BONE_SELECT_PARENT);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "ARMATURE_OT_select_hierarchy", LEFTBRACKETKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "direction", BONE_SELECT_PARENT);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "ARMATURE_OT_select_hierarchy", RIGHTBRACKETKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "direction", BONE_SELECT_CHILD);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "ARMATURE_OT_select_hierarchy", RIGHTBRACKETKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "direction", BONE_SELECT_CHILD);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_select_similar", GKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_select_linked", LKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_shortest_path_pick", SELECTMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_armature_delete", XKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_armature_delete", DELKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_dissolve", XKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_dissolve", DELKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_extrude_move", EKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_extrude_forked", EKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_click_extrude", ACTIONMOUSE, KM_CLICK, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_fill", FKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_merge", MKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_split", YKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_separate", PKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* set flags */
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_toggle", WKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_enable", WKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_disable", WKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	/* armature/bone layers */
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_layers_show_all", ACCENTGRAVEKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_armature_layers", MKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_bone_layers", MKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* special transforms: */
 | 
			
		||||
	/*  1) envelope/b-bone size */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", TFM_BONESIZE);
 | 
			
		||||
	/*  2) envelope radius */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", TFM_BONE_ENVELOPE);
 | 
			
		||||
	/*  3) set roll */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", RKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", TFM_BONE_ROLL);
 | 
			
		||||
 | 
			
		||||
	/* menus */
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_armature_specials", WKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* Pose ------------------------ */
 | 
			
		||||
	/* only set in posemode, by space_view3d listener */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Pose", 0, 0);
 | 
			
		||||
	keymap->poll = ED_operator_posemode;
 | 
			
		||||
 | 
			
		||||
	/* set parent and add object are object-based operators, but we make them
 | 
			
		||||
	 * available here because it's useful to do in pose mode too */
 | 
			
		||||
	WM_keymap_add_item(keymap, "OBJECT_OT_parent_set", PKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_add", AKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "POSE_OT_hide", HKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "POSE_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "POSE_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_pose_apply", AKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	/* TODO: clear pose */
 | 
			
		||||
	WM_keymap_add_item(keymap, "POSE_OT_rot_clear", RKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "POSE_OT_loc_clear", GKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "POSE_OT_scale_clear", SKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "POSE_OT_quaternions_flip", FKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "POSE_OT_rotation_mode_set", RKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "POSE_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "POSE_OT_paste", VKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "flipped", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "POSE_OT_paste", VKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "flipped", true);
 | 
			
		||||
 | 
			
		||||
#ifdef __APPLE__
 | 
			
		||||
	WM_keymap_add_item(keymap, "POSE_OT_copy", CKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "POSE_OT_paste", VKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "flipped", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "POSE_OT_paste", VKEY, KM_PRESS, KM_OSKEY | KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "flipped", true);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	ED_keymap_template_select_all(keymap, "POSE_OT_select_all");
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "POSE_OT_select_parent", PKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "POSE_OT_select_hierarchy", LEFTBRACKETKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "direction", BONE_SELECT_PARENT);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "POSE_OT_select_hierarchy", LEFTBRACKETKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "direction", BONE_SELECT_PARENT);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "POSE_OT_select_hierarchy", RIGHTBRACKETKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "direction", BONE_SELECT_CHILD);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "POSE_OT_select_hierarchy", RIGHTBRACKETKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "direction", BONE_SELECT_CHILD);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "POSE_OT_select_linked", LKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "POSE_OT_select_grouped", GKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "POSE_OT_select_mirror", MKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "POSE_OT_constraint_add_with_targets", CKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "POSE_OT_constraints_clear", CKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "POSE_OT_ik_add", IKEY, KM_PRESS, /*KM_CTRL|*/ KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "POSE_OT_ik_clear", IKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_pose_group", GKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	/* set flags */
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_toggle", WKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_enable", WKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_disable", WKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	/* armature/bone layers */
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_layers_show_all", ACCENTGRAVEKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ARMATURE_OT_armature_layers", MKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "POSE_OT_bone_layers", MKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", ZKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "space_data.overlay.show_bone_select");
 | 
			
		||||
 | 
			
		||||
	/* special transforms: */
 | 
			
		||||
	/*  1) envelope/b-bone size */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", TFM_BONESIZE);
 | 
			
		||||
 | 
			
		||||
	/* keyframes management */
 | 
			
		||||
	WM_keymap_verify_item(keymap, "ANIM_OT_keyframe_insert_menu", IKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_verify_item(keymap, "ANIM_OT_keyframe_delete_v3d", IKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_verify_item(keymap, "ANIM_OT_keying_set_active_set", IKEY, KM_PRESS, KM_CTRL | KM_SHIFT | KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	/* Pose -> PoseLib ------------- */
 | 
			
		||||
	/* only set in posemode, by space_view3d listener */
 | 
			
		||||
	WM_keymap_add_item(keymap, "POSELIB_OT_browse_interactive", LKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "POSELIB_OT_pose_add", LKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "POSELIB_OT_pose_remove", LKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "POSELIB_OT_pose_rename", LKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	/* Pose -> Pose Sliding ------------- */
 | 
			
		||||
	/* only set in posemode, by space_view3d listener */
 | 
			
		||||
	WM_keymap_add_item(keymap, "POSE_OT_push", EKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "POSE_OT_relax", EKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "POSE_OT_breakdown", EKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	/* menus */
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_pose_specials", WKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_pose_propagate", PKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -45,7 +45,6 @@
 | 
			
		||||
#include "ED_object.h"
 | 
			
		||||
#include "ED_screen.h"
 | 
			
		||||
#include "ED_select_utils.h"
 | 
			
		||||
#include "ED_keymap_templates.h"
 | 
			
		||||
#include "ED_transform.h"
 | 
			
		||||
 | 
			
		||||
#include "curve_intern.h"
 | 
			
		||||
@@ -168,136 +167,11 @@ void ED_operatormacros_curve(void)
 | 
			
		||||
 | 
			
		||||
void ED_keymap_curve(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap;
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Font", 0, 0);
 | 
			
		||||
	keymap->poll = ED_operator_editfont;
 | 
			
		||||
 | 
			
		||||
	/* only set in editmode font, by space_view3d listener */
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_style_toggle", BKEY, KM_PRESS, KM_CTRL, 0)->ptr, "style", CU_CHINFO_BOLD);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_style_toggle", IKEY, KM_PRESS, KM_CTRL, 0)->ptr, "style", CU_CHINFO_ITALIC);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_style_toggle", UKEY, KM_PRESS, KM_CTRL, 0)->ptr, "style", CU_CHINFO_UNDERLINE);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_style_toggle", PKEY, KM_PRESS, KM_CTRL, 0)->ptr, "style", CU_CHINFO_SMALLCAPS);
 | 
			
		||||
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_delete", DELKEY, KM_PRESS, 0, 0)->ptr, "type", DEL_NEXT_SEL);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_delete", DELKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", DEL_NEXT_WORD);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_delete", BACKSPACEKEY, KM_PRESS, 0, 0)->ptr, "type", DEL_PREV_SEL);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_delete", BACKSPACEKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", DEL_PREV_SEL); /* same as above [#26623] */
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_delete", BACKSPACEKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", DEL_PREV_WORD);
 | 
			
		||||
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move", HOMEKEY, KM_PRESS, 0, 0)->ptr, "type", LINE_BEGIN);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move", ENDKEY, KM_PRESS, 0, 0)->ptr, "type", LINE_END);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move", LEFTARROWKEY, KM_PRESS, 0, 0)->ptr, "type", PREV_CHAR);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move", RIGHTARROWKEY, KM_PRESS, 0, 0)->ptr, "type", NEXT_CHAR);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move", LEFTARROWKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", PREV_WORD);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move", RIGHTARROWKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", NEXT_WORD);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move", UPARROWKEY, KM_PRESS, 0, 0)->ptr, "type", PREV_LINE);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move", DOWNARROWKEY, KM_PRESS, 0, 0)->ptr, "type", NEXT_LINE);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move", PAGEUPKEY, KM_PRESS, 0, 0)->ptr, "type", PREV_PAGE);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move", PAGEDOWNKEY, KM_PRESS, 0, 0)->ptr, "type", NEXT_PAGE);
 | 
			
		||||
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move_select", HOMEKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", LINE_BEGIN);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move_select", ENDKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", LINE_END);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move_select", LEFTARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", PREV_CHAR);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move_select", RIGHTARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", NEXT_CHAR);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move_select", LEFTARROWKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0)->ptr, "type", PREV_WORD);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move_select", RIGHTARROWKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0)->ptr, "type", NEXT_WORD);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move_select", UPARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", PREV_LINE);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move_select", DOWNARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", NEXT_LINE);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move_select", PAGEUPKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", PREV_PAGE);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move_select", PAGEDOWNKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", NEXT_PAGE);
 | 
			
		||||
 | 
			
		||||
	RNA_int_set(WM_keymap_add_item(keymap, "FONT_OT_change_spacing", LEFTARROWKEY, KM_PRESS, KM_ALT, 0)->ptr, "delta", -1);
 | 
			
		||||
	RNA_int_set(WM_keymap_add_item(keymap, "FONT_OT_change_spacing", RIGHTARROWKEY, KM_PRESS, KM_ALT, 0)->ptr, "delta", 1);
 | 
			
		||||
	RNA_int_set(WM_keymap_add_item(keymap, "FONT_OT_change_character", UPARROWKEY, KM_PRESS, KM_ALT, 0)->ptr, "delta", 1);
 | 
			
		||||
	RNA_int_set(WM_keymap_add_item(keymap, "FONT_OT_change_character", DOWNARROWKEY, KM_PRESS, KM_ALT, 0)->ptr, "delta", -1);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "FONT_OT_select_all", AKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "FONT_OT_text_copy", CKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "FONT_OT_text_cut", XKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "FONT_OT_text_paste", VKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
#ifdef __APPLE__
 | 
			
		||||
	WM_keymap_add_item(keymap, "FONT_OT_select_all", AKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "FONT_OT_text_copy", CKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "FONT_OT_text_cut", XKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "FONT_OT_text_paste", VKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "FONT_OT_line_break", RETKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "FONT_OT_text_insert", KM_TEXTINPUT, KM_ANY, KM_ANY, 0); // last!
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FONT_OT_text_insert", BACKSPACEKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "accent", true); /* accented characters */
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Font", 0, 0);
 | 
			
		||||
	keymap->poll = ED_operator_editfont;
 | 
			
		||||
 | 
			
		||||
	/* only set in editmode curve, by space_view3d listener */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Curve", 0, 0);
 | 
			
		||||
	keymap->poll = ED_operator_editsurfcurve;
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_curve_add", AKEY, KM_PRESS, KM_SHIFT, 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_CLICK, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CURVE_OT_draw", ACTIONMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "wait_for_input", false);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CURVE_OT_draw", TABLET_STYLUS, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "wait_for_input", false);
 | 
			
		||||
 | 
			
		||||
	ED_keymap_template_select_all(keymap, "CURVE_OT_select_all");
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "CURVE_OT_select_row", RKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CURVE_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CURVE_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CURVE_OT_select_linked", LKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CURVE_OT_select_similar", GKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CURVE_OT_select_linked_pick", LKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CURVE_OT_select_linked_pick", LKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "CURVE_OT_shortest_path_pick", SELECTMOUSE, KM_CLICK, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "CURVE_OT_separate", PKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CURVE_OT_split", YKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CURVE_OT_extrude_move", EKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CURVE_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CURVE_OT_make_segment", FKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CURVE_OT_cyclic_toggle", CKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_curve_delete", XKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_curve_delete", DELKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "CURVE_OT_dissolve_verts", XKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CURVE_OT_dissolve_verts", DELKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "CURVE_OT_tilt_clear", TKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TRANSFORM_OT_tilt", TKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, KM_ALT, 0)->ptr, "mode", TFM_CURVE_SHRINKFATTEN);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "CURVE_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CURVE_OT_hide", HKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CURVE_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", true);
 | 
			
		||||
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_add_item(keymap, "CURVE_OT_normals_make_consistent", NKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
#else
 | 
			
		||||
	WM_keymap_add_item(keymap, "CURVE_OT_normals_make_consistent", NKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "OBJECT_OT_vertex_parent_set", PKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_curve_specials", WKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* menus */
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_hook", HKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	ED_keymap_proportional_cycle(keyconf, keymap);
 | 
			
		||||
	ED_keymap_proportional_editmode(keyconf, keymap, true);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -51,7 +51,6 @@
 | 
			
		||||
 | 
			
		||||
#include "ED_gpencil.h"
 | 
			
		||||
#include "ED_select_utils.h"
 | 
			
		||||
#include "ED_keymap_templates.h"
 | 
			
		||||
#include "ED_object.h"
 | 
			
		||||
#include "ED_transform.h"
 | 
			
		||||
 | 
			
		||||
@@ -63,49 +62,7 @@
 | 
			
		||||
/* Generic Drawing Keymap - Annotations */
 | 
			
		||||
static void ed_keymap_gpencil_general(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil", 0, 0);
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	/* Draw  --------------------------------------- */
 | 
			
		||||
	/* draw */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_annotate", LEFTMOUSE, KM_PRESS, 0, DKEY);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_DRAW);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "wait_for_input", false);
 | 
			
		||||
 | 
			
		||||
	/* draw - straight lines */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_annotate", LEFTMOUSE, KM_PRESS, KM_ALT, DKEY);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_DRAW_STRAIGHT);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "wait_for_input", false);
 | 
			
		||||
 | 
			
		||||
	/* draw - poly lines */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_annotate", LEFTMOUSE, KM_PRESS, KM_SHIFT | KM_ALT, DKEY);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_DRAW_POLY);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "wait_for_input", false);
 | 
			
		||||
 | 
			
		||||
	/* erase */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_annotate", RIGHTMOUSE, KM_PRESS, 0, DKEY);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_ERASER);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "wait_for_input", false);
 | 
			
		||||
 | 
			
		||||
	/* Viewport Tools ------------------------------- */
 | 
			
		||||
 | 
			
		||||
	/* Enter EditMode */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_editmode_toggle", TABKEY, KM_PRESS, 0, DKEY);
 | 
			
		||||
 | 
			
		||||
	/* Pie Menu - For standard tools */
 | 
			
		||||
#if 0 /* disable while we decide what to do here, maybe an add-on */
 | 
			
		||||
	WM_keymap_add_menu_pie(keymap, "GPENCIL_MT_pie_tool_palette", QKEY, KM_PRESS, 0, DKEY);
 | 
			
		||||
	WM_keymap_add_menu_pie(keymap, "GPENCIL_MT_pie_settings_palette", WKEY, KM_PRESS, 0, DKEY);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	/* Add Blank Frame */
 | 
			
		||||
	/* XXX: BKEY or NKEY? BKEY is easier to reach from DKEY, so we'll use that for now */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_blank_frame_add", BKEY, KM_PRESS, 0, DKEY);
 | 
			
		||||
 | 
			
		||||
	/* Delete Active Frame - For easier video tutorials/review sessions */
 | 
			
		||||
	/* NOTE: This works even when not in EditMode */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_active_frames_delete_all", XKEY, KM_PRESS, 0, DKEY);
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_active_frames_delete_all", DELKEY, KM_PRESS, 0, DKEY);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Grease Pencil", 0, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* ==================== */
 | 
			
		||||
@@ -195,464 +152,58 @@ static bool gp_stroke_weightmode_poll(bContext *C)
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void ed_keymap_gpencil_selection(wmKeyMap *keymap)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	/* select all */
 | 
			
		||||
	ED_keymap_template_select_all(keymap, "GPENCIL_OT_select_all");
 | 
			
		||||
 | 
			
		||||
	/* circle select */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_select_circle", CKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* box select */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_select_box", BKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* lasso select */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", true);
 | 
			
		||||
 | 
			
		||||
	/* In the Node Editor, lasso select needs ALT modifier too
 | 
			
		||||
	 * (as somehow CTRL+LMB drag gets taken for "cut" quite early)
 | 
			
		||||
	 * There probably isn't too much harm adding this for other editors too as part of standard GP editing keymap.
 | 
			
		||||
	 * This hotkey combo doesn't seem to see much use under standard scenarios?
 | 
			
		||||
	 */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_SHIFT | KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "toggle", true);
 | 
			
		||||
 | 
			
		||||
	/* whole stroke select */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_select", SELECTMOUSE, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "entire_strokes", true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_select", SELECTMOUSE, KM_PRESS, KM_ALT | KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "entire_strokes", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
 | 
			
		||||
	/* select linked */
 | 
			
		||||
	/* NOTE: While LKEY is redundant, not having it breaks the mode illusion too much */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_select_linked", LKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_select_linked", LKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	/* select alternate */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_select_alternate", LKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	/* select grouped */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_select_grouped", GKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	/* select more/less */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void ed_keymap_gpencil_display(wmKeyMap *keymap)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", QKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "space_data.overlay.use_gpencil_edit_lines");
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", QKEY, KM_PRESS, KM_SHIFT | KM_ALT, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "space_data.overlay.use_gpencil_multiedit_line_only");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void ed_keymap_gpencil_sculpt(wmKeyMap *keymap)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	/* Pie Menu - For settings/tools easy access */
 | 
			
		||||
#if 0 /* disable while we decide what to do here, maybe an add-on */
 | 
			
		||||
	WM_keymap_add_menu_pie(keymap, "GPENCIL_PIE_sculpt", EKEY, KM_PRESS, 0, DKEY);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	/* Sculpting ------------------------------------- */
 | 
			
		||||
 | 
			
		||||
	/* Brush-Based Editing:
 | 
			
		||||
	 *   EKEY + LMB                          = Single stroke, draw immediately
 | 
			
		||||
	 *        + Other Modifiers (Ctrl/Shift) = Invert, Smooth, etc.
 | 
			
		||||
	 *
 | 
			
		||||
	 * For the modal version, use D+E -> Sculpt
 | 
			
		||||
	 */
 | 
			
		||||
	/* GPXX: disabled to make toolsystem works */
 | 
			
		||||
	//kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_brush_paint", LEFTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	//RNA_boolean_set(kmi->ptr, "wait_for_input", false);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_brush_paint", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "wait_for_input", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "keep_brush", true);
 | 
			
		||||
	/*RNA_boolean_set(kmi->ptr, "use_invert", true);*/
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_brush_paint", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "wait_for_input", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "keep_brush", true);
 | 
			
		||||
	/*RNA_boolean_set(kmi->ptr, "use_smooth", true);*/
 | 
			
		||||
 | 
			
		||||
	/* Shift-FKEY = Sculpt Strength */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path_primary", "tool_settings.gpencil_sculpt.brush.strength");
 | 
			
		||||
 | 
			
		||||
	/* FKEY = Sculpt Brush Size */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path_primary", "tool_settings.gpencil_sculpt.brush.size");
 | 
			
		||||
 | 
			
		||||
	/* menu sculpt specials */
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_gpencil_sculpt_specials", WKEY, KM_PRESS, 0, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void ed_keymap_gpencil_weight(wmKeyMap *keymap)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	/* Brush-Based Editing:
 | 
			
		||||
	 *   EKEY + LMB                          = Single stroke, draw immediately
 | 
			
		||||
	 *        + Other Modifiers (Ctrl/Shift) = Invert, Smooth, etc.
 | 
			
		||||
	 *
 | 
			
		||||
	 * For the modal version, use D+E -> Sculpt
 | 
			
		||||
	 */
 | 
			
		||||
	/* GPXX: disabled to make toolsystem works */
 | 
			
		||||
	//kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_brush_paint", LEFTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	//RNA_boolean_set(kmi->ptr, "wait_for_input", false);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_brush_paint", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "wait_for_input", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "keep_brush", true);
 | 
			
		||||
	/*RNA_boolean_set(kmi->ptr, "use_invert", true);*/
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_brush_paint", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "wait_for_input", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "keep_brush", true);
 | 
			
		||||
	/*RNA_boolean_set(kmi->ptr, "use_smooth", true);*/
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Stroke Editing Keymap - Only when editmode is enabled */
 | 
			
		||||
static void ed_keymap_gpencil_editing(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil Stroke Edit Mode", 0, 0);
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	/* set poll callback - so that this keymap only gets enabled when stroke editmode is enabled */
 | 
			
		||||
	keymap->poll = gp_stroke_editmode_poll;
 | 
			
		||||
 | 
			
		||||
	/* ----------------------------------------------- */
 | 
			
		||||
 | 
			
		||||
	/* Brush Settings */
 | 
			
		||||
	/* NOTE: We cannot expose these in the standard keymap, as they will interfere with regular hotkeys
 | 
			
		||||
	 *       in other modes. However, when we are dealing with Stroke Edit Mode, we know for certain
 | 
			
		||||
	 *       that the only data being edited is that of the Grease Pencil strokes
 | 
			
		||||
	 */
 | 
			
		||||
 | 
			
		||||
	/* Interpolation */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_interpolate", EKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_interpolate_sequence", EKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	/* normal select */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_select", SELECTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* Selection */
 | 
			
		||||
	ed_keymap_gpencil_selection(keymap);
 | 
			
		||||
 | 
			
		||||
	/* Editing ----------------------------------------- */
 | 
			
		||||
 | 
			
		||||
	/* duplicate and move selected points */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	/* delete */
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_gpencil_delete", XKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_gpencil_delete", DELKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_dissolve", XKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_dissolve", DELKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_active_frames_delete_all", XKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_active_frames_delete_all", DELKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	/* menu edit specials */
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_gpencil_edit_specials", WKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* menu separate */
 | 
			
		||||
	WM_keymap_add_menu(keymap, "GPENCIL_MT_separate", PKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* split strokes */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_stroke_split", VKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* join strokes */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_stroke_join", JKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_stroke_join", JKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "type", GP_STROKE_JOINCOPY);
 | 
			
		||||
 | 
			
		||||
	/* copy + paste */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_paste", VKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
#ifdef __APPLE__
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_copy", CKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_paste", VKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	/* snap */
 | 
			
		||||
	WM_keymap_add_menu(keymap, "GPENCIL_MT_snap", SKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	/* convert to geometry */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_convert", CKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	/* Show/Hide */
 | 
			
		||||
	/* NOTE: These are available only in EditMode now, since they clash with general-purpose hotkeys */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_hide", HKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", false);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_selection_opacity_toggle", HKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	/* Display. */
 | 
			
		||||
	ed_keymap_gpencil_display(keymap);
 | 
			
		||||
 | 
			
		||||
	/* Isolate Layer */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_layer_isolate", PADASTERKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* Move to Layer */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_move_to_layer", MKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* Transform Tools */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", GKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", EVT_TWEAK_S, KM_ANY, 0, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_rotate", RKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_resize", SKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_mirror", MKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_bend", WKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "TRANSFORM_OT_tosphere", SKEY, KM_PRESS, KM_ALT | KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "TRANSFORM_OT_shear", SKEY, KM_PRESS, KM_ALT | KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", TFM_GPENCIL_SHRINKFATTEN);
 | 
			
		||||
 | 
			
		||||
	/* Proportional Editing */
 | 
			
		||||
	ED_keymap_proportional_cycle(keyconf, keymap);
 | 
			
		||||
	ED_keymap_proportional_editmode(keyconf, keymap, true);
 | 
			
		||||
 | 
			
		||||
	/* menu - add GP object (3d view only) */
 | 
			
		||||
	WM_keymap_add_item(keymap, "OBJECT_OT_gpencil_add", AKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	/* menu vertex group */
 | 
			
		||||
	WM_keymap_add_menu(keymap, "GPENCIL_MT_gpencil_vertex_group", GKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	/* toggle edit mode */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_editmode_toggle", TABKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* select mode */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_selectmode_toggle", ONEKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_int_set(kmi->ptr, "mode", 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_selectmode_toggle", TWOKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_int_set(kmi->ptr, "mode", 1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* keys for draw with a drawing brush (no fill) */
 | 
			
		||||
static void ed_keymap_gpencil_painting_draw(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil Stroke Paint (Draw brush)", 0, 0);
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	/* set poll callback */
 | 
			
		||||
	keymap->poll = gp_stroke_paintmode_draw_poll;
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_draw", LEFTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_DRAW);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "wait_for_input", false);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_draw", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_DRAW);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "wait_for_input", false);
 | 
			
		||||
 | 
			
		||||
	/* draw - straight lines */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_draw", LEFTMOUSE, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_DRAW_STRAIGHT);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "wait_for_input", false);
 | 
			
		||||
 | 
			
		||||
	/* draw - poly lines */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_draw", LEFTMOUSE, KM_PRESS, KM_SHIFT | KM_ALT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_DRAW_POLY);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "wait_for_input", false);
 | 
			
		||||
 | 
			
		||||
	/* erase */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_draw", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_ERASER);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "wait_for_input", false);
 | 
			
		||||
 | 
			
		||||
	/* Tablet Mappings for Drawing ------------------ */
 | 
			
		||||
	/* For now, only support direct drawing using the eraser, as most users using a tablet
 | 
			
		||||
	 * may still want to use that as their primary pointing device!
 | 
			
		||||
	 */
 | 
			
		||||
#if 0
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_draw", TABLET_STYLUS, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_DRAW);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "wait_for_input", false);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_draw", TABLET_ERASER, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_ERASER);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "wait_for_input", false);
 | 
			
		||||
 | 
			
		||||
	/* Selection (used by eraser) */
 | 
			
		||||
	/* box select */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_select_box", BKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* lasso select */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* keys for draw with a eraser brush (erase) */
 | 
			
		||||
static void ed_keymap_gpencil_painting_erase(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil Stroke Paint (Erase)", 0, 0);
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	/* set poll callback */
 | 
			
		||||
	keymap->poll = gp_stroke_paintmode_erase_poll;
 | 
			
		||||
 | 
			
		||||
	/* erase */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_draw", LEFTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_ERASER);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "wait_for_input", false);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_draw", TABLET_ERASER, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_ERASER);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "wait_for_input", false);
 | 
			
		||||
 | 
			
		||||
	/* Selection (used by eraser) */
 | 
			
		||||
	/* box select */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GPENCIL_OT_select_box", BKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* lasso select */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* keys for draw with a fill brush */
 | 
			
		||||
static void ed_keymap_gpencil_painting_fill(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil Stroke Paint (Fill)", 0, 0);
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	/* set poll callback */
 | 
			
		||||
	keymap->poll = gp_stroke_paintmode_fill_poll;
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_fill", LEFTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "on_back", false);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_fill", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "on_back", true);
 | 
			
		||||
 | 
			
		||||
	/* if press alternative key, the brush now it's for drawing areas */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_draw", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_DRAW);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "wait_for_input", false);
 | 
			
		||||
	/* disable straight lines */
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "disable_straight", true);
 | 
			
		||||
 | 
			
		||||
	/* if press alternative key, the brush now it's for drawing lines */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_draw", LEFTMOUSE, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_DRAW);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "wait_for_input", false);
 | 
			
		||||
	/* disable straight lines */
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "disable_straight", true);
 | 
			
		||||
	/* enable special stroke with no fill flag */
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "disable_fill", true);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Stroke Painting Keymap - Only when paintmode is enabled */
 | 
			
		||||
static void ed_keymap_gpencil_painting(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil Stroke Paint Mode", 0, 0);
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	/* set poll callback - so that this keymap only gets enabled when stroke paintmode is enabled */
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil Stroke Paint Mode", 0, 0);
 | 
			
		||||
	keymap->poll = gp_stroke_paintmode_poll;
 | 
			
		||||
 | 
			
		||||
	/* Shift-FKEY = Brush Strength */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path_primary", "tool_settings.gpencil_paint.brush.gpencil_settings.pen_strength");
 | 
			
		||||
 | 
			
		||||
	/* FKEY = Brush Size */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path_primary", "tool_settings.gpencil_paint.brush.size");
 | 
			
		||||
 | 
			
		||||
	/* CTRL + FKEY = Eraser Radius */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path_primary", "user_preferences.edit.grease_pencil_eraser_radius");
 | 
			
		||||
 | 
			
		||||
	/* menu draw specials */
 | 
			
		||||
	WM_keymap_add_menu(keymap, "GPENCIL_MT_gpencil_draw_specials", WKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* menu draw delete */
 | 
			
		||||
	WM_keymap_add_menu(keymap, "GPENCIL_MT_gpencil_draw_delete", XKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Stroke Sculpting Keymap - Only when sculptmode is enabled */
 | 
			
		||||
static void ed_keymap_gpencil_sculpting(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil Stroke Sculpt Mode", 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* set poll callback - so that this keymap only gets enabled when stroke sculptmode is enabled */
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil Stroke Sculpt Mode", 0, 0);
 | 
			
		||||
	keymap->poll = gp_stroke_sculptmode_poll;
 | 
			
		||||
 | 
			
		||||
	/* Selection */
 | 
			
		||||
	ed_keymap_gpencil_selection(keymap);
 | 
			
		||||
 | 
			
		||||
	/* sculpt */
 | 
			
		||||
	ed_keymap_gpencil_sculpt(keymap);
 | 
			
		||||
 | 
			
		||||
	/* Display. */
 | 
			
		||||
	ed_keymap_gpencil_display(keymap);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Stroke Weight Paint Keymap - Only when weight is enabled */
 | 
			
		||||
static void ed_keymap_gpencil_weightpainting(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil Stroke Weight Mode", 0, 0);
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	/* set poll callback - so that this keymap only gets enabled when stroke sculptmode is enabled */
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil Stroke Weight Mode", 0, 0);
 | 
			
		||||
	keymap->poll = gp_stroke_weightmode_poll;
 | 
			
		||||
 | 
			
		||||
	/* Selection */
 | 
			
		||||
	ed_keymap_gpencil_selection(keymap);
 | 
			
		||||
 | 
			
		||||
	/* sculpt */
 | 
			
		||||
	ed_keymap_gpencil_weight(keymap);
 | 
			
		||||
 | 
			
		||||
	/* Shift-FKEY = Sculpt Strength */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path_primary", "tool_settings.gpencil_sculpt.weight_brush.strength");
 | 
			
		||||
 | 
			
		||||
	/* FKEY = Sculpt Brush Size */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path_primary", "tool_settings.gpencil_sculpt.weight_brush.size");
 | 
			
		||||
 | 
			
		||||
	/* Display. */
 | 
			
		||||
	ed_keymap_gpencil_display(keymap);
 | 
			
		||||
}
 | 
			
		||||
/* ==================== */
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -72,9 +72,6 @@ void ED_operatortypes_marker(void);
 | 
			
		||||
/* called in screen_ops.c:ED_keymap_screen() */
 | 
			
		||||
void ED_keymap_marker(struct wmKeyConfig *keyconf);
 | 
			
		||||
 | 
			
		||||
/* called in animation editors - keymap defines */
 | 
			
		||||
void ED_marker_keymap_animedit_conflictfree(struct wmKeyMap *keymap);
 | 
			
		||||
 | 
			
		||||
/* debugging only */
 | 
			
		||||
void debug_markers_print_list(struct ListBase *markers);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -108,13 +108,6 @@ bool ED_object_parent_set(struct ReportList *reports, const struct bContext *C,
 | 
			
		||||
                          const int vert_par[3]);
 | 
			
		||||
void ED_object_parent_clear(struct Object *ob, const int type);
 | 
			
		||||
 | 
			
		||||
void ED_keymap_proportional_cycle(struct wmKeyConfig *keyconf, struct wmKeyMap *keymap);
 | 
			
		||||
void ED_keymap_proportional_obmode(struct wmKeyConfig *keyconf, struct wmKeyMap *keymap);
 | 
			
		||||
void ED_keymap_proportional_maskmode(struct wmKeyConfig *keyconf, struct wmKeyMap *keymap);
 | 
			
		||||
void ED_keymap_proportional_editmode(struct wmKeyConfig *keyconf, struct wmKeyMap *keymap,
 | 
			
		||||
                                     const bool do_connected);
 | 
			
		||||
void ED_keymap_editmesh_elem_mode(struct wmKeyConfig *keyconf, struct wmKeyMap *keymap);
 | 
			
		||||
 | 
			
		||||
void ED_object_base_select(struct Base *base, eObjectSelect_Mode mode);
 | 
			
		||||
void ED_object_base_activate(struct bContext *C, struct Base *base);
 | 
			
		||||
void ED_object_base_free_and_unlink(struct Main *bmain, struct Scene *scene, struct Object *ob);
 | 
			
		||||
 
 | 
			
		||||
@@ -48,7 +48,7 @@ struct Main;
 | 
			
		||||
struct SnapObjectContext;
 | 
			
		||||
struct SnapObjectParams;
 | 
			
		||||
 | 
			
		||||
void transform_keymap_for_space(struct wmKeyConfig *keyconf, struct wmKeyMap *keymap, int spaceid);
 | 
			
		||||
void ED_keymap_transform(struct wmKeyConfig *keyconf);
 | 
			
		||||
void transform_operatortypes(void);
 | 
			
		||||
 | 
			
		||||
/* ******************** Macros & Prototypes *********************** */
 | 
			
		||||
 
 | 
			
		||||
@@ -70,15 +70,6 @@ wmKeyMap *eyedropper_modal_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
 | 
			
		||||
	keymap = WM_modalkeymap_add(keyconf, "Eyedropper Modal Map", modal_items);
 | 
			
		||||
 | 
			
		||||
	/* items for modal map */
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, EYE_MODAL_CANCEL);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_PRESS, KM_ANY, 0, EYE_MODAL_CANCEL);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RETKEY, KM_RELEASE, KM_ANY, 0, EYE_MODAL_SAMPLE_CONFIRM);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, PADENTER, KM_RELEASE, KM_ANY, 0, EYE_MODAL_SAMPLE_CONFIRM);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_RELEASE, KM_ANY, 0, EYE_MODAL_SAMPLE_CONFIRM);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_PRESS, KM_ANY, 0, EYE_MODAL_SAMPLE_BEGIN);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, SPACEKEY, KM_RELEASE, KM_ANY, 0, EYE_MODAL_SAMPLE_RESET);
 | 
			
		||||
 | 
			
		||||
	/* assign to operators */
 | 
			
		||||
	WM_modalkeymap_assign(keymap, "UI_OT_eyedropper_colorband");
 | 
			
		||||
	WM_modalkeymap_assign(keymap, "UI_OT_eyedropper_color");
 | 
			
		||||
@@ -106,15 +97,6 @@ wmKeyMap *eyedropper_colorband_modal_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
 | 
			
		||||
	keymap = WM_modalkeymap_add(keyconf, "Eyedropper ColorBand PointSampling Map", modal_items_point);
 | 
			
		||||
 | 
			
		||||
	/* items for modal map */
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, EYE_MODAL_CANCEL);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, BACKSPACEKEY, KM_PRESS, KM_ANY, 0, EYE_MODAL_POINT_REMOVE_LAST);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_PRESS, KM_ANY, 0, EYE_MODAL_POINT_CONFIRM);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RETKEY, KM_RELEASE, KM_ANY, 0, EYE_MODAL_POINT_CONFIRM);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, PADENTER, KM_RELEASE, KM_ANY, 0, EYE_MODAL_POINT_CONFIRM);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_PRESS, KM_ANY, 0, EYE_MODAL_POINT_SAMPLE);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, SPACEKEY, KM_RELEASE, KM_ANY, 0, EYE_MODAL_POINT_RESET);
 | 
			
		||||
 | 
			
		||||
	/* assign to operators */
 | 
			
		||||
	WM_modalkeymap_assign(keymap, "UI_OT_eyedropper_colorband_point");
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1434,34 +1434,7 @@ void ED_operatortypes_ui(void)
 | 
			
		||||
 */
 | 
			
		||||
void ED_keymap_ui(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "User Interface", 0, 0);
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	/* eyedroppers - notice they all have the same shortcut, but pass the event
 | 
			
		||||
	 * through until a suitable eyedropper for the active button is found */
 | 
			
		||||
	WM_keymap_add_item(keymap, "UI_OT_eyedropper_color", EKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "UI_OT_eyedropper_colorband", EKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "UI_OT_eyedropper_colorband_point", EKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "UI_OT_eyedropper_id", EKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "UI_OT_eyedropper_depth", EKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* Copy Data Path */
 | 
			
		||||
	WM_keymap_add_item(keymap, "UI_OT_copy_data_path_button", CKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "UI_OT_copy_data_path_button", CKEY, KM_PRESS, KM_CTRL | KM_SHIFT | KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "full_path", true);
 | 
			
		||||
 | 
			
		||||
	/* keyframes */
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_keyframe_insert_button", IKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_keyframe_delete_button", IKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_keyframe_clear_button", IKEY, KM_PRESS, KM_SHIFT | KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	/* drivers */
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_driver_button_add", DKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_driver_button_remove", DKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	/* keyingsets */
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_keyingset_button_add", KKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_keyingset_button_remove", KKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "User Interface", 0, 0);
 | 
			
		||||
 | 
			
		||||
	eyedropper_modal_keymap(keyconf);
 | 
			
		||||
	eyedropper_colorband_modal_keymap(keyconf);
 | 
			
		||||
 
 | 
			
		||||
@@ -2129,85 +2129,5 @@ void ED_operatortypes_view2d(void)
 | 
			
		||||
 | 
			
		||||
void ED_keymap_view2d(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "View2D", 0, 0);
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	/* scrollers */
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_scroller_activate", LEFTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_scroller_activate", MIDDLEMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* pan/scroll */
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_pan", MIDDLEMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_pan", MIDDLEMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_pan", MOUSEPAN, 0, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_right", WHEELDOWNMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_left", WHEELUPMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_down", WHEELDOWNMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_up", WHEELUPMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
#ifdef WITH_INPUT_NDOF
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_ndof", NDOF_MOTION, 0, 0, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	/* zoom - single step */
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_zoom_out", WHEELOUTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_zoom_in", WHEELINMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_zoom_out", PADMINUS, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_zoom_in", PADPLUSKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_zoom", MOUSEPAN, 0, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_verify_item(keymap, "VIEW2D_OT_smoothview", TIMER1, KM_ANY, KM_ANY, 0);
 | 
			
		||||
 | 
			
		||||
	/* scroll up/down - no modifiers, only when zoom fails */
 | 
			
		||||
	/* these may fail if zoom is disallowed, in which case they should pass on event */
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_down", WHEELDOWNMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_up", WHEELUPMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	/* these may be necessary if vertical scroll is disallowed */
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_right", WHEELDOWNMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_left", WHEELUPMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* alternatives for page up/down to scroll */
 | 
			
		||||
#if 0 // XXX disabled, since this causes conflicts with hotkeys in animation editors
 | 
			
		||||
	/* scroll up/down may fall through to left/right */
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_down", PAGEDOWNKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_up", PAGEUPKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_right", PAGEDOWNKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_left", PAGEUPKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	/* shift for moving view left/right with page up/down */
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_right", PAGEDOWNKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_left", PAGEUPKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	/* zoom - drag */
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_zoom", MIDDLEMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_zoom", MOUSEZOOM, 0, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* borderzoom - drag */
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_zoom_border", BKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	/* Alternative keymap for buttons listview */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "View2D Buttons List", 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_scroller_activate", LEFTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_scroller_activate", MIDDLEMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_pan", MIDDLEMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_pan", MOUSEPAN, 0, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_down", WHEELDOWNMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_up", WHEELUPMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_down", PAGEDOWNKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "page", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_up", PAGEUPKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "page", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_zoom", MIDDLEMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_zoom", MOUSEZOOM, 0, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_zoom", MOUSEPAN, 0, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_zoom_out", PADMINUS, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_zoom_in", PADPLUSKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW2D_OT_reset", HOMEKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "View2D", 0, 0);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -37,7 +37,6 @@
 | 
			
		||||
 | 
			
		||||
#include "ED_screen.h"
 | 
			
		||||
#include "ED_select_utils.h"
 | 
			
		||||
#include "ED_keymap_templates.h"
 | 
			
		||||
#include "ED_object.h"
 | 
			
		||||
#include "ED_lattice.h"
 | 
			
		||||
 | 
			
		||||
@@ -57,23 +56,6 @@ void ED_operatortypes_lattice(void)
 | 
			
		||||
 | 
			
		||||
void ED_keymap_lattice(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap;
 | 
			
		||||
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Lattice", 0, 0);
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Lattice", 0, 0);
 | 
			
		||||
	keymap->poll = ED_operator_editlattice;
 | 
			
		||||
 | 
			
		||||
	ED_keymap_template_select_all(keymap, "LATTICE_OT_select_all");
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "LATTICE_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "LATTICE_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "OBJECT_OT_vertex_parent_set", PKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "LATTICE_OT_flip", FKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	/* menus */
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_hook", HKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	ED_keymap_proportional_cycle(keyconf, keymap);
 | 
			
		||||
	ED_keymap_proportional_editmode(keyconf, keymap, false);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -43,7 +43,6 @@
 | 
			
		||||
 | 
			
		||||
#include "ED_screen.h"
 | 
			
		||||
#include "ED_select_utils.h"
 | 
			
		||||
#include "ED_keymap_templates.h"
 | 
			
		||||
#include "ED_mask.h"  /* own include */
 | 
			
		||||
#include "ED_image.h"
 | 
			
		||||
#include "ED_object.h" /* ED_keymap_proportional_maskmode only */
 | 
			
		||||
@@ -524,106 +523,8 @@ void ED_operatortypes_mask(void)
 | 
			
		||||
 | 
			
		||||
void ED_keymap_mask(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap;
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Mask Editing", 0, 0);
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Mask Editing", 0, 0);
 | 
			
		||||
	keymap->poll = ED_maskedit_poll;
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "MASK_OT_new", NKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	/* add menu */
 | 
			
		||||
	WM_keymap_add_menu(keymap, "MASK_MT_add", AKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	/* mask mode supports PET now */
 | 
			
		||||
	ED_keymap_proportional_cycle(keyconf, keymap);
 | 
			
		||||
	ED_keymap_proportional_maskmode(keyconf, keymap);
 | 
			
		||||
 | 
			
		||||
	/* geometry */
 | 
			
		||||
	WM_keymap_add_item(keymap, "MASK_OT_add_vertex_slide", ACTIONMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "MASK_OT_add_feather_vertex_slide", ACTIONMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "MASK_OT_delete", XKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "MASK_OT_delete", DELKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* selection */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MASK_OT_select", SELECTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "toggle", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MASK_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "toggle", true);
 | 
			
		||||
 | 
			
		||||
	ED_keymap_template_select_all(keymap, "MASK_OT_select_all");
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "MASK_OT_select_linked", LKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MASK_OT_select_linked_pick", LKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MASK_OT_select_linked_pick", LKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "MASK_OT_select_box", BKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "MASK_OT_select_circle", CKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MASK_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MASK_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL | KM_SHIFT | KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "MASK_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "MASK_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	/* hide/reveal */
 | 
			
		||||
	WM_keymap_add_item(keymap, "MASK_OT_hide_view_clear", HKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MASK_OT_hide_view_set", HKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", false);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MASK_OT_hide_view_set", HKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", true);
 | 
			
		||||
 | 
			
		||||
	/* select clip while in maker view,
 | 
			
		||||
	 * this matches View3D functionality where you can select an
 | 
			
		||||
	 * object while in editmode to allow vertex parenting */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_select", SELECTMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
 | 
			
		||||
	/* shape */
 | 
			
		||||
	WM_keymap_add_item(keymap, "MASK_OT_cyclic_toggle", CKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "MASK_OT_slide_point", ACTIONMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "MASK_OT_slide_spline_curvature", ACTIONMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "MASK_OT_handle_type_set", VKEY, KM_PRESS, 0, 0);
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_add_item(keymap, "MASK_OT_normals_make_consistent", NKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
#else
 | 
			
		||||
	WM_keymap_add_item(keymap, "MASK_OT_normals_make_consistent", NKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
#endif
 | 
			
		||||
	// WM_keymap_add_item(keymap, "MASK_OT_feather_weight_clear", SKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	/* ... matches curve editmode */
 | 
			
		||||
 | 
			
		||||
	/* relationships */
 | 
			
		||||
	WM_keymap_add_item(keymap, "MASK_OT_parent_set", PKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "MASK_OT_parent_clear", PKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "MASK_OT_shape_key_insert", IKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "MASK_OT_shape_key_clear", IKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	/* duplicate */
 | 
			
		||||
	WM_keymap_add_item(keymap, "MASK_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "MASK_OT_copy_splines", CKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "MASK_OT_paste_splines", VKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	/* for image editor only */
 | 
			
		||||
	WM_keymap_add_item(keymap, "UV_OT_cursor_set", ACTIONMOUSE, KM_CLICK, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* Transform (don't use transform_keymap_for_space() since this maps to different spaces) */
 | 
			
		||||
	WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", GKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", EVT_TWEAK_S, KM_ANY, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TRANSFORM_OT_resize", SKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TRANSFORM_OT_rotate", RKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", TFM_MASK_SHRINKFATTEN);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ED_operatormacros_mask(void)
 | 
			
		||||
 
 | 
			
		||||
@@ -2761,30 +2761,6 @@ wmKeyMap *knifetool_modal_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
 | 
			
		||||
	keymap = WM_modalkeymap_add(keyconf, "Knife Tool Modal Map", modal_items);
 | 
			
		||||
 | 
			
		||||
	/* items for modal map */
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, KNF_MODAL_CANCEL);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_ANY, KM_ANY, 0, KNF_MODAL_PANNING);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_DBL_CLICK, KM_ANY, 0, KNF_MODAL_ADD_CUT_CLOSED);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_ANY, KM_ANY, 0, KNF_MODAL_ADD_CUT);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_PRESS, KM_ANY, 0, KNF_MODAL_CANCEL);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RETKEY, KM_PRESS, KM_ANY, 0, KNF_MODAL_CONFIRM);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, PADENTER, KM_PRESS, KM_ANY, 0, KNF_MODAL_CONFIRM);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, SPACEKEY, KM_PRESS, KM_ANY, 0, KNF_MODAL_CONFIRM);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, EKEY, KM_PRESS, 0, 0, KNF_MODAL_NEW_CUT);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTCTRLKEY, KM_PRESS, KM_ANY, 0, KNF_MODAL_MIDPOINT_ON);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTCTRLKEY, KM_RELEASE, KM_ANY, 0, KNF_MODAL_MIDPOINT_OFF);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RIGHTCTRLKEY, KM_PRESS, KM_ANY, 0, KNF_MODAL_MIDPOINT_ON);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RIGHTCTRLKEY, KM_RELEASE, KM_ANY, 0, KNF_MODAL_MIDPOINT_OFF);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTSHIFTKEY, KM_PRESS, KM_ANY, 0, KNF_MODEL_IGNORE_SNAP_ON);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTSHIFTKEY, KM_RELEASE, KM_ANY, 0, KNF_MODEL_IGNORE_SNAP_OFF);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RIGHTSHIFTKEY, KM_PRESS, KM_ANY, 0, KNF_MODEL_IGNORE_SNAP_ON);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RIGHTSHIFTKEY, KM_RELEASE, KM_ANY, 0, KNF_MODEL_IGNORE_SNAP_OFF);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, CKEY, KM_PRESS, 0, 0, KNF_MODAL_ANGLE_SNAP_TOGGLE);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, ZKEY, KM_PRESS, 0, 0, KNF_MODAL_CUT_THROUGH_TOGGLE);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_assign(keymap, "MESH_OT_knife_tool");
 | 
			
		||||
 | 
			
		||||
	return keymap;
 | 
			
		||||
 
 | 
			
		||||
@@ -7139,27 +7139,6 @@ wmKeyMap *point_normals_modal_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
 | 
			
		||||
	keymap = WM_modalkeymap_add(keyconf, keymap_name, modal_items);
 | 
			
		||||
 | 
			
		||||
	/* Generic items for modal map. */
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, ESCKEY,     KM_PRESS, KM_ANY,     0, EDBM_CLNOR_MODAL_CANCEL);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_PRESS, KM_NOTHING, 0, EDBM_CLNOR_MODAL_CANCEL);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RETKEY,     KM_PRESS, KM_ANY,     0, EDBM_CLNOR_MODAL_CONFIRM);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, PADENTER,   KM_PRESS, KM_ANY,     0, EDBM_CLNOR_MODAL_CONFIRM);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTMOUSE,  KM_PRESS, KM_NOTHING, 0, EDBM_CLNOR_MODAL_CONFIRM);
 | 
			
		||||
 | 
			
		||||
	/* Point To items for modal map */
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RKEY,       KM_PRESS, KM_NOTHING, 0, EDBM_CLNOR_MODAL_POINTTO_RESET);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, IKEY,       KM_PRESS, KM_NOTHING, 0, EDBM_CLNOR_MODAL_POINTTO_INVERT);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, SKEY,       KM_PRESS, KM_NOTHING, 0, EDBM_CLNOR_MODAL_POINTTO_SPHERIZE);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, AKEY,       KM_PRESS, KM_NOTHING, 0, EDBM_CLNOR_MODAL_POINTTO_ALIGN);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, MKEY,       KM_PRESS, KM_NOTHING, 0, EDBM_CLNOR_MODAL_POINTTO_USE_MOUSE);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LKEY,       KM_PRESS, KM_NOTHING, 0, EDBM_CLNOR_MODAL_POINTTO_USE_PIVOT);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, OKEY,       KM_PRESS, KM_NOTHING, 0, EDBM_CLNOR_MODAL_POINTTO_USE_OBJECT);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTMOUSE,  KM_CLICK, KM_CTRL,    0, EDBM_CLNOR_MODAL_POINTTO_SET_USE_3DCURSOR);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_CLICK, KM_CTRL,    0, EDBM_CLNOR_MODAL_POINTTO_SET_USE_SELECTED);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_assign(keymap, "MESH_OT_point_normals");
 | 
			
		||||
 | 
			
		||||
	return keymap;
 | 
			
		||||
 
 | 
			
		||||
@@ -41,7 +41,6 @@
 | 
			
		||||
#include "ED_mesh.h"
 | 
			
		||||
#include "ED_screen.h"
 | 
			
		||||
#include "ED_select_utils.h"
 | 
			
		||||
#include "ED_keymap_templates.h"
 | 
			
		||||
 | 
			
		||||
#include "mesh_intern.h"  /* own include */
 | 
			
		||||
 | 
			
		||||
@@ -325,207 +324,9 @@ void ED_operatormacros_mesh(void)
 | 
			
		||||
/* note mesh keymap also for other space? */
 | 
			
		||||
void ED_keymap_mesh(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap;
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Mesh", 0, 0);
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Mesh", 0, 0);
 | 
			
		||||
	keymap->poll = ED_operator_editmesh;
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MESH_OT_loopcut_slide", RKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	{
 | 
			
		||||
		PointerRNA macro_ptr = RNA_pointer_get(kmi->ptr, "TRANSFORM_OT_edge_slide");
 | 
			
		||||
		RNA_boolean_set(¯o_ptr, "release_confirm", false);
 | 
			
		||||
	}
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MESH_OT_offset_edge_loops_slide", RKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	{
 | 
			
		||||
		PointerRNA macro_ptr = RNA_pointer_get(kmi->ptr, "TRANSFORM_OT_edge_slide");
 | 
			
		||||
		RNA_boolean_set(¯o_ptr, "release_confirm", false);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "MESH_OT_inset", IKEY, KM_PRESS, 0, 0);
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_add_item(keymap, "MESH_OT_poke", PKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
#endif
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MESH_OT_bevel", BKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "vertex_only", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MESH_OT_bevel", BKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "vertex_only", true);
 | 
			
		||||
 | 
			
		||||
	/* Selec Vert/Edge/Face. */
 | 
			
		||||
	ED_keymap_editmesh_elem_mode(keyconf, keymap);
 | 
			
		||||
 | 
			
		||||
	/* standard mouse selection goes via space_view3d */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MESH_OT_loop_select", SELECTMOUSE, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "toggle", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MESH_OT_loop_select", SELECTMOUSE, KM_PRESS, KM_SHIFT | KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "toggle", true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MESH_OT_edgering_select", SELECTMOUSE, KM_PRESS, KM_ALT | KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "toggle", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MESH_OT_edgering_select", SELECTMOUSE, KM_PRESS, KM_SHIFT | KM_ALT | KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "toggle", true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MESH_OT_shortest_path_pick", SELECTMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "use_fill", false);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MESH_OT_shortest_path_pick", SELECTMOUSE, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "use_fill", true);
 | 
			
		||||
 | 
			
		||||
	ED_keymap_template_select_all(keymap, "MESH_OT_select_all");
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "MESH_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "MESH_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "MESH_OT_select_next_item", PADPLUSKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "MESH_OT_select_prev_item", PADMINUS, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_add_item(keymap, "MESH_OT_select_non_manifold", MKEY, KM_PRESS, (KM_CTRL | KM_SHIFT | KM_ALT), 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "MESH_OT_select_linked", LKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MESH_OT_select_linked_pick", LKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MESH_OT_select_linked_pick", LKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", true);
 | 
			
		||||
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_add_item(keymap, "MESH_OT_faces_select_linked_flat", FKEY, KM_PRESS, (KM_CTRL | KM_SHIFT | KM_ALT), 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "MESH_OT_select_mirror", MKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_mesh_select_similar", GKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	/* hide */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MESH_OT_hide", HKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MESH_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", true);
 | 
			
		||||
	WM_keymap_add_item(keymap, "MESH_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	/* tools */
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MESH_OT_normals_make_consistent", NKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "inside", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MESH_OT_normals_make_consistent", NKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "inside", true);
 | 
			
		||||
#else
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MESH_OT_normals_make_consistent", NKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "inside", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MESH_OT_normals_make_consistent", NKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "inside", true);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_edit_mesh_extrude_move_normal", EKEY, KM_PRESS, 0, 0); /* python operator */
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_mesh_extrude", EKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "TRANSFORM_OT_edge_crease", EKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_add_item(keymap, "MESH_OT_spin", RKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "MESH_OT_fill", FKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_add_item(keymap, "MESH_OT_beautify_fill", FKEY, KM_PRESS, KM_SHIFT | KM_ALT, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MESH_OT_quads_convert_to_tris", TKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "quad_method", MOD_TRIANGULATE_QUAD_BEAUTY);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "ngon_method", MOD_TRIANGULATE_NGON_BEAUTY);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MESH_OT_quads_convert_to_tris", TKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "quad_method", MOD_TRIANGULATE_QUAD_FIXED);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "ngon_method", MOD_TRIANGULATE_NGON_EARCLIP);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "MESH_OT_tris_convert_to_quads", JKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MESH_OT_rip_move", VKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	{
 | 
			
		||||
		PointerRNA macro_ptr = RNA_pointer_get(kmi->ptr, "MESH_OT_rip");
 | 
			
		||||
		RNA_boolean_set(¯o_ptr, "use_fill", false);
 | 
			
		||||
	}
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MESH_OT_rip_move", VKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	{
 | 
			
		||||
		PointerRNA macro_ptr = RNA_pointer_get(kmi->ptr, "MESH_OT_rip");
 | 
			
		||||
		RNA_boolean_set(¯o_ptr, "use_fill", true);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "MESH_OT_rip_edge_move", DKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "MESH_OT_merge", MKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "TRANSFORM_OT_shrink_fatten", SKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	/* add/remove */
 | 
			
		||||
	WM_keymap_add_item(keymap, "MESH_OT_edge_face_add", FKEY, KM_PRESS, 0, 0);
 | 
			
		||||
//	WM_keymap_add_item(keymap, "MESH_OT_skin", FKEY, KM_PRESS, KM_CTRL|KM_ALT, 0); /* python, removed */
 | 
			
		||||
	WM_keymap_add_item(keymap, "MESH_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_mesh_add", AKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "MESH_OT_separate", PKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "MESH_OT_split", YKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "MESH_OT_vert_connect_path", JKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "MESH_OT_point_normals", LKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	/* Vertex Slide */
 | 
			
		||||
	WM_keymap_add_item(keymap, "TRANSFORM_OT_vert_slide", VKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	/* use KM_CLICK because same key is used for tweaks */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MESH_OT_dupli_extrude_cursor", ACTIONMOUSE, KM_CLICK, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "rotate_source", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MESH_OT_dupli_extrude_cursor", ACTIONMOUSE, KM_CLICK, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "rotate_source", false);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_mesh_delete", XKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_mesh_delete", DELKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "MESH_OT_dissolve_mode", XKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "MESH_OT_dissolve_mode", DELKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MESH_OT_knife_tool", KKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "use_occlude_geometry", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "only_selected",          false);
 | 
			
		||||
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MESH_OT_knife_tool", KKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "use_occlude_geometry", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "only_selected",          true);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "OBJECT_OT_vertex_parent_set", PKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	/* menus */
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_mesh_specials", WKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_mesh_faces", FKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_mesh_edges", EKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_mesh_vertices", VKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_hook", HKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_uv_map", UKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_vertex_group", GKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "OBJECT_OT_vertex_group_remove_from", GKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	/* useful stuff from object-mode */
 | 
			
		||||
	for (int i = 0; i <= 5; i++) {
 | 
			
		||||
		kmi = WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", ZEROKEY + i, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
		RNA_int_set(kmi->ptr, "level", i);
 | 
			
		||||
	}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	ED_keymap_proportional_cycle(keyconf, keymap);
 | 
			
		||||
	ED_keymap_proportional_editmode(keyconf, keymap, true);
 | 
			
		||||
 | 
			
		||||
	knifetool_modal_keymap(keyconf);
 | 
			
		||||
	point_normals_modal_keymap(keyconf);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -38,7 +38,6 @@
 | 
			
		||||
#include "ED_mball.h"
 | 
			
		||||
#include "ED_screen.h"
 | 
			
		||||
#include "ED_select_utils.h"
 | 
			
		||||
#include "ED_keymap_templates.h"
 | 
			
		||||
#include "ED_object.h"
 | 
			
		||||
 | 
			
		||||
#include "mball_intern.h"
 | 
			
		||||
@@ -71,29 +70,6 @@ void ED_operatormacros_metaball(void)
 | 
			
		||||
 | 
			
		||||
void ED_keymap_metaball(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap;
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Metaball", 0, 0);
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Metaball", 0, 0);
 | 
			
		||||
	keymap->poll = ED_operator_editmball;
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "OBJECT_OT_metaball_add", AKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "MBALL_OT_reveal_metaelems", HKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MBALL_OT_hide_metaelems", HKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "MBALL_OT_hide_metaelems", HKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "MBALL_OT_delete_metaelems", XKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "MBALL_OT_delete_metaelems", DELKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "MBALL_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	ED_keymap_template_select_all(keymap, "MBALL_OT_select_all");
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "MBALL_OT_select_similar", GKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	ED_keymap_proportional_cycle(keyconf, keymap);
 | 
			
		||||
	ED_keymap_proportional_editmode(keyconf, keymap, true);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -47,7 +47,6 @@
 | 
			
		||||
 | 
			
		||||
#include "ED_screen.h"
 | 
			
		||||
#include "ED_select_utils.h"
 | 
			
		||||
#include "ED_keymap_templates.h"
 | 
			
		||||
#include "ED_object.h"
 | 
			
		||||
 | 
			
		||||
#include "DEG_depsgraph.h"
 | 
			
		||||
@@ -306,220 +305,12 @@ static bool object_mode_poll(bContext *C)
 | 
			
		||||
void ED_keymap_object(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap;
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	/* Objects, Regardless of Mode -------------------------------------------------- */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Object Non-modal", 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* modes */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", TABKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", OB_MODE_EDIT);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "toggle", true);
 | 
			
		||||
 | 
			
		||||
#if 0
 | 
			
		||||
	WM_keymap_add_menu_pie(keymap, "VIEW3D_MT_object_mode_pie", TABKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
#else
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_object_mode_pie_or_toggle", TABKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_add_item(keymap, "OBJECT_OT_origin_set", CKEY, KM_PRESS, KM_ALT | KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	/* Object Mode ---------------------------------------------------------------- */
 | 
			
		||||
	/* Note: this keymap gets disabled in non-objectmode,  */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Object Mode", 0, 0);
 | 
			
		||||
	keymap->poll = object_mode_poll;
 | 
			
		||||
 | 
			
		||||
	/* object mode supports PET now */
 | 
			
		||||
	ED_keymap_proportional_cycle(keyconf, keymap);
 | 
			
		||||
	ED_keymap_proportional_obmode(keyconf, keymap);
 | 
			
		||||
 | 
			
		||||
	ED_keymap_template_select_all(keymap, "OBJECT_OT_select_all");
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "OBJECT_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "OBJECT_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "OBJECT_OT_select_linked", LKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "OBJECT_OT_select_grouped", GKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_add_item(keymap, "OBJECT_OT_select_mirror", MKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OBJECT_OT_select_hierarchy", LEFTBRACKETKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_enum_set_identifier(NULL, kmi->ptr, "direction", "PARENT");
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OBJECT_OT_select_hierarchy", LEFTBRACKETKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set_identifier(NULL, kmi->ptr, "direction", "PARENT");
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OBJECT_OT_select_hierarchy", RIGHTBRACKETKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_enum_set_identifier(NULL, kmi->ptr, "direction", "CHILD");
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OBJECT_OT_select_hierarchy", RIGHTBRACKETKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set_identifier(NULL, kmi->ptr, "direction", "CHILD");
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_verify_item(keymap, "OBJECT_OT_parent_set", PKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_verify_item(keymap, "OBJECT_OT_parent_no_inverse_set", PKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
#endif
 | 
			
		||||
	WM_keymap_verify_item(keymap, "OBJECT_OT_parent_clear", PKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_verify_item(keymap, "OBJECT_OT_track_set", TKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_verify_item(keymap, "OBJECT_OT_track_clear", TKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_verify_item(keymap, "OBJECT_OT_constraint_add_with_targets", CKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_verify_item(keymap, "OBJECT_OT_constraints_clear", CKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OBJECT_OT_location_clear", GKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "clear_delta", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OBJECT_OT_rotation_clear", RKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "clear_delta", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OBJECT_OT_scale_clear", SKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "clear_delta", false);
 | 
			
		||||
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_verify_item(keymap, "OBJECT_OT_origin_clear", OKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OBJECT_OT_delete", XKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "use_global", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OBJECT_OT_delete", XKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "use_global", true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OBJECT_OT_delete", DELKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "use_global", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OBJECT_OT_delete", DELKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "use_global", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_add", AKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_add_item(keymap, "OBJECT_OT_duplicates_make_real", AKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_object_apply", AKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_make_single_user", UKEY, KM_PRESS, 0, 0);
 | 
			
		||||
#endif
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_make_links", LKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "OBJECT_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "OBJECT_OT_duplicate_move_linked", DKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "OBJECT_OT_join", JKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_add_item(keymap, "OBJECT_OT_convert", CKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "OBJECT_OT_proxy_make", PKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "OBJECT_OT_make_local", LKEY, KM_PRESS, 0, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	/* XXX this should probably be in screen instead... here for testing purposes in the meantime... - Aligorith */
 | 
			
		||||
	WM_keymap_verify_item(keymap, "ANIM_OT_keyframe_insert_menu", IKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_verify_item(keymap, "ANIM_OT_keyframe_delete_v3d", IKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_verify_item(keymap, "ANIM_OT_keying_set_active_set", IKEY, KM_PRESS, KM_CTRL | KM_SHIFT | KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_verify_item(keymap, "COLLECTION_OT_create", GKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_verify_item(keymap, "COLLECTION_OT_objects_remove", GKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	WM_keymap_verify_item(keymap, "COLLECTION_OT_objects_remove_all", GKEY, KM_PRESS, KM_SHIFT | KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	WM_keymap_verify_item(keymap, "COLLECTION_OT_objects_add_active", GKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_verify_item(keymap, "COLLECTION_OT_objects_remove_active", GKEY, KM_PRESS, KM_SHIFT | KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_object_specials", WKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_verify_item(keymap, "OBJECT_OT_data_transfer", TKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
#endif
 | 
			
		||||
	/* XXX No more available 'T' shortcuts... :/ */
 | 
			
		||||
	/* WM_keymap_verify_item(keymap, "OBJECT_OT_datalayout_transfer", TKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0); */
 | 
			
		||||
 | 
			
		||||
	for (int i = 0; i <= 5; i++) {
 | 
			
		||||
		kmi = WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", ZEROKEY + i, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
		RNA_int_set(kmi->ptr, "level", i);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "OBJECT_OT_move_to_collection", MKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "OBJECT_OT_link_to_collection", MKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OBJECT_OT_hide_view_clear", HKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OBJECT_OT_hide_view_set", HKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OBJECT_OT_hide_view_set", HKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OBJECT_OT_hide_collection", HKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	/* Collection switching. */
 | 
			
		||||
	for (int i = 0; i < 10; i++) {
 | 
			
		||||
		kmi = WM_keymap_add_item(keymap, "OBJECT_OT_hide_collection", ZEROKEY + i, KM_PRESS, KM_ANY, 0);
 | 
			
		||||
		RNA_int_set(kmi->ptr, "collection_index", (i == 0) ? 10 : i);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ED_keymap_proportional_cycle(struct wmKeyConfig *UNUSED(keyconf), struct wmKeyMap *keymap)
 | 
			
		||||
{
 | 
			
		||||
	WM_keymap_add_menu_pie(keymap, "VIEW3D_MT_proportional_editing_falloff_pie", OKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ED_keymap_proportional_obmode(struct wmKeyConfig *UNUSED(keyconf), struct wmKeyMap *keymap)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", OKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_proportional_edit_objects");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ED_keymap_proportional_maskmode(struct wmKeyConfig *UNUSED(keyconf), struct wmKeyMap *keymap)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", OKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_proportional_edit_mask");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ED_keymap_proportional_editmode(struct wmKeyConfig *UNUSED(keyconf), struct wmKeyMap *keymap,
 | 
			
		||||
                                     const bool do_connected)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle_enum", OKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "tool_settings.proportional_edit");
 | 
			
		||||
	RNA_string_set(kmi->ptr, "value_1", "DISABLED");
 | 
			
		||||
	RNA_string_set(kmi->ptr, "value_2", "ENABLED");
 | 
			
		||||
 | 
			
		||||
	/* for modes/object types that allow 'connected' mode, add the Alt O key */
 | 
			
		||||
	if (do_connected) {
 | 
			
		||||
		kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle_enum", OKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
		RNA_string_set(kmi->ptr, "data_path", "tool_settings.proportional_edit");
 | 
			
		||||
		RNA_string_set(kmi->ptr, "value_1", "DISABLED");
 | 
			
		||||
		RNA_string_set(kmi->ptr, "value_2", "CONNECTED");
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Map 1..3 to Vert/Edge/Face.
 | 
			
		||||
 */
 | 
			
		||||
void ED_keymap_editmesh_elem_mode(struct wmKeyConfig *UNUSED(keyconf), struct wmKeyMap *keymap)
 | 
			
		||||
{
 | 
			
		||||
	for (int i = 0; i < 4; i++) {
 | 
			
		||||
		const bool is_extend = (i & 1);
 | 
			
		||||
		const bool is_expand = (i & 2);
 | 
			
		||||
		const int key_modifier = (is_extend ? KM_SHIFT : 0) | (is_expand ? KM_CTRL : 0);
 | 
			
		||||
		for (int j = 0; j < 3; j++) {
 | 
			
		||||
			wmKeyMapItem *kmi = WM_keymap_add_item(
 | 
			
		||||
			        keymap, "MESH_OT_select_mode", ONEKEY + j, KM_PRESS, key_modifier, 0);
 | 
			
		||||
			RNA_enum_set(kmi->ptr, "type", SCE_SELECT_VERTEX << j);
 | 
			
		||||
			if (is_extend) {
 | 
			
		||||
				RNA_boolean_set(kmi->ptr, "use_extend", true);
 | 
			
		||||
			}
 | 
			
		||||
			if (is_expand) {
 | 
			
		||||
				RNA_boolean_set(kmi->ptr, "use_expand", true);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -35,7 +35,6 @@
 | 
			
		||||
#include "WM_types.h"
 | 
			
		||||
 | 
			
		||||
#include "ED_select_utils.h"
 | 
			
		||||
#include "ED_keymap_templates.h"
 | 
			
		||||
#include "ED_physics.h"
 | 
			
		||||
#include "ED_object.h"
 | 
			
		||||
 | 
			
		||||
@@ -112,48 +111,8 @@ static void operatortypes_particle(void)
 | 
			
		||||
 | 
			
		||||
static void keymap_particle(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
	wmKeyMap *keymap;
 | 
			
		||||
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Particle", 0, 0);
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Particle", 0, 0);
 | 
			
		||||
	keymap->poll = PE_poll;
 | 
			
		||||
 | 
			
		||||
	ED_keymap_template_select_all(keymap, "PARTICLE_OT_select_all");
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "PARTICLE_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "PARTICLE_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "PARTICLE_OT_select_linked", LKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "PARTICLE_OT_select_linked", LKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "PARTICLE_OT_delete", XKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "PARTICLE_OT_delete", DELKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "PARTICLE_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "PARTICLE_OT_hide", HKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "PARTICLE_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "PARTICLE_OT_brush_edit", LEFTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "PARTICLE_OT_brush_edit", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	/* size radial control */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path_primary", "tool_settings.particle_edit.brush.size");
 | 
			
		||||
 | 
			
		||||
	/* size radial control */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path_primary", "tool_settings.particle_edit.brush.strength");
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_particle_specials", WKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "PARTICLE_OT_weight_set", KKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	ED_keymap_proportional_cycle(keyconf, keymap);
 | 
			
		||||
	ED_keymap_proportional_editmode(keyconf, keymap, false);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/******************************* boids *************************************/
 | 
			
		||||
@@ -202,16 +161,6 @@ static void operatortypes_dynamicpaint(void)
 | 
			
		||||
	WM_operatortype_append(DPAINT_OT_output_toggle);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//static void keymap_pointcache(wmWindowManager *wm)
 | 
			
		||||
//{
 | 
			
		||||
//	wmKeyMap *keymap = WM_keymap_ensure(wm, "Pointcache", 0, 0);
 | 
			
		||||
//
 | 
			
		||||
//	WM_keymap_add_item(keymap, "PHYSICS_OT_bake_all", AKEY, KM_PRESS, 0, 0);
 | 
			
		||||
//	WM_keymap_add_item(keymap, "PHYSICS_OT_free_all", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
//	WM_keymap_add_item(keymap, "PHYSICS_OT_bake_particle_system", PADMINUS, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
//	WM_keymap_add_item(keymap, "PHYSICS_OT_free_particle_system", LKEY, KM_PRESS, 0, 0);
 | 
			
		||||
//}
 | 
			
		||||
 | 
			
		||||
/****************************** general ************************************/
 | 
			
		||||
 | 
			
		||||
void ED_operatortypes_physics(void)
 | 
			
		||||
@@ -226,5 +175,4 @@ void ED_operatortypes_physics(void)
 | 
			
		||||
void ED_keymap_physics(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	keymap_particle(keyconf);
 | 
			
		||||
	//keymap_pointcache(keyconf);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -4871,14 +4871,6 @@ static void keymap_modal_set(wmKeyConfig *keyconf)
 | 
			
		||||
	/* Standard Modal keymap ------------------------------------------------ */
 | 
			
		||||
	keymap = WM_modalkeymap_add(keyconf, "Standard Modal Map", modal_items);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, ESCKEY,    KM_PRESS, KM_ANY, 0, KM_MODAL_CANCEL);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_ANY, KM_ANY, 0, KM_MODAL_APPLY);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RETKEY, KM_PRESS, KM_ANY, 0, KM_MODAL_APPLY);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, PADENTER, KM_PRESS, KM_ANY, 0, KM_MODAL_APPLY);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTCTRLKEY, KM_PRESS, KM_ANY, 0, KM_MODAL_SNAP_ON);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTCTRLKEY, KM_RELEASE, KM_ANY, 0, KM_MODAL_SNAP_OFF);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_assign(keymap, "SCREEN_OT_area_move");
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -4903,182 +4895,19 @@ static void blend_file_drop_copy(wmDrag *drag, wmDropBox *drop)
 | 
			
		||||
void ED_keymap_screen(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	ListBase *lb;
 | 
			
		||||
	wmKeyMap *keymap;
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	/* Screen Editing ------------------------------------------------ */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Screen Editing", 0, 0);
 | 
			
		||||
 | 
			
		||||
	RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_actionzone", LEFTMOUSE, KM_PRESS, 0, 0)->ptr, "modifier", 0);
 | 
			
		||||
	RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_actionzone", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "modifier", 1);
 | 
			
		||||
	RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_actionzone", LEFTMOUSE, KM_PRESS, KM_CTRL, 0)->ptr, "modifier", 2);
 | 
			
		||||
 | 
			
		||||
	/* screen tools */
 | 
			
		||||
	WM_keymap_verify_item(keymap, "SCREEN_OT_area_split", EVT_ACTIONZONE_AREA, 0, 0, 0);
 | 
			
		||||
	WM_keymap_verify_item(keymap, "SCREEN_OT_area_join", EVT_ACTIONZONE_AREA, 0, 0, 0);
 | 
			
		||||
	WM_keymap_verify_item(keymap, "SCREEN_OT_area_dupli", EVT_ACTIONZONE_AREA, 0, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_verify_item(keymap, "SCREEN_OT_area_swap", EVT_ACTIONZONE_AREA, 0, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_verify_item(keymap, "SCREEN_OT_region_scale", EVT_ACTIONZONE_REGION, 0, 0, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SCREEN_OT_screen_full_area", EVT_ACTIONZONE_FULLSCREEN, 0, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "use_hide_panels", true);
 | 
			
		||||
	/* area move after action zones */
 | 
			
		||||
	WM_keymap_verify_item(keymap, "SCREEN_OT_area_move", LEFTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_verify_item(keymap, "SCREEN_OT_area_options", RIGHTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_add_item(keymap, "SCREEN_OT_header", F9KEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
#endif
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Screen Editing", 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* Header Editing ------------------------------------------------ */
 | 
			
		||||
	/* note: this is only used when the cursor is inside the header */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Header", 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "SCREEN_OT_header_context_menu", RIGHTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Header", 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* Screen General ------------------------------------------------ */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Screen", 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* standard timers */
 | 
			
		||||
	WM_keymap_add_item(keymap, "SCREEN_OT_animation_step", TIMER0, KM_ANY, KM_ANY, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "SCREEN_OT_region_blend", TIMERREGION, KM_ANY, KM_ANY, 0);
 | 
			
		||||
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_screen_set", RIGHTARROWKEY, KM_PRESS, KM_CTRL, 0)->ptr, "delta", 1);
 | 
			
		||||
	RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_screen_set", LEFTARROWKEY, KM_PRESS, KM_CTRL, 0)->ptr, "delta", -1);
 | 
			
		||||
#endif
 | 
			
		||||
	WM_keymap_add_item(keymap, "SCREEN_OT_screen_full_area", SPACEKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SCREEN_OT_screen_full_area", SPACEKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "use_hide_panels", true);
 | 
			
		||||
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_add_item(keymap, "SCREEN_OT_screenshot", F3KEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SCREEN_OT_space_context_cycle", TABKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "direction", SPACE_CONTEXT_CYCLE_NEXT);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SCREEN_OT_space_context_cycle", TABKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "direction", SPACE_CONTEXT_CYCLE_PREV);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SCREEN_OT_workspace_cycle", PAGEDOWNKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "direction", SPACE_CONTEXT_CYCLE_NEXT);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SCREEN_OT_workspace_cycle", PAGEUPKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "direction", SPACE_CONTEXT_CYCLE_PREV);
 | 
			
		||||
 | 
			
		||||
	/* tests */
 | 
			
		||||
	WM_keymap_add_item(keymap, "SCREEN_OT_region_quadview", QKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "SCREEN_OT_repeat_last", RKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_verify_item(keymap, "SCREEN_OT_repeat_history", RKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	WM_keymap_verify_item(keymap, "SCREEN_OT_region_flip", F5KEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_verify_item(keymap, "SCREEN_OT_redo_last", F6KEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_verify_item(keymap, "SCRIPT_OT_reload", F8KEY, KM_PRESS, 0, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	/* files */
 | 
			
		||||
	WM_keymap_add_item(keymap, "FILE_OT_execute", RETKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "FILE_OT_execute", PADENTER, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "FILE_OT_cancel", ESCKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* undo */
 | 
			
		||||
#ifdef __APPLE__
 | 
			
		||||
	WM_keymap_add_item(keymap, "ED_OT_undo", ZKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ED_OT_redo", ZKEY, KM_PRESS, KM_SHIFT | KM_OSKEY, 0);
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_add_item(keymap, "ED_OT_undo_history", ZKEY, KM_PRESS, KM_ALT | KM_OSKEY, 0);
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
	WM_keymap_add_item(keymap, "ED_OT_undo", ZKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ED_OT_redo", ZKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_add_item(keymap, "ED_OT_undo_history", ZKEY, KM_PRESS, KM_ALT | KM_CTRL, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	/* render */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "RENDER_OT_render", F12KEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "use_viewport", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "RENDER_OT_render", F12KEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "animation", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "use_viewport", true);
 | 
			
		||||
	WM_keymap_add_item(keymap, "RENDER_OT_view_cancel", ESCKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "RENDER_OT_view_show", F11KEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "RENDER_OT_play_rendered_anim", F11KEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	/* user prefs */
 | 
			
		||||
#ifdef __APPLE__
 | 
			
		||||
	WM_keymap_add_item(keymap, "SCREEN_OT_userpref_show", COMMAKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_add_item(keymap, "SCREEN_OT_userpref_show", UKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Screen", 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* Anim Playback ------------------------------------------------ */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Frames", 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* frame offsets */
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", UPARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "delta", 10);
 | 
			
		||||
	RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", DOWNARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "delta", -10);
 | 
			
		||||
#endif
 | 
			
		||||
	RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", LEFTARROWKEY, KM_PRESS, 0, 0)->ptr, "delta", -1);
 | 
			
		||||
	RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", RIGHTARROWKEY, KM_PRESS, 0, 0)->ptr, "delta", 1);
 | 
			
		||||
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", WHEELDOWNMOUSE, KM_PRESS, KM_ALT, 0)->ptr, "delta", 1);
 | 
			
		||||
	RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", WHEELUPMOUSE, KM_PRESS, KM_ALT, 0)->ptr, "delta", -1);
 | 
			
		||||
 | 
			
		||||
	RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_jump", UPARROWKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0)->ptr, "end", true);
 | 
			
		||||
	RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_jump", DOWNARROWKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0)->ptr, "end", false);
 | 
			
		||||
#endif
 | 
			
		||||
	RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_jump", RIGHTARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "end", true);
 | 
			
		||||
	RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_jump", LEFTARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "end", false);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SCREEN_OT_keyframe_jump", UPARROWKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "next", true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SCREEN_OT_keyframe_jump", DOWNARROWKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "next", false);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SCREEN_OT_keyframe_jump", MEDIALAST, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "next", true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SCREEN_OT_keyframe_jump", MEDIAFIRST, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "next", false);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	/* play (forward and backwards) */
 | 
			
		||||
	WM_keymap_add_item(keymap, "SCREEN_OT_animation_play", AKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(
 | 
			
		||||
	        WM_keymap_add_item(keymap, "SCREEN_OT_animation_play", AKEY, KM_PRESS, KM_ALT | KM_SHIFT, 0)->ptr,
 | 
			
		||||
	        "reverse", true);
 | 
			
		||||
#else
 | 
			
		||||
	/* play (forward and backwards) */
 | 
			
		||||
	WM_keymap_add_item(keymap, "SCREEN_OT_animation_play", SPACEKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(
 | 
			
		||||
	        WM_keymap_add_item(keymap, "SCREEN_OT_animation_play", SPACEKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0)->ptr,
 | 
			
		||||
	        "reverse", true);
 | 
			
		||||
#endif
 | 
			
		||||
	WM_keymap_add_item(keymap, "SCREEN_OT_animation_cancel", ESCKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "SCREEN_OT_animation_play", MEDIAPLAY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "SCREEN_OT_animation_cancel", MEDIASTOP, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* Alternative keys for animation and sequencer playing */
 | 
			
		||||
#if 0 /* XXX: disabled for restoring later... bad implementation */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Frames", 0, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SCREEN_OT_animation_play", RIGHTARROWKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "cycle_speed", true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SCREEN_OT_animation_play", LEFTARROWKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "reverse", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "cycle_speed", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "SCREEN_OT_animation_play", DOWNARROWKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
#endif
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Frames", 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* dropbox for entire window */
 | 
			
		||||
	lb = WM_dropboxmap_find("Window", 0, 0);
 | 
			
		||||
 
 | 
			
		||||
@@ -306,20 +306,6 @@ typedef enum BrushStrokeMode {
 | 
			
		||||
	BRUSH_STROKE_SMOOTH
 | 
			
		||||
} BrushStrokeMode;
 | 
			
		||||
 | 
			
		||||
/* paint_ops.c */
 | 
			
		||||
typedef enum {
 | 
			
		||||
	RC_COLOR    = 1,
 | 
			
		||||
	RC_ROTATION = 2,
 | 
			
		||||
	RC_ZOOM     = 4,
 | 
			
		||||
	RC_WEIGHT   = 8,
 | 
			
		||||
	RC_SECONDARY_ROTATION = 16,
 | 
			
		||||
	RC_COLOR_OVERRIDE = 32,
 | 
			
		||||
} RCFlags;
 | 
			
		||||
 | 
			
		||||
void set_brush_rc_props(
 | 
			
		||||
        struct PointerRNA *ptr, const char *paint, const char *prop, const char *secondary_prop,
 | 
			
		||||
        RCFlags flags);
 | 
			
		||||
 | 
			
		||||
/* paint_hide.c */
 | 
			
		||||
 | 
			
		||||
typedef enum {
 | 
			
		||||
 
 | 
			
		||||
@@ -524,19 +524,6 @@ static void PAINT_OT_brush_select(wmOperatorType *ot)
 | 
			
		||||
	RNA_def_property_flag(prop, PROP_HIDDEN | PROP_SKIP_SAVE);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static wmKeyMapItem *keymap_brush_select(
 | 
			
		||||
        wmKeyMap *keymap, ePaintMode paint_mode,
 | 
			
		||||
        int tool, int keymap_type,
 | 
			
		||||
        int keymap_modifier)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "PAINT_OT_brush_select", keymap_type, KM_PRESS, keymap_modifier, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "paint_mode", paint_mode);
 | 
			
		||||
	const char *prop_id = BKE_paint_get_tool_prop_id_from_paintmode(paint_mode);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, prop_id, tool);
 | 
			
		||||
	return kmi;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int brush_uv_sculpt_tool_set_exec(bContext *C, wmOperator *op)
 | 
			
		||||
{
 | 
			
		||||
	Brush *brush;
 | 
			
		||||
@@ -973,28 +960,6 @@ static void BRUSH_OT_stencil_reset_transform(wmOperatorType *ot)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static void ed_keymap_stencil(wmKeyMap *keymap)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "BRUSH_OT_stencil_control", RIGHTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", STENCIL_TRANSLATE);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "BRUSH_OT_stencil_control", RIGHTMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", STENCIL_SCALE);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "BRUSH_OT_stencil_control", RIGHTMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", STENCIL_ROTATE);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "BRUSH_OT_stencil_control", RIGHTMOUSE, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", STENCIL_TRANSLATE);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "texmode", STENCIL_SECONDARY);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "BRUSH_OT_stencil_control", RIGHTMOUSE, KM_PRESS, KM_SHIFT | KM_ALT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "texmode", STENCIL_SECONDARY);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", STENCIL_SCALE);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "BRUSH_OT_stencil_control", RIGHTMOUSE, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "texmode", STENCIL_SECONDARY);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", STENCIL_ROTATE);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**************************** registration **********************************/
 | 
			
		||||
 | 
			
		||||
void ED_operatormacros_paint(void)
 | 
			
		||||
@@ -1097,376 +1062,40 @@ void ED_operatortypes_paint(void)
 | 
			
		||||
	WM_operatortype_append(PAINT_OT_mask_lasso_gesture);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void ed_keymap_paint_brush_size(wmKeyMap *keymap, const char *UNUSED(path))
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "BRUSH_OT_scale_size", LEFTBRACKETKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_float_set(kmi->ptr, "scalar", 0.9);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "BRUSH_OT_scale_size", RIGHTBRACKETKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_float_set(kmi->ptr, "scalar", 10.0 / 9.0); // 1.1111....
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void set_brush_rc_path(
 | 
			
		||||
        PointerRNA *ptr, const char *brush_path,
 | 
			
		||||
        const char *output_name, const char *input_name)
 | 
			
		||||
{
 | 
			
		||||
	char *path;
 | 
			
		||||
 | 
			
		||||
	path = BLI_sprintfN("%s.%s", brush_path, input_name);
 | 
			
		||||
	RNA_string_set(ptr, output_name, path);
 | 
			
		||||
	MEM_freeN(path);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void set_brush_rc_props(
 | 
			
		||||
        PointerRNA *ptr, const char *paint,
 | 
			
		||||
        const char *prop, const char *secondary_prop,
 | 
			
		||||
        RCFlags flags)
 | 
			
		||||
{
 | 
			
		||||
	const char *ups_path = "tool_settings.unified_paint_settings";
 | 
			
		||||
	char *brush_path;
 | 
			
		||||
 | 
			
		||||
	brush_path = BLI_sprintfN("tool_settings.%s.brush", paint);
 | 
			
		||||
 | 
			
		||||
	set_brush_rc_path(ptr, brush_path, "data_path_primary", prop);
 | 
			
		||||
	if (secondary_prop) {
 | 
			
		||||
		set_brush_rc_path(ptr, ups_path, "use_secondary", secondary_prop);
 | 
			
		||||
		set_brush_rc_path(ptr, ups_path, "data_path_secondary", prop);
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		RNA_string_set(ptr, "use_secondary", "");
 | 
			
		||||
		RNA_string_set(ptr, "data_path_secondary", "");
 | 
			
		||||
	}
 | 
			
		||||
	set_brush_rc_path(ptr, brush_path, "color_path", "cursor_color_add");
 | 
			
		||||
	if (flags & RC_SECONDARY_ROTATION)
 | 
			
		||||
		set_brush_rc_path(ptr, brush_path, "rotation_path", "mask_texture_slot.angle");
 | 
			
		||||
	else
 | 
			
		||||
		set_brush_rc_path(ptr, brush_path, "rotation_path", "texture_slot.angle");
 | 
			
		||||
	RNA_string_set(ptr, "image_id", brush_path);
 | 
			
		||||
 | 
			
		||||
	if (flags & RC_COLOR) {
 | 
			
		||||
		set_brush_rc_path(ptr, brush_path, "fill_color_path", "color");
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		RNA_string_set(ptr, "fill_color_path", "");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (flags & RC_COLOR_OVERRIDE) {
 | 
			
		||||
		RNA_string_set(ptr, "fill_color_override_path", "tool_settings.unified_paint_settings.color");
 | 
			
		||||
		RNA_string_set(ptr, "fill_color_override_test_path", "tool_settings.unified_paint_settings.use_unified_color");
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		RNA_string_set(ptr, "fill_color_override_path", "");
 | 
			
		||||
		RNA_string_set(ptr, "fill_color_override_test_path", "");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (flags & RC_ZOOM)
 | 
			
		||||
		RNA_string_set(ptr, "zoom_path", "space_data.zoom");
 | 
			
		||||
	else
 | 
			
		||||
		RNA_string_set(ptr, "zoom_path", "");
 | 
			
		||||
 | 
			
		||||
	RNA_boolean_set(ptr, "secondary_tex", (flags & RC_SECONDARY_ROTATION) != 0);
 | 
			
		||||
 | 
			
		||||
	MEM_freeN(brush_path);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void ed_keymap_paint_brush_radial_control(
 | 
			
		||||
        wmKeyMap *keymap, const char *paint,
 | 
			
		||||
        RCFlags flags)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
	/* only size needs to follow zoom, strength shows fixed size circle */
 | 
			
		||||
	int flags_nozoom = flags & (~RC_ZOOM);
 | 
			
		||||
	int flags_noradial_secondary = flags & (~(RC_SECONDARY_ROTATION | RC_ZOOM));
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	set_brush_rc_props(kmi->ptr, paint, "size", "use_unified_size", flags);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	set_brush_rc_props(kmi->ptr, paint, "strength", "use_unified_strength", flags_nozoom);
 | 
			
		||||
 | 
			
		||||
	if (flags & RC_WEIGHT) {
 | 
			
		||||
		kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", WKEY, KM_PRESS, 0, 0);
 | 
			
		||||
		set_brush_rc_props(kmi->ptr, paint, "weight", "use_unified_weight", flags_nozoom);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (flags & RC_ROTATION) {
 | 
			
		||||
		kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
		set_brush_rc_props(kmi->ptr, paint, "texture_slot.angle", NULL, flags_noradial_secondary);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (flags & RC_SECONDARY_ROTATION) {
 | 
			
		||||
		kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
		set_brush_rc_props(kmi->ptr, paint, "mask_texture_slot.angle", NULL, flags_nozoom);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void paint_partial_visibility_keys(wmKeyMap *keymap)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	/* Partial visibility */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "PAINT_OT_hide_show", HKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "action", PARTIALVIS_SHOW);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "area", PARTIALVIS_INSIDE);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "PAINT_OT_hide_show", HKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "action", PARTIALVIS_HIDE);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "area", PARTIALVIS_INSIDE);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "PAINT_OT_hide_show", HKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "action", PARTIALVIS_SHOW);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "area", PARTIALVIS_ALL);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static void paint_keymap_curve(wmKeyMap *keymap)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "PAINTCURVE_OT_add_point_slide", ACTIONMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "PAINTCURVE_OT_select", SELECTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "PAINTCURVE_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	WM_keymap_add_item(keymap, "PAINTCURVE_OT_slide", ACTIONMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "PAINTCURVE_OT_slide", ACTIONMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "align", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "PAINTCURVE_OT_select", AKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "toggle", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "PAINTCURVE_OT_cursor", ACTIONMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "PAINTCURVE_OT_delete_point", XKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "PAINTCURVE_OT_delete_point", DELKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "PAINTCURVE_OT_draw", RETKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "PAINTCURVE_OT_draw", PADENTER, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", GKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", EVT_TWEAK_S, KM_ANY, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TRANSFORM_OT_rotate", RKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TRANSFORM_OT_resize", SKEY, KM_PRESS, 0, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ED_keymap_paint(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap;
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
	int i;
 | 
			
		||||
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Paint Curve", 0, 0);
 | 
			
		||||
	keymap->poll = paint_curve_poll;
 | 
			
		||||
 | 
			
		||||
	paint_keymap_curve(keymap);
 | 
			
		||||
 | 
			
		||||
	/* Sculpt mode */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Sculpt", 0, 0);
 | 
			
		||||
	keymap->poll = sculpt_mode_poll;
 | 
			
		||||
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_brush_stroke", LEFTMOUSE, KM_PRESS, 0,        0)->ptr, "mode", BRUSH_STROKE_NORMAL);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_brush_stroke", LEFTMOUSE, KM_PRESS, KM_CTRL,  0)->ptr, "mode", BRUSH_STROKE_INVERT);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_brush_stroke", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "mode", BRUSH_STROKE_SMOOTH);
 | 
			
		||||
 | 
			
		||||
	/* Partial visibility, sculpt-only for now */
 | 
			
		||||
	paint_partial_visibility_keys(keymap);
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i <= 5; i++)
 | 
			
		||||
		RNA_int_set(WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", ZEROKEY + i, KM_PRESS, KM_CTRL, 0)->ptr, "level", i);
 | 
			
		||||
 | 
			
		||||
	/* Clear mask */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "PAINT_OT_mask_flood_fill", MKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", PAINT_MASK_FLOOD_VALUE);
 | 
			
		||||
	RNA_float_set(kmi->ptr, "value", 0);
 | 
			
		||||
 | 
			
		||||
	/* Invert mask */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "PAINT_OT_mask_flood_fill", IKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", PAINT_MASK_INVERT);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "PAINT_OT_mask_lasso_gesture", LEFTMOUSE, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	/* Toggle mask visibility */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", MKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "scene.tool_settings.sculpt.show_mask");
 | 
			
		||||
 | 
			
		||||
	/* Toggle dynamic topology */
 | 
			
		||||
	WM_keymap_add_item(keymap, "SCULPT_OT_dynamic_topology_toggle", DKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	/* Dynamic-topology detail size
 | 
			
		||||
	 *
 | 
			
		||||
	 * This should be improved further, perhaps by showing a triangle
 | 
			
		||||
	 * grid rather than brush alpha */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SCULPT_OT_set_detail_size", DKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	/* multires switch */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", PAGEUPKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_int_set(kmi->ptr, "level", 1);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "relative", true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", PAGEDOWNKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_int_set(kmi->ptr, "level", -1);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "relative", true);
 | 
			
		||||
 | 
			
		||||
	ed_keymap_paint_brush_size(keymap, "tool_settings.sculpt.brush.size");
 | 
			
		||||
	ed_keymap_paint_brush_radial_control(keymap, "sculpt", RC_ROTATION);
 | 
			
		||||
 | 
			
		||||
	ed_keymap_stencil(keymap);
 | 
			
		||||
 | 
			
		||||
	keymap_brush_select(keymap, ePaintSculpt, SCULPT_TOOL_DRAW, XKEY, 0);
 | 
			
		||||
	keymap_brush_select(keymap, ePaintSculpt, SCULPT_TOOL_SMOOTH, SKEY, 0);
 | 
			
		||||
	keymap_brush_select(keymap, ePaintSculpt, SCULPT_TOOL_PINCH, PKEY, 0);
 | 
			
		||||
	keymap_brush_select(keymap, ePaintSculpt, SCULPT_TOOL_INFLATE, IKEY, 0);
 | 
			
		||||
	keymap_brush_select(keymap, ePaintSculpt, SCULPT_TOOL_GRAB, GKEY, 0);
 | 
			
		||||
	keymap_brush_select(keymap, ePaintSculpt, SCULPT_TOOL_LAYER, LKEY, 0);
 | 
			
		||||
	keymap_brush_select(keymap, ePaintSculpt, SCULPT_TOOL_FLATTEN, TKEY, KM_SHIFT);
 | 
			
		||||
	keymap_brush_select(keymap, ePaintSculpt, SCULPT_TOOL_CLAY, CKEY, 0);
 | 
			
		||||
	keymap_brush_select(keymap, ePaintSculpt, SCULPT_TOOL_CREASE, CKEY, KM_SHIFT);
 | 
			
		||||
	keymap_brush_select(keymap, ePaintSculpt, SCULPT_TOOL_SNAKE_HOOK, KKEY, 0);
 | 
			
		||||
	kmi = keymap_brush_select(keymap, ePaintSculpt, SCULPT_TOOL_MASK, MKEY, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "toggle", 1);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "create_missing", 1);
 | 
			
		||||
 | 
			
		||||
	/* */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_menu_enum", EKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "tool_settings.sculpt.brush.stroke_method");
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", SKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "tool_settings.sculpt.brush.use_smooth_stroke");
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_angle_control", RKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* Vertex Paint mode */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Vertex Paint", 0, 0);
 | 
			
		||||
	keymap->poll = vertex_paint_mode_poll;
 | 
			
		||||
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "PAINT_OT_vertex_paint", LEFTMOUSE, KM_PRESS, 0,        0)->ptr, "mode", BRUSH_STROKE_NORMAL);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "PAINT_OT_vertex_paint", LEFTMOUSE, KM_PRESS, KM_CTRL,  0)->ptr, "mode", BRUSH_STROKE_INVERT);
 | 
			
		||||
	WM_keymap_add_item(keymap, "PAINT_OT_brush_colors_flip", XKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "PAINT_OT_sample_color", SKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "PAINT_OT_vertex_color_set", KKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	ed_keymap_paint_brush_size(keymap, "tool_settings.vertex_paint.brush.size");
 | 
			
		||||
	ed_keymap_paint_brush_radial_control(keymap, "vertex_paint", RC_COLOR | RC_COLOR_OVERRIDE | RC_ROTATION);
 | 
			
		||||
 | 
			
		||||
	ed_keymap_stencil(keymap);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", MKEY, KM_PRESS, 0, 0); /* mask toggle */
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "vertex_paint_object.data.use_paint_mask");
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", SKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "tool_settings.vertex_paint.brush.use_smooth_stroke");
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_angle_control", RKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_menu_enum", EKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "tool_settings.vertex_paint.brush.stroke_method");
 | 
			
		||||
 | 
			
		||||
	/* Weight Paint mode */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Weight Paint", 0, 0);
 | 
			
		||||
	keymap->poll = weight_paint_mode_poll;
 | 
			
		||||
 | 
			
		||||
	WM_keymap_verify_item(keymap, "PAINT_OT_weight_paint", LEFTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* these keys are from 2.4x but could be changed */
 | 
			
		||||
	WM_keymap_verify_item(keymap, "PAINT_OT_weight_sample", ACTIONMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_verify_item(keymap, "PAINT_OT_weight_sample_group", ACTIONMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "PAINT_OT_weight_gradient", LEFTMOUSE, KM_PRESS, KM_ALT, 0)->ptr,           "type", WPAINT_GRADIENT_TYPE_LINEAR);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "PAINT_OT_weight_gradient", LEFTMOUSE, KM_PRESS, KM_ALT | KM_CTRL, 0)->ptr, "type", WPAINT_GRADIENT_TYPE_RADIAL);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "PAINT_OT_weight_set", KKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	ed_keymap_paint_brush_size(keymap, "tool_settings.weight_paint.brush.size");
 | 
			
		||||
	ed_keymap_paint_brush_radial_control(keymap, "weight_paint", RC_WEIGHT);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_menu_enum", EKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "tool_settings.vertex_paint.brush.stroke_method");
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", MKEY, KM_PRESS, 0, 0); /* face mask toggle */
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "weight_paint_object.data.use_paint_mask");
 | 
			
		||||
 | 
			
		||||
	/* note, conflicts with vertex paint, but this is more useful */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", VKEY, KM_PRESS, 0, 0); /* vert mask toggle */
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "weight_paint_object.data.use_paint_mask_vertex");
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", SKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "tool_settings.weight_paint.brush.use_smooth_stroke");
 | 
			
		||||
 | 
			
		||||
	/*Weight paint's Vertex Selection Mode */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Weight Paint Vertex Selection", 0, 0);
 | 
			
		||||
	keymap->poll = vert_paint_poll;
 | 
			
		||||
 | 
			
		||||
	ED_keymap_template_select_all(keymap, "PAINT_OT_vert_select_all");
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_select_box", BKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", SEL_OP_ADD);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", SEL_OP_SUB);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_select_circle", CKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* Image/Texture Paint mode */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Image Paint", 0, 0);
 | 
			
		||||
	keymap->poll = image_texture_paint_poll;
 | 
			
		||||
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "PAINT_OT_image_paint", LEFTMOUSE, KM_PRESS, 0,        0)->ptr, "mode", BRUSH_STROKE_NORMAL);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "PAINT_OT_image_paint", LEFTMOUSE, KM_PRESS, KM_CTRL,  0)->ptr, "mode", BRUSH_STROKE_INVERT);
 | 
			
		||||
	WM_keymap_add_item(keymap, "PAINT_OT_brush_colors_flip", XKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "PAINT_OT_grab_clone", RIGHTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "PAINT_OT_sample_color", SKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	ed_keymap_paint_brush_size(keymap, "tool_settings.image_paint.brush.size");
 | 
			
		||||
	ed_keymap_paint_brush_radial_control(
 | 
			
		||||
	        keymap, "image_paint",
 | 
			
		||||
	        RC_COLOR | RC_COLOR_OVERRIDE | RC_ZOOM | RC_ROTATION | RC_SECONDARY_ROTATION);
 | 
			
		||||
 | 
			
		||||
	ed_keymap_stencil(keymap);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", MKEY, KM_PRESS, 0, 0); /* mask toggle */
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "image_paint_object.data.use_paint_mask");
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", SKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "tool_settings.image_paint.brush.use_smooth_stroke");
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu(keymap, "VIEW3D_MT_angle_control", RKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_menu_enum", EKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "tool_settings.image_paint.brush.stroke_method");
 | 
			
		||||
 | 
			
		||||
	/* face-mask mode */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Face Mask", 0, 0);
 | 
			
		||||
	keymap->poll = facemask_paint_poll;
 | 
			
		||||
 | 
			
		||||
	ED_keymap_template_select_all(keymap, "PAINT_OT_face_select_all");
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "PAINT_OT_face_select_hide", HKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "PAINT_OT_face_select_hide", HKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", true);
 | 
			
		||||
	WM_keymap_add_item(keymap, "PAINT_OT_face_select_reveal", HKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "PAINT_OT_face_select_linked", LKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "PAINT_OT_face_select_linked_pick", LKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "PAINT_OT_face_select_linked_pick", LKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", true);
 | 
			
		||||
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "UV Sculpt", 0, 0);
 | 
			
		||||
	keymap->poll = uv_sculpt_keymap_poll;
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", QKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_uv_sculpt");
 | 
			
		||||
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_uv_sculpt_stroke", LEFTMOUSE, KM_PRESS, 0,        0)->ptr, "mode", BRUSH_STROKE_NORMAL);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_uv_sculpt_stroke", LEFTMOUSE, KM_PRESS, KM_CTRL,  0)->ptr, "mode", BRUSH_STROKE_INVERT);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_uv_sculpt_stroke", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "mode", BRUSH_STROKE_SMOOTH);
 | 
			
		||||
 | 
			
		||||
	ed_keymap_paint_brush_size(keymap, "tool_settings.uv_sculpt.brush.size");
 | 
			
		||||
	ed_keymap_paint_brush_radial_control(keymap, "uv_sculpt", 0);
 | 
			
		||||
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "BRUSH_OT_uv_sculpt_tool_set", SKEY, KM_PRESS, 0, 0)->ptr, "tool", UV_SCULPT_TOOL_RELAX);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "BRUSH_OT_uv_sculpt_tool_set", PKEY, KM_PRESS, 0, 0)->ptr, "tool", UV_SCULPT_TOOL_PINCH);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "BRUSH_OT_uv_sculpt_tool_set", GKEY, KM_PRESS, 0, 0)->ptr, "tool", UV_SCULPT_TOOL_GRAB);
 | 
			
		||||
 | 
			
		||||
	/* paint stroke */
 | 
			
		||||
	keymap = paint_stroke_modal_keymap(keyconf);
 | 
			
		||||
	WM_modalkeymap_assign(keymap, "SCULPT_OT_brush_stroke");
 | 
			
		||||
 
 | 
			
		||||
@@ -938,10 +938,6 @@ struct wmKeyMap *paint_stroke_modal_keymap(struct wmKeyConfig *keyconf)
 | 
			
		||||
	/* this function is called for each spacetype, only needs to add map once */
 | 
			
		||||
	if (!keymap) {
 | 
			
		||||
		keymap = WM_modalkeymap_add(keyconf, name, modal_items);
 | 
			
		||||
 | 
			
		||||
		/* items for modal map */
 | 
			
		||||
		WM_modalkeymap_add_item(
 | 
			
		||||
			keymap, ESCKEY, KM_PRESS, KM_ANY, 0, PAINT_STROKE_MODAL_CANCEL);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return keymap;
 | 
			
		||||
 
 | 
			
		||||
@@ -6052,6 +6052,17 @@ static void SCULPT_OT_sample_detail_size(wmOperatorType *ot)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Dynamic-topology detail size
 | 
			
		||||
 *
 | 
			
		||||
 * This should be improved further, perhaps by showing a triangle
 | 
			
		||||
 * grid rather than brush alpha */
 | 
			
		||||
static void set_brush_rc_props(PointerRNA *ptr, const char *prop)
 | 
			
		||||
{
 | 
			
		||||
	char *path = BLI_sprintfN("tool_settings.sculpt.brush.%s", prop);
 | 
			
		||||
	RNA_string_set(ptr, "data_path_primary", path);
 | 
			
		||||
	MEM_freeN(path);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int sculpt_set_detail_size_exec(bContext *C, wmOperator *UNUSED(op))
 | 
			
		||||
{
 | 
			
		||||
	Sculpt *sd = CTX_data_tool_settings(C)->sculpt;
 | 
			
		||||
@@ -6062,15 +6073,15 @@ static int sculpt_set_detail_size_exec(bContext *C, wmOperator *UNUSED(op))
 | 
			
		||||
	WM_operator_properties_create_ptr(&props_ptr, ot);
 | 
			
		||||
 | 
			
		||||
	if (sd->flags & (SCULPT_DYNTOPO_DETAIL_CONSTANT | SCULPT_DYNTOPO_DETAIL_MANUAL)) {
 | 
			
		||||
		set_brush_rc_props(&props_ptr, "sculpt", "constant_detail_resolution", NULL, 0);
 | 
			
		||||
		set_brush_rc_props(&props_ptr, "constant_detail_resolution");
 | 
			
		||||
		RNA_string_set(&props_ptr, "data_path_primary", "tool_settings.sculpt.constant_detail_resolution");
 | 
			
		||||
	}
 | 
			
		||||
	else if (sd->flags & SCULPT_DYNTOPO_DETAIL_BRUSH) {
 | 
			
		||||
		set_brush_rc_props(&props_ptr, "sculpt", "constant_detail_resolution", NULL, 0);
 | 
			
		||||
		set_brush_rc_props(&props_ptr, "constant_detail_resolution");
 | 
			
		||||
		RNA_string_set(&props_ptr, "data_path_primary", "tool_settings.sculpt.detail_percent");
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		set_brush_rc_props(&props_ptr, "sculpt", "detail_size", NULL, 0);
 | 
			
		||||
		set_brush_rc_props(&props_ptr, "detail_size");
 | 
			
		||||
		RNA_string_set(&props_ptr, "data_path_primary", "tool_settings.sculpt.detail_size");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -41,7 +41,6 @@
 | 
			
		||||
#include "ED_transform.h"
 | 
			
		||||
#include "ED_object.h"
 | 
			
		||||
#include "ED_select_utils.h"
 | 
			
		||||
#include "ED_keymap_templates.h"
 | 
			
		||||
 | 
			
		||||
#include "action_intern.h"
 | 
			
		||||
 | 
			
		||||
@@ -120,168 +119,12 @@ void ED_operatormacros_action(void)
 | 
			
		||||
 | 
			
		||||
/* ************************** registration - keymaps **********************************/
 | 
			
		||||
 | 
			
		||||
static void action_keymap_keyframes(wmKeyConfig *keyconf, wmKeyMap *keymap)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	/* action_select.c - selection tools */
 | 
			
		||||
	/* click-select: keyframe (replace) */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "ACTION_OT_clickselect", SELECTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "column", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "channel", false);
 | 
			
		||||
	/* click-select: all on same frame (replace) */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "ACTION_OT_clickselect", SELECTMOUSE, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "column", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "channel", false);
 | 
			
		||||
	/* click-select: keyframe (add) */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "ACTION_OT_clickselect", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "column", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "channel", false);
 | 
			
		||||
	/* click-select: all on same frame (add) */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "ACTION_OT_clickselect", SELECTMOUSE, KM_PRESS, KM_ALT | KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "column", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "channel", false);
 | 
			
		||||
	/* click-select: all on same channel (replace) */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "ACTION_OT_clickselect", SELECTMOUSE, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "column", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "channel", true);
 | 
			
		||||
	/* click-select: all on same channel (add) */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "ACTION_OT_clickselect", SELECTMOUSE, KM_PRESS, KM_CTRL | KM_ALT | KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "column", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "channel", true);
 | 
			
		||||
 | 
			
		||||
	/* click-select: left/right */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "ACTION_OT_select_leftright", SELECTMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", ACTKEYS_LRSEL_TEST);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "ACTION_OT_select_leftright", SELECTMOUSE, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", ACTKEYS_LRSEL_TEST);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "ACTION_OT_select_leftright", LEFTBRACKETKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", ACTKEYS_LRSEL_LEFT);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "ACTION_OT_select_leftright", RIGHTBRACKETKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", ACTKEYS_LRSEL_RIGHT);
 | 
			
		||||
 | 
			
		||||
	/* deselect all */
 | 
			
		||||
	ED_keymap_template_select_all(keymap, "ACTION_OT_select_all");
 | 
			
		||||
 | 
			
		||||
	/* box_select */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "ACTION_OT_select_box", BKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "axis_range", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "ACTION_OT_select_box", BKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "axis_range", true);
 | 
			
		||||
 | 
			
		||||
	/* region select */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "ACTION_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "ACTION_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "ACTION_OT_select_circle", CKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* column select */
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "ACTION_OT_select_column", KKEY, KM_PRESS, 0, 0)->ptr, "mode", ACTKEYS_COLUMNSEL_KEYS);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "ACTION_OT_select_column", KKEY, KM_PRESS, KM_CTRL, 0)->ptr, "mode", ACTKEYS_COLUMNSEL_CFRA);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "ACTION_OT_select_column", KKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "mode", ACTKEYS_COLUMNSEL_MARKERS_COLUMN);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "ACTION_OT_select_column", KKEY, KM_PRESS, KM_ALT, 0)->ptr, "mode", ACTKEYS_COLUMNSEL_MARKERS_BETWEEN);
 | 
			
		||||
 | 
			
		||||
	/* select more/less */
 | 
			
		||||
	WM_keymap_add_item(keymap, "ACTION_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ACTION_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	/* select linked */
 | 
			
		||||
	WM_keymap_add_item(keymap, "ACTION_OT_select_linked", LKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	/* action_edit.c */
 | 
			
		||||
	/* jump to selected keyframes */
 | 
			
		||||
	WM_keymap_add_item(keymap, "ACTION_OT_frame_jump", GKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	/* menu + single-step transform */
 | 
			
		||||
	WM_keymap_add_menu_pie(keymap, "DOPESHEET_MT_snap_pie", SKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ACTION_OT_mirror", MKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	/* menu + set setting */
 | 
			
		||||
	WM_keymap_add_item(keymap, "ACTION_OT_handle_type", VKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ACTION_OT_interpolation_type", TKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ACTION_OT_extrapolation_type", EKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ACTION_OT_keyframe_type", RKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* specials */
 | 
			
		||||
	WM_keymap_add_menu(keymap, "DOPESHEET_MT_specials", WKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* destructive */
 | 
			
		||||
	WM_keymap_add_item(keymap, "ACTION_OT_sample", OKEY, KM_PRESS, KM_SHIFT | KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu(keymap, "DOPESHEET_MT_delete", XKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_menu(keymap, "DOPESHEET_MT_delete", DELKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "ACTION_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ACTION_OT_keyframe_insert", IKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* copy/paste */
 | 
			
		||||
	WM_keymap_add_item(keymap, "ACTION_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ACTION_OT_paste", VKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "ACTION_OT_paste", VKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "flipped", true);
 | 
			
		||||
#ifdef __APPLE__
 | 
			
		||||
	WM_keymap_add_item(keymap, "ACTION_OT_copy", CKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ACTION_OT_paste", VKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "ACTION_OT_paste", VKEY, KM_PRESS, KM_OSKEY | KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "flipped", true);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	/* auto-set range */
 | 
			
		||||
	WM_keymap_add_item(keymap, "ACTION_OT_previewrange_set", PKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ACTION_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
 | 
			
		||||
#ifdef WITH_INPUT_NDOF
 | 
			
		||||
	WM_keymap_add_item(keymap, "ACTION_OT_view_all", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
 | 
			
		||||
#endif
 | 
			
		||||
	WM_keymap_add_item(keymap, "ACTION_OT_view_selected", PADPERIOD, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ACTION_OT_view_frame", PAD0, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	/* animation module */
 | 
			
		||||
	/* channels list
 | 
			
		||||
	 * NOTE: these operators were originally for the channels list, but are added here too for convenience...
 | 
			
		||||
	 */
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_channels_editable_toggle", TABKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* find (i.e. a shortcut for setting the name filter) */
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_channels_find", FKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	/* transform system */
 | 
			
		||||
	transform_keymap_for_space(keyconf, keymap, SPACE_ACTION);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", OKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_proportional_action");
 | 
			
		||||
	ED_keymap_proportional_cycle(keyconf, keymap);
 | 
			
		||||
 | 
			
		||||
	/* special markers hotkeys for anim editors: see note in definition of this function */
 | 
			
		||||
	ED_marker_keymap_animedit_conflictfree(keymap);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* --------------- */
 | 
			
		||||
 | 
			
		||||
void action_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap;
 | 
			
		||||
 | 
			
		||||
	/* keymap for all regions */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Dopesheet Generic", SPACE_ACTION, 0);
 | 
			
		||||
 | 
			
		||||
	/* region management... */
 | 
			
		||||
	WM_keymap_add_item(keymap, "ACTION_OT_properties", NKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Dopesheet Generic", SPACE_ACTION, 0);
 | 
			
		||||
 | 
			
		||||
	/* channels */
 | 
			
		||||
	/* Channels are not directly handled by the Action Editor module, but are inherited from the Animation module.
 | 
			
		||||
@@ -290,6 +133,5 @@ void action_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
	 */
 | 
			
		||||
 | 
			
		||||
	/* keyframes */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Dopesheet", SPACE_ACTION, 0);
 | 
			
		||||
	action_keymap_keyframes(keyconf, keymap);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Dopesheet", SPACE_ACTION, 0);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -299,8 +299,6 @@ static void action_channel_region_init(wmWindowManager *wm, ARegion *ar)
 | 
			
		||||
	keymap = WM_keymap_ensure(wm->defaultconf, "Animation Channels", 0, 0);
 | 
			
		||||
	WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu(keymap, "DOPESHEET_MT_specials_channels", WKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	keymap = WM_keymap_ensure(wm->defaultconf, "Dopesheet Generic", SPACE_ACTION, 0);
 | 
			
		||||
	WM_event_add_keymap_handler(&ar->handlers, keymap);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -68,6 +68,7 @@
 | 
			
		||||
#include "ED_mask.h"
 | 
			
		||||
#include "ED_sequencer.h"
 | 
			
		||||
#include "ED_gizmo_library.h"
 | 
			
		||||
#include "ED_transform.h"
 | 
			
		||||
 | 
			
		||||
#include "io_ops.h"
 | 
			
		||||
 | 
			
		||||
@@ -216,6 +217,8 @@ void ED_spacetypes_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
	ED_keymap_view2d(keyconf);
 | 
			
		||||
	ED_keymap_ui(keyconf);
 | 
			
		||||
 | 
			
		||||
	ED_keymap_transform(keyconf);
 | 
			
		||||
 | 
			
		||||
	spacetypes = BKE_spacetypes_list();
 | 
			
		||||
	for (stype = spacetypes->first; stype; stype = stype->next) {
 | 
			
		||||
		if (stype->keymap)
 | 
			
		||||
 
 | 
			
		||||
@@ -353,15 +353,7 @@ static void buttons_operatortypes(void)
 | 
			
		||||
 | 
			
		||||
static void buttons_keymap(struct wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Property Editor", SPACE_BUTS, 0);
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "BUTTONS_OT_context_menu", RIGHTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SCREEN_OT_space_context_cycle", WHEELUPMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "direction", SPACE_CONTEXT_CYCLE_PREV);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SCREEN_OT_space_context_cycle", WHEELDOWNMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "direction", SPACE_CONTEXT_CYCLE_NEXT);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Property Editor", SPACE_BUTS, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* add handlers, stuff you only do once or on area/region changes */
 | 
			
		||||
 
 | 
			
		||||
@@ -56,7 +56,6 @@
 | 
			
		||||
#include "ED_space_api.h"
 | 
			
		||||
#include "ED_screen.h"
 | 
			
		||||
#include "ED_select_utils.h"
 | 
			
		||||
#include "ED_keymap_templates.h"
 | 
			
		||||
#include "ED_clip.h"
 | 
			
		||||
#include "ED_transform.h"
 | 
			
		||||
#include "ED_uvedit.h"  /* just for ED_image_draw_cursor */
 | 
			
		||||
@@ -539,264 +538,18 @@ static void clip_operatortypes(void)
 | 
			
		||||
 | 
			
		||||
static void clip_keymap(struct wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap;
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	/* ******** Global hotkeys avalaible for all regions ******** */
 | 
			
		||||
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Clip", SPACE_CLIP, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_open", OKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_tools", TKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_properties", NKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* 2d tracking */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_track_markers", LEFTARROWKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "backwards", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "sequence", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_track_markers", RIGHTARROWKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "backwards", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "sequence", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_track_markers", TKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "backwards", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "sequence", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_track_markers", TKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "backwards", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "sequence", true);
 | 
			
		||||
 | 
			
		||||
	/* mode */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle_enum", TABKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "space_data.mode");
 | 
			
		||||
	RNA_string_set(kmi->ptr, "value_1", "TRACKING");
 | 
			
		||||
	RNA_string_set(kmi->ptr, "value_2", "MASK");
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_solve_camera", SKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_set_solver_keyframe", QKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "keyframe", 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_set_solver_keyframe", EKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "keyframe", 1);
 | 
			
		||||
 | 
			
		||||
	/* io/playback */
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_prefetch", PKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Clip", SPACE_CLIP, 0);
 | 
			
		||||
 | 
			
		||||
	/* ******** Hotkeys avalaible for main region only ******** */
 | 
			
		||||
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Clip Editor", SPACE_CLIP, 0);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Clip Editor", SPACE_CLIP, 0);
 | 
			
		||||
//	keymap->poll = ED_space_clip_tracking_poll;
 | 
			
		||||
	/* ** View/navigation ** */
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_view_pan", MIDDLEMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_view_pan", MIDDLEMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_view_pan", MOUSEPAN, 0, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_view_zoom", MIDDLEMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_view_zoom", MOUSEZOOM, 0, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_view_zoom", MOUSEPAN, 0, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_view_zoom_in", WHEELINMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_view_zoom_out", WHEELOUTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_view_zoom_in", PADPLUSKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_view_zoom_out", PADMINUS, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* ctrl now works as well, shift + numpad works as arrow keys on Windows */
 | 
			
		||||
	RNA_float_set(WM_keymap_add_item(keymap, "CLIP_OT_view_zoom_ratio", PAD8, KM_PRESS, KM_CTRL, 0)->ptr, "ratio", 8.0f);
 | 
			
		||||
	RNA_float_set(WM_keymap_add_item(keymap, "CLIP_OT_view_zoom_ratio", PAD4, KM_PRESS, KM_CTRL, 0)->ptr, "ratio", 4.0f);
 | 
			
		||||
	RNA_float_set(WM_keymap_add_item(keymap, "CLIP_OT_view_zoom_ratio", PAD2, KM_PRESS, KM_CTRL, 0)->ptr, "ratio", 2.0f);
 | 
			
		||||
	RNA_float_set(WM_keymap_add_item(keymap, "CLIP_OT_view_zoom_ratio", PAD8, KM_PRESS, KM_SHIFT, 0)->ptr, "ratio", 8.0f);
 | 
			
		||||
	RNA_float_set(WM_keymap_add_item(keymap, "CLIP_OT_view_zoom_ratio", PAD4, KM_PRESS, KM_SHIFT, 0)->ptr, "ratio", 4.0f);
 | 
			
		||||
	RNA_float_set(WM_keymap_add_item(keymap, "CLIP_OT_view_zoom_ratio", PAD2, KM_PRESS, KM_SHIFT, 0)->ptr, "ratio", 2.0f);
 | 
			
		||||
 | 
			
		||||
	RNA_float_set(WM_keymap_add_item(keymap, "CLIP_OT_view_zoom_ratio", PAD1, KM_PRESS, 0, 0)->ptr, "ratio", 1.0f);
 | 
			
		||||
	RNA_float_set(WM_keymap_add_item(keymap, "CLIP_OT_view_zoom_ratio", PAD2, KM_PRESS, 0, 0)->ptr, "ratio", 0.5f);
 | 
			
		||||
	RNA_float_set(WM_keymap_add_item(keymap, "CLIP_OT_view_zoom_ratio", PAD4, KM_PRESS, 0, 0)->ptr, "ratio", 0.25f);
 | 
			
		||||
	RNA_float_set(WM_keymap_add_item(keymap, "CLIP_OT_view_zoom_ratio", PAD8, KM_PRESS, 0, 0)->ptr, "ratio", 0.125f);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_view_all", FKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "fit_view", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_view_selected", PADPERIOD, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
#ifdef WITH_INPUT_NDOF
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_view_all", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_view_ndof", NDOF_MOTION, 0, 0, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	/* jump to special frame */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_frame_jump", LEFTARROWKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "position", 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_frame_jump", RIGHTARROWKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "position", 1);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_frame_jump", LEFTARROWKEY, KM_PRESS, KM_ALT | KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "position", 2);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_frame_jump", RIGHTARROWKEY, KM_PRESS, KM_ALT | KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "position", 3);
 | 
			
		||||
 | 
			
		||||
	/* "timeline" */
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_change_frame", LEFTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* selection */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_select", SELECTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
 | 
			
		||||
	ED_keymap_template_select_all(keymap, "CLIP_OT_select_all");
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_select_box", BKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_select_circle", CKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_menu(keymap, "CLIP_MT_select_grouped", GKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL | KM_SHIFT | KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", true);
 | 
			
		||||
 | 
			
		||||
	/* marker */
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_add_marker_slide", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_delete_marker", XKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_delete_marker", DELKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_slide_marker", LEFTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_disable_markers", DKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "action", 2);    /* toggle */
 | 
			
		||||
 | 
			
		||||
	/* tracks */
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_delete_track", XKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_delete_track", DELKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_lock_tracks", LKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "action", 0);    /* lock */
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_lock_tracks", LKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "action", 1);    /* unlock */
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_hide_tracks", HKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", false);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_hide_tracks", HKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_hide_tracks_clear", HKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	/* plane tracks */
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_slide_plane_marker", ACTIONMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_keyframe_insert", IKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_keyframe_delete", IKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	/* clean-up */
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_join_tracks", JKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	/* menus */
 | 
			
		||||
	WM_keymap_add_menu(keymap, "CLIP_MT_tracking_specials", WKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* display */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", LKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "space_data.lock_selection");
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", DKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "space_data.show_disabled");
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", SKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "space_data.show_marker_search");
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", MKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "space_data.use_mute_footage");
 | 
			
		||||
 | 
			
		||||
	transform_keymap_for_space(keyconf, keymap, SPACE_CLIP);
 | 
			
		||||
 | 
			
		||||
	/* clean-up */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_clear_track_path", TKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "action", TRACK_CLEAR_REMAINED);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "clear_active", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_clear_track_path", TKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "action", TRACK_CLEAR_UPTO);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "clear_active", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_clear_track_path", TKEY, KM_PRESS, KM_ALT | KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "action", TRACK_CLEAR_ALL);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "clear_active", false);
 | 
			
		||||
 | 
			
		||||
	/* Cursor */
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_cursor_set", ACTIONMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* pivot point */
 | 
			
		||||
	WM_keymap_add_menu_pie(keymap, "CLIP_MT_pivot_pie", PERIODKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* Copy-paste */
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_copy_tracks", CKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_paste_tracks", VKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	/* ******** Hotkeys avalaible for preview region only ******** */
 | 
			
		||||
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Clip Graph Editor", SPACE_CLIP, 0);
 | 
			
		||||
 | 
			
		||||
	/* "timeline" */
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_change_frame", ACTIONMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* selection */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_graph_select", SELECTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_graph_select", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
 | 
			
		||||
	ED_keymap_template_select_all(keymap, "CLIP_OT_graph_select_all_markers");
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_graph_select_box", BKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* delete */
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_graph_delete_curve", XKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_graph_delete_curve", DELKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_graph_delete_knot", XKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_graph_delete_knot", DELKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	/* view */
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_graph_view_all", HOMEKEY, KM_PRESS, 0, 0);
 | 
			
		||||
#ifdef WITH_INPUT_NDOF
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_graph_view_all", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
 | 
			
		||||
#endif
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_graph_center_current_frame", PAD0, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", LKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "space_data.lock_time_cursor");
 | 
			
		||||
 | 
			
		||||
	/* clean-up */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_clear_track_path", TKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "action", TRACK_CLEAR_REMAINED);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "clear_active", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_clear_track_path", TKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "action", TRACK_CLEAR_UPTO);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "clear_active", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_clear_track_path", TKEY, KM_PRESS, KM_ALT | KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "action", TRACK_CLEAR_ALL);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "clear_active", true);
 | 
			
		||||
 | 
			
		||||
	/* tracks */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_graph_disable_markers", DKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "action", 2);    /* toggle */
 | 
			
		||||
 | 
			
		||||
	transform_keymap_for_space(keyconf, keymap, SPACE_CLIP);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Clip Graph Editor", SPACE_CLIP, 0);
 | 
			
		||||
 | 
			
		||||
	/* ******** Hotkeys avalaible for channels region only ******** */
 | 
			
		||||
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Clip Dopesheet Editor", SPACE_CLIP, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CLIP_OT_dopesheet_select_channel", LEFTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);  /* toggle */
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_dopesheet_view_all", HOMEKEY, KM_PRESS, 0, 0);
 | 
			
		||||
#ifdef WITH_INPUT_NDOF
 | 
			
		||||
	WM_keymap_add_item(keymap, "CLIP_OT_dopesheet_view_all", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
 | 
			
		||||
#endif
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Clip Dopesheet Editor", SPACE_CLIP, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* DO NOT make this static, this hides the symbol and breaks API generation script. */
 | 
			
		||||
 
 | 
			
		||||
@@ -265,87 +265,7 @@ static void console_operatortypes(void)
 | 
			
		||||
 | 
			
		||||
static void console_keymap(struct wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Console", SPACE_CONSOLE, 0);
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
#ifdef __APPLE__
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", LEFTARROWKEY, KM_PRESS, KM_OSKEY, 0)->ptr, "type", LINE_BEGIN);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", RIGHTARROWKEY, KM_PRESS, KM_OSKEY, 0)->ptr, "type", LINE_END);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", LEFTARROWKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", PREV_WORD);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", RIGHTARROWKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", NEXT_WORD);
 | 
			
		||||
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", HOMEKEY, KM_PRESS, 0, 0)->ptr, "type", LINE_BEGIN);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", ENDKEY, KM_PRESS, 0, 0)->ptr, "type", LINE_END);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", WHEELUPMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "space_data.font_size");
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "reverse", false);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", WHEELDOWNMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "space_data.font_size");
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "reverse", true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "space_data.font_size");
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "reverse", false);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", PADMINUS, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "space_data.font_size");
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "reverse", true);
 | 
			
		||||
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", LEFTARROWKEY, KM_PRESS, 0, 0)->ptr, "type", PREV_CHAR);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", RIGHTARROWKEY, KM_PRESS, 0, 0)->ptr, "type", NEXT_CHAR);
 | 
			
		||||
 | 
			
		||||
	RNA_boolean_set(WM_keymap_add_item(keymap, "CONSOLE_OT_history_cycle", UPARROWKEY, KM_PRESS, 0, 0)->ptr, "reverse", true);
 | 
			
		||||
	RNA_boolean_set(WM_keymap_add_item(keymap, "CONSOLE_OT_history_cycle", DOWNARROWKEY, KM_PRESS, 0, 0)->ptr, "reverse", false);
 | 
			
		||||
 | 
			
		||||
#if 0
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", LEFTARROWKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", PREV_WORD);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", RIGHTARROWKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", NEXT_WORD);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", UPARROWKEY, KM_PRESS, 0, 0)->ptr, "type", PREV_LINE);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", DOWNARROWKEY, KM_PRESS, 0, 0)->ptr, "type", NEXT_LINE);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", PAGEUPKEY, KM_PRESS, 0, 0)->ptr, "type", PREV_PAGE);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", PAGEDOWNKEY, KM_PRESS, 0, 0)->ptr, "type", NEXT_PAGE);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_delete", DELKEY, KM_PRESS, 0, 0)->ptr, "type", DEL_NEXT_CHAR);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_delete", BACKSPACEKEY, KM_PRESS, 0, 0)->ptr, "type", DEL_PREV_CHAR);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_delete", BACKSPACEKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", DEL_PREV_CHAR);  /* same as above [#26623] */
 | 
			
		||||
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_delete", DELKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", DEL_NEXT_WORD);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_delete", BACKSPACEKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", DEL_PREV_WORD);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "CONSOLE_OT_clear_line", RETKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CONSOLE_OT_clear_line", PADENTER, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
#ifdef WITH_PYTHON
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CONSOLE_OT_execute", RETKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "interactive", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "CONSOLE_OT_execute", PADENTER, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "interactive", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "CONSOLE_OT_autocomplete", SPACEKEY, KM_PRESS, KM_CTRL, 0); /* python operator - space_text.py */
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "CONSOLE_OT_copy_as_script", CKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CONSOLE_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CONSOLE_OT_paste", VKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
#ifdef __APPLE__
 | 
			
		||||
	WM_keymap_add_item(keymap, "CONSOLE_OT_copy", CKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CONSOLE_OT_paste", VKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "CONSOLE_OT_select_set", LEFTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CONSOLE_OT_select_word", LEFTMOUSE, KM_DBL_CLICK, 0, 0);
 | 
			
		||||
 | 
			
		||||
	RNA_string_set(WM_keymap_add_item(keymap, "CONSOLE_OT_insert", TABKEY, KM_PRESS, KM_CTRL, 0)->ptr, "text", "\t"); /* fake tabs */
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "CONSOLE_OT_indent", TABKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "CONSOLE_OT_unindent", TABKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "CONSOLE_OT_insert", KM_TEXTINPUT, KM_ANY, KM_ANY, 0); // last!
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Console", SPACE_CONSOLE, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/****************** header region ******************/
 | 
			
		||||
 
 | 
			
		||||
@@ -489,137 +489,14 @@ static void file_operatortypes(void)
 | 
			
		||||
/* NOTE: do not add .blend file reading on this level */
 | 
			
		||||
static void file_keymap(struct wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
	/* keys for all regions */
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "File Browser", SPACE_FILE, 0);
 | 
			
		||||
 | 
			
		||||
	/* More common 'fliebrowser-like navigation' shortcuts. */
 | 
			
		||||
	WM_keymap_add_item(keymap, "FILE_OT_parent", UPARROWKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "FILE_OT_previous", LEFTARROWKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "FILE_OT_next", RIGHTARROWKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "FILE_OT_refresh", RKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "FILE_OT_parent", PKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "FILE_OT_previous", BACKSPACEKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "FILE_OT_next", BACKSPACEKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", HKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "space_data.params.show_hidden");
 | 
			
		||||
	WM_keymap_add_item(keymap, "FILE_OT_directory_new", IKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "FILE_OT_delete", XKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "FILE_OT_delete", DELKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_verify_item(keymap, "FILE_OT_smoothscroll", TIMER1, KM_ANY, KM_ANY, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "FILE_OT_bookmark_toggle", TKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "FILE_OT_bookmark_add", BKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "File Browser", SPACE_FILE, 0);
 | 
			
		||||
 | 
			
		||||
	/* keys for main region */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "File Browser Main", SPACE_FILE, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_execute", LEFTMOUSE, KM_DBL_CLICK, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "need_active", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "FILE_OT_refresh", PADPERIOD, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* left mouse selects and opens */
 | 
			
		||||
	WM_keymap_add_item(keymap, "FILE_OT_select", LEFTMOUSE, KM_CLICK, 0, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_select", LEFTMOUSE, KM_CLICK, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_select", LEFTMOUSE, KM_CLICK, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "fill", true);
 | 
			
		||||
 | 
			
		||||
	/* right mouse selects without opening */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_select", RIGHTMOUSE, KM_CLICK, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "open", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_select", RIGHTMOUSE, KM_CLICK, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "open", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_select", RIGHTMOUSE, KM_CLICK, KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "fill", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "open", false);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	/* arrow keys navigation (walk selecting) */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_select_walk", UPARROWKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "direction", FILE_SELECT_WALK_UP);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_select_walk", UPARROWKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "direction", FILE_SELECT_WALK_UP);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_select_walk", UPARROWKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "direction", FILE_SELECT_WALK_UP);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "fill", true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_select_walk", DOWNARROWKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "direction", FILE_SELECT_WALK_DOWN);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_select_walk", DOWNARROWKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "direction", FILE_SELECT_WALK_DOWN);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_select_walk", DOWNARROWKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "direction", FILE_SELECT_WALK_DOWN);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "fill", true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_select_walk", LEFTARROWKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "direction", FILE_SELECT_WALK_LEFT);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_select_walk", LEFTARROWKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "direction", FILE_SELECT_WALK_LEFT);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_select_walk", LEFTARROWKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "direction", FILE_SELECT_WALK_LEFT);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "fill", true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_select_walk", RIGHTARROWKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "direction", FILE_SELECT_WALK_RIGHT);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_select_walk", RIGHTARROWKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "direction", FILE_SELECT_WALK_RIGHT);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_select_walk", RIGHTARROWKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "direction", FILE_SELECT_WALK_RIGHT);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "fill", true);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	/* front and back mouse folder navigation */
 | 
			
		||||
	WM_keymap_add_item(keymap, "FILE_OT_previous", BUTTON4MOUSE, KM_CLICK, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "FILE_OT_next", BUTTON5MOUSE, KM_CLICK, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "FILE_OT_select_all", AKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "FILE_OT_select_box", BKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "FILE_OT_select_box", EVT_TWEAK_L, KM_ANY, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "FILE_OT_rename", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "FILE_OT_highlight", MOUSEMOVE, KM_ANY, KM_ANY, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADPLUSKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_int_set(kmi->ptr, "increment", 1);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADPLUSKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_int_set(kmi->ptr, "increment", 10);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_int_set(kmi->ptr, "increment", 100);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADMINUS, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_int_set(kmi->ptr, "increment", -1);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADMINUS, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_int_set(kmi->ptr, "increment", -10);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADMINUS, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_int_set(kmi->ptr, "increment", -100);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_ensure(keyconf, "File Browser Main", SPACE_FILE, 0);
 | 
			
		||||
 | 
			
		||||
	/* keys for button region (top) */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "File Browser Buttons", SPACE_FILE, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADPLUSKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_int_set(kmi->ptr, "increment", 1);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADPLUSKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_int_set(kmi->ptr, "increment", 10);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_int_set(kmi->ptr, "increment", 100);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADMINUS, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_int_set(kmi->ptr, "increment", -1);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADMINUS, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_int_set(kmi->ptr, "increment", -10);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADMINUS, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_int_set(kmi->ptr, "increment", -100);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "File Browser Buttons", SPACE_FILE, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -49,7 +49,6 @@
 | 
			
		||||
#include "ED_markers.h"
 | 
			
		||||
#include "ED_screen.h"
 | 
			
		||||
#include "ED_select_utils.h"
 | 
			
		||||
#include "ED_keymap_templates.h"
 | 
			
		||||
#include "ED_transform.h"
 | 
			
		||||
#include "ED_object.h"
 | 
			
		||||
 | 
			
		||||
@@ -491,212 +490,10 @@ void ED_operatormacros_graph(void)
 | 
			
		||||
 | 
			
		||||
/* ************************** registration - keymaps **********************************/
 | 
			
		||||
 | 
			
		||||
static void graphedit_keymap_keyframes(wmKeyConfig *keyconf, wmKeyMap *keymap)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	/* view */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", HKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "space_data.show_handles");
 | 
			
		||||
 | 
			
		||||
	/* NOTE: 'ACTIONMOUSE' not 'LEFTMOUSE', as user may have swapped mouse-buttons
 | 
			
		||||
	 * This keymap is supposed to override ANIM_OT_change_frame, which does the same except it doesn't do y-values
 | 
			
		||||
	 */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GRAPH_OT_cursor_set", ACTIONMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	/* graph_select.c - selection tools */
 | 
			
		||||
	/* click-select: keyframe (replace)  */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GRAPH_OT_clickselect", SELECTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "curves", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "column", false);
 | 
			
		||||
	/* click-select: all keyframes on same frame (replace) */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GRAPH_OT_clickselect", SELECTMOUSE, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "curves", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "column", true);
 | 
			
		||||
	/* click-select: keyframe (add) */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GRAPH_OT_clickselect", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "curves", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "column", false);
 | 
			
		||||
	/* click-select: all keyframes on same frame (add) */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GRAPH_OT_clickselect", SELECTMOUSE, KM_PRESS, KM_ALT | KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "curves", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "column", true);
 | 
			
		||||
	/* click-select: all keyframes in same curve (replace) */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GRAPH_OT_clickselect", SELECTMOUSE, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "curves", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "column", false);
 | 
			
		||||
	/* click-select: all keyframes in same curve (add) */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GRAPH_OT_clickselect", SELECTMOUSE, KM_PRESS, KM_CTRL | KM_ALT | KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "curves", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "column", false);
 | 
			
		||||
 | 
			
		||||
	/* click-select left/right */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GRAPH_OT_select_leftright", SELECTMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", GRAPHKEYS_LRSEL_TEST);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GRAPH_OT_select_leftright", SELECTMOUSE, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", GRAPHKEYS_LRSEL_TEST);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GRAPH_OT_select_leftright", LEFTBRACKETKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", GRAPHKEYS_LRSEL_LEFT);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GRAPH_OT_select_leftright", RIGHTBRACKETKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", GRAPHKEYS_LRSEL_RIGHT);
 | 
			
		||||
 | 
			
		||||
	/* deselect all */
 | 
			
		||||
	ED_keymap_template_select_all(keymap, "GRAPH_OT_select_all");
 | 
			
		||||
 | 
			
		||||
	/* box_select */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GRAPH_OT_select_box", BKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "axis_range", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "include_handles", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GRAPH_OT_select_box", BKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "axis_range", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "include_handles", false);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GRAPH_OT_select_box", BKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "axis_range", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "include_handles", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GRAPH_OT_select_box", BKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "axis_range", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "include_handles", true);
 | 
			
		||||
 | 
			
		||||
	/* region select */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GRAPH_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GRAPH_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "GRAPH_OT_select_circle", CKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* column select */
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "GRAPH_OT_select_column", KKEY, KM_PRESS, 0, 0)->ptr, "mode", GRAPHKEYS_COLUMNSEL_KEYS);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "GRAPH_OT_select_column", KKEY, KM_PRESS, KM_CTRL, 0)->ptr, "mode", GRAPHKEYS_COLUMNSEL_CFRA);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "GRAPH_OT_select_column", KKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "mode", GRAPHKEYS_COLUMNSEL_MARKERS_COLUMN);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "GRAPH_OT_select_column", KKEY, KM_PRESS, KM_ALT, 0)->ptr, "mode", GRAPHKEYS_COLUMNSEL_MARKERS_BETWEEN);
 | 
			
		||||
 | 
			
		||||
	/* select more/less */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GRAPH_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "GRAPH_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	/* select linked */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GRAPH_OT_select_linked", LKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	/* graph_edit.c */
 | 
			
		||||
	/* jump to selected keyframes */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GRAPH_OT_frame_jump", GKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	/* menu + single-step transform */
 | 
			
		||||
	WM_keymap_add_menu_pie(keymap, "GRAPH_MT_snap_pie", SKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "GRAPH_OT_mirror", MKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "GRAPH_OT_handle_type", VKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "GRAPH_OT_interpolation_type", TKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "GRAPH_OT_easing_type", EKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	/* destructive */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GRAPH_OT_smooth", OKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "GRAPH_OT_sample", OKEY, KM_PRESS, KM_SHIFT | KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "GRAPH_OT_bake", CKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu(keymap, "GRAPH_MT_delete", XKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_menu(keymap, "GRAPH_MT_delete", DELKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu(keymap, "GRAPH_MT_specials", WKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "GRAPH_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	/* insertkey */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GRAPH_OT_keyframe_insert", IKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GRAPH_OT_click_insert", ACTIONMOUSE, KM_CLICK, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GRAPH_OT_click_insert", ACTIONMOUSE, KM_CLICK, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
 | 
			
		||||
	/* copy/paste */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GRAPH_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "GRAPH_OT_paste", VKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GRAPH_OT_paste", VKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "flipped", true);
 | 
			
		||||
#ifdef __APPLE__
 | 
			
		||||
	WM_keymap_add_item(keymap, "GRAPH_OT_copy", CKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "GRAPH_OT_paste", VKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GRAPH_OT_paste", VKEY, KM_PRESS, KM_OSKEY | KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "flipped", true);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	/* auto-set range */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GRAPH_OT_previewrange_set", PKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "GRAPH_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
 | 
			
		||||
#ifdef WITH_INPUT_NDOF
 | 
			
		||||
	WM_keymap_add_item(keymap, "GRAPH_OT_view_all", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
 | 
			
		||||
#endif
 | 
			
		||||
	WM_keymap_add_item(keymap, "GRAPH_OT_view_selected", PADPERIOD, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "GRAPH_OT_view_frame", PAD0, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* F-Modifiers */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GRAPH_OT_fmodifier_add", MKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "only_active", false);
 | 
			
		||||
 | 
			
		||||
	/* animation module */
 | 
			
		||||
	/* channels list
 | 
			
		||||
	 * NOTE: these operators were originally for the channels list, but are added here too for convenience...
 | 
			
		||||
	 */
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_channels_editable_toggle", TABKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* transform system */
 | 
			
		||||
	transform_keymap_for_space(keyconf, keymap, SPACE_IPO);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", OKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_proportional_fcurve");
 | 
			
		||||
	ED_keymap_proportional_cycle(keyconf, keymap);
 | 
			
		||||
 | 
			
		||||
	/* pivot point settings */
 | 
			
		||||
	WM_keymap_add_menu_pie(keymap, "GRAPH_MT_pivot_pie", PERIODKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* special markers hotkeys for anim editors: see note in definition of this function */
 | 
			
		||||
	ED_marker_keymap_animedit_conflictfree(keymap);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* --------------- */
 | 
			
		||||
 | 
			
		||||
void graphedit_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap;
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	/* keymap for all regions */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Graph Editor Generic", SPACE_IPO, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "GRAPH_OT_properties", NKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* extrapolation works on channels, not keys */
 | 
			
		||||
	WM_keymap_add_item(keymap, "GRAPH_OT_extrapolation_type", EKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	/* find (i.e. a shortcut for setting the name filter) */
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_channels_find", FKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	/* hide/reveal selected curves */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GRAPH_OT_hide", HKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", false);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "GRAPH_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "GRAPH_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Graph Editor Generic", SPACE_IPO, 0);
 | 
			
		||||
 | 
			
		||||
	/* channels */
 | 
			
		||||
	/* Channels are not directly handled by the Graph Editor module, but are inherited from the Animation module.
 | 
			
		||||
@@ -705,6 +502,5 @@ void graphedit_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
	 */
 | 
			
		||||
 | 
			
		||||
	/* keyframes */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Graph Editor", SPACE_IPO, 0);
 | 
			
		||||
	graphedit_keymap_keyframes(keyconf, keymap);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Graph Editor", SPACE_IPO, 0);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -293,87 +293,8 @@ static void image_operatortypes(void)
 | 
			
		||||
 | 
			
		||||
static void image_keymap(struct wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Image Generic", SPACE_IMAGE, 0);
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
	int i;
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "IMAGE_OT_new", NKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "IMAGE_OT_open", OKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "IMAGE_OT_reload", RKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "IMAGE_OT_read_viewlayers", RKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "IMAGE_OT_save", SKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "IMAGE_OT_save_as", SKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "IMAGE_OT_properties", NKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "IMAGE_OT_toolshelf", TKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu(keymap, "IMAGE_MT_specials", WKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "IMAGE_OT_cycle_render_slot", JKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(WM_keymap_add_item(keymap, "IMAGE_OT_cycle_render_slot", JKEY, KM_PRESS, KM_ALT, 0)->ptr, "reverse", true);
 | 
			
		||||
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Image", SPACE_IMAGE, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "IMAGE_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "IMAGE_OT_view_all", HOMEKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "fit_view", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "IMAGE_OT_view_selected", PADPERIOD, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "IMAGE_OT_view_pan", MIDDLEMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "IMAGE_OT_view_pan", MIDDLEMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "IMAGE_OT_view_pan", MOUSEPAN, 0, 0, 0);
 | 
			
		||||
 | 
			
		||||
#ifdef WITH_INPUT_NDOF
 | 
			
		||||
	WM_keymap_add_item(keymap, "IMAGE_OT_view_all", NDOF_BUTTON_FIT, KM_PRESS, 0, 0); // or view selected?
 | 
			
		||||
	WM_keymap_add_item(keymap, "IMAGE_OT_view_ndof", NDOF_MOTION, 0, 0, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_in", WHEELINMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_out", WHEELOUTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_in", PADPLUSKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_out", PADMINUS, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom", MIDDLEMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom", MOUSEZOOM, 0, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom", MOUSEPAN, 0, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_border", BKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	/* ctrl now works as well, shift + numpad works as arrow keys on Windows */
 | 
			
		||||
	RNA_float_set(WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_ratio", PAD8, KM_PRESS, KM_CTRL, 0)->ptr, "ratio", 8.0f);
 | 
			
		||||
	RNA_float_set(WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_ratio", PAD4, KM_PRESS, KM_CTRL, 0)->ptr, "ratio", 4.0f);
 | 
			
		||||
	RNA_float_set(WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_ratio", PAD2, KM_PRESS, KM_CTRL, 0)->ptr, "ratio", 2.0f);
 | 
			
		||||
	RNA_float_set(WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_ratio", PAD8, KM_PRESS, KM_SHIFT, 0)->ptr, "ratio", 8.0f);
 | 
			
		||||
	RNA_float_set(WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_ratio", PAD4, KM_PRESS, KM_SHIFT, 0)->ptr, "ratio", 4.0f);
 | 
			
		||||
	RNA_float_set(WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_ratio", PAD2, KM_PRESS, KM_SHIFT, 0)->ptr, "ratio", 2.0f);
 | 
			
		||||
 | 
			
		||||
	RNA_float_set(WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_ratio", PAD1, KM_PRESS, 0, 0)->ptr, "ratio", 1.0f);
 | 
			
		||||
	RNA_float_set(WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_ratio", PAD2, KM_PRESS, 0, 0)->ptr, "ratio", 0.5f);
 | 
			
		||||
	RNA_float_set(WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_ratio", PAD4, KM_PRESS, 0, 0)->ptr, "ratio", 0.25f);
 | 
			
		||||
	RNA_float_set(WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_ratio", PAD8, KM_PRESS, 0, 0)->ptr, "ratio", 0.125f);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "IMAGE_OT_change_frame", LEFTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "IMAGE_OT_sample", ACTIONMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "IMAGE_OT_curves_point_set", ACTIONMOUSE, KM_PRESS, KM_CTRL, 0)->ptr, "point", 0);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "IMAGE_OT_curves_point_set", ACTIONMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "point", 1);
 | 
			
		||||
 | 
			
		||||
	/* toggle editmode is handy to have while UV unwrapping */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", TABKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", OB_MODE_EDIT);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "toggle", true);
 | 
			
		||||
 | 
			
		||||
	/* fast switch to render slots */
 | 
			
		||||
	for (i = 0; i < 9; i++) {
 | 
			
		||||
		kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_int", ONEKEY + i, KM_PRESS, 0, 0);
 | 
			
		||||
		RNA_string_set(kmi->ptr, "data_path", "space_data.image.render_slots.active_index");
 | 
			
		||||
		RNA_int_set(kmi->ptr, "value", i);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* pivot */
 | 
			
		||||
	WM_keymap_add_menu_pie(keymap, "IMAGE_MT_pivot_pie", PERIODKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* render border */
 | 
			
		||||
	WM_keymap_add_item(keymap, "IMAGE_OT_render_border", BKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "IMAGE_OT_clear_render_border", BKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Image Generic", SPACE_IMAGE, 0);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Image", SPACE_IMAGE, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* dropboxes */
 | 
			
		||||
 
 | 
			
		||||
@@ -207,28 +207,8 @@ static void info_operatortypes(void)
 | 
			
		||||
 | 
			
		||||
static void info_keymap(struct wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Window", 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_verify_item(keymap, "INFO_OT_reports_display_update", TIMERREPORT, KM_ANY, KM_ANY, 0);
 | 
			
		||||
 | 
			
		||||
	/* info space */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Info", SPACE_INFO, 0);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	/* report selection */
 | 
			
		||||
	WM_keymap_add_item(keymap, "INFO_OT_select_pick", SELECTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "INFO_OT_select_all_toggle", AKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "INFO_OT_select_box", BKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "INFO_OT_report_replay", RKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "INFO_OT_report_delete", XKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "INFO_OT_report_delete", DELKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "INFO_OT_report_copy", CKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
#ifdef __APPLE__
 | 
			
		||||
	WM_keymap_add_item(keymap, "INFO_OT_report_copy", CKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
#endif
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Window", 0, 0);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Info", SPACE_INFO, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* add handlers, stuff you only do once or on area/region changes */
 | 
			
		||||
 
 | 
			
		||||
@@ -178,16 +178,7 @@ static void logic_operatortypes(void)
 | 
			
		||||
 | 
			
		||||
static void logic_keymap(struct wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Logic Editor", SPACE_LOGIC, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "LOGIC_OT_properties", NKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "LOGIC_OT_links_cut", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_menu(keymap, "LOGIC_MT_logicbricks_add", AKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "LOGIC_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
 | 
			
		||||
#ifdef WITH_INPUT_NDOF
 | 
			
		||||
	WM_keymap_add_item(keymap, "LOGIC_OT_view_all", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
 | 
			
		||||
#endif
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Logic Editor", SPACE_LOGIC, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void logic_refresh(const bContext *UNUSED(C), ScrArea *UNUSED(sa))
 | 
			
		||||
 
 | 
			
		||||
@@ -40,7 +40,6 @@
 | 
			
		||||
#include "ED_markers.h"
 | 
			
		||||
#include "ED_screen.h"
 | 
			
		||||
#include "ED_select_utils.h"
 | 
			
		||||
#include "ED_keymap_templates.h"
 | 
			
		||||
#include "ED_transform.h"
 | 
			
		||||
 | 
			
		||||
#include "WM_api.h"
 | 
			
		||||
@@ -173,167 +172,10 @@ void nla_operatortypes(void)
 | 
			
		||||
 | 
			
		||||
/* ************************** registration - keymaps **********************************/
 | 
			
		||||
 | 
			
		||||
static void nla_keymap_channels(wmKeyMap *keymap)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	/* keymappings here are NLA-specific (different to standard channels keymap) */
 | 
			
		||||
 | 
			
		||||
	/* selection --------------------------------------------------------------------- */
 | 
			
		||||
	/* click-select */
 | 
			
		||||
	// XXX for now, only leftmouse....
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NLA_OT_channels_click", LEFTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NLA_OT_channels_click", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
 | 
			
		||||
	/* channel operations ------------------------------------------------------------ */
 | 
			
		||||
	/* add tracks */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NLA_OT_tracks_add", AKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "above_selected", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NLA_OT_tracks_add", AKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "above_selected", true);
 | 
			
		||||
 | 
			
		||||
	/* delete tracks */
 | 
			
		||||
	WM_keymap_add_item(keymap, "NLA_OT_tracks_delete", XKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "NLA_OT_tracks_delete", DELKEY, KM_PRESS, 0, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void nla_keymap_main(wmKeyConfig *keyconf, wmKeyMap *keymap)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	/* selection ------------------------------------------------ */
 | 
			
		||||
	/* click select */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NLA_OT_click_select", SELECTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NLA_OT_click_select", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
 | 
			
		||||
	/* select left/right */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NLA_OT_select_leftright", SELECTMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", NLAEDIT_LRSEL_TEST);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NLA_OT_select_leftright", SELECTMOUSE, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", NLAEDIT_LRSEL_TEST);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NLA_OT_select_leftright", LEFTBRACKETKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", NLAEDIT_LRSEL_LEFT);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NLA_OT_select_leftright", RIGHTBRACKETKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", NLAEDIT_LRSEL_RIGHT);
 | 
			
		||||
 | 
			
		||||
	/* deselect all */
 | 
			
		||||
	ED_keymap_template_select_all(keymap, "NLA_OT_select_all");
 | 
			
		||||
 | 
			
		||||
	/* box_select */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NLA_OT_select_box", BKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "axis_range", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NLA_OT_select_box", BKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "axis_range", true);
 | 
			
		||||
 | 
			
		||||
	/* view ---------------------------------------------------- */
 | 
			
		||||
	/* auto-set range */
 | 
			
		||||
	WM_keymap_add_item(keymap, "NLA_OT_previewrange_set", PKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "NLA_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
 | 
			
		||||
#ifdef WITH_INPUT_NDOF
 | 
			
		||||
	WM_keymap_add_item(keymap, "NLA_OT_view_all", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
 | 
			
		||||
#endif
 | 
			
		||||
	WM_keymap_add_item(keymap, "NLA_OT_view_selected", PADPERIOD, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "NLA_OT_view_frame", PAD0, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* editing ------------------------------------------------ */
 | 
			
		||||
 | 
			
		||||
	/* add strips */
 | 
			
		||||
	WM_keymap_add_item(keymap, "NLA_OT_actionclip_add", AKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "NLA_OT_transition_add", TKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "NLA_OT_soundclip_add", KKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	/* meta-strips */
 | 
			
		||||
	WM_keymap_add_item(keymap, "NLA_OT_meta_add", GKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "NLA_OT_meta_remove", GKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	/* duplicate */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NLA_OT_duplicate", DKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "linked", false);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NLA_OT_duplicate", DKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "linked", true);
 | 
			
		||||
 | 
			
		||||
	/* single user */
 | 
			
		||||
	WM_keymap_add_item(keymap, "NLA_OT_make_single_user", UKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* delete */
 | 
			
		||||
	WM_keymap_add_item(keymap, "NLA_OT_delete", XKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "NLA_OT_delete", DELKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* split */
 | 
			
		||||
	WM_keymap_add_item(keymap, "NLA_OT_split", YKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* toggles */
 | 
			
		||||
	WM_keymap_add_item(keymap, "NLA_OT_mute_toggle", HKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* swap */
 | 
			
		||||
	WM_keymap_add_item(keymap, "NLA_OT_swap", FKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	/* move up */
 | 
			
		||||
	WM_keymap_add_item(keymap, "NLA_OT_move_up", PAGEUPKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	/* move down */
 | 
			
		||||
	WM_keymap_add_item(keymap, "NLA_OT_move_down", PAGEDOWNKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* apply scale */
 | 
			
		||||
	WM_keymap_add_item(keymap, "NLA_OT_apply_scale", AKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	/* clear scale */
 | 
			
		||||
	WM_keymap_add_item(keymap, "NLA_OT_clear_scale", SKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	/* snap */
 | 
			
		||||
	WM_keymap_add_menu_pie(keymap, "NLA_MT_snap_pie", SKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	/* add f-modifier */
 | 
			
		||||
	WM_keymap_add_item(keymap, "NLA_OT_fmodifier_add", MKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	/* transform system */
 | 
			
		||||
	transform_keymap_for_space(keyconf, keymap, SPACE_NLA);
 | 
			
		||||
 | 
			
		||||
	/* special markers hotkeys for anim editors: see note in definition of this function */
 | 
			
		||||
	ED_marker_keymap_animedit_conflictfree(keymap);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* --------------- */
 | 
			
		||||
 | 
			
		||||
void nla_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap;
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	/* keymap for all regions ------------------------------------------- */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "NLA Generic", SPACE_NLA, 0);
 | 
			
		||||
 | 
			
		||||
	/* region management */
 | 
			
		||||
	WM_keymap_add_item(keymap, "NLA_OT_properties", NKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* tweakmode
 | 
			
		||||
	 *	- enter and exit are separate operators with the same hotkey...
 | 
			
		||||
	 *	  This works as they use different poll()'s
 | 
			
		||||
	 */
 | 
			
		||||
	WM_keymap_add_item(keymap, "NLA_OT_tweakmode_enter", TABKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "NLA_OT_tweakmode_exit", TABKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* tweakmode for stashed actions
 | 
			
		||||
	 * - similar to normal tweakmode, except we mark the tracks as being "solo"
 | 
			
		||||
	 *   too so that the action can be edited in isolation
 | 
			
		||||
	 */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NLA_OT_tweakmode_enter", TABKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "isolate_action", true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NLA_OT_tweakmode_exit", TABKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "isolate_action", true);
 | 
			
		||||
 | 
			
		||||
	/* find (i.e. a shortcut for setting the name filter) */
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_channels_find", FKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "NLA Generic", SPACE_NLA, 0);
 | 
			
		||||
 | 
			
		||||
	/* channels ---------------------------------------------------------- */
 | 
			
		||||
	/* Channels are not directly handled by the NLA Editor module, but are inherited from the Animation module.
 | 
			
		||||
@@ -342,10 +184,8 @@ void nla_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
	 *
 | 
			
		||||
	 * However, those operations which involve clicking on channels and/or the placement of them in the view are implemented here instead
 | 
			
		||||
	 */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "NLA Channels", SPACE_NLA, 0);
 | 
			
		||||
	nla_keymap_channels(keymap);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "NLA Channels", SPACE_NLA, 0);
 | 
			
		||||
 | 
			
		||||
	/* data ------------------------------------------------------------- */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "NLA Editor", SPACE_NLA, 0);
 | 
			
		||||
	nla_keymap_main(keyconf, keymap);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "NLA Editor", SPACE_NLA, 0);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -38,7 +38,6 @@
 | 
			
		||||
#include "ED_node.h"  /* own include */
 | 
			
		||||
#include "ED_screen.h"
 | 
			
		||||
#include "ED_select_utils.h"
 | 
			
		||||
#include "ED_keymap_templates.h"
 | 
			
		||||
#include "ED_transform.h"
 | 
			
		||||
 | 
			
		||||
#include "RNA_access.h"
 | 
			
		||||
@@ -203,154 +202,11 @@ void ED_operatormacros_node(void)
 | 
			
		||||
	WM_operatortype_macro_define(ot, "NODE_OT_translate_attach");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* helper function for repetitive select operator keymap */
 | 
			
		||||
static void node_select_keymap(wmKeyMap *keymap, int extend)
 | 
			
		||||
{
 | 
			
		||||
	/* modifier combinations */
 | 
			
		||||
	const int mod_single[] = { 0, KM_CTRL, KM_ALT, KM_CTRL | KM_ALT,
 | 
			
		||||
	                           -1 /* terminator */
 | 
			
		||||
	};
 | 
			
		||||
	const int mod_extend[] = { KM_SHIFT, KM_SHIFT | KM_CTRL,
 | 
			
		||||
	                           KM_SHIFT | KM_ALT, KM_SHIFT | KM_CTRL | KM_ALT,
 | 
			
		||||
	                           -1 /* terminator */
 | 
			
		||||
	};
 | 
			
		||||
	const int *mod = (extend ? mod_extend : mod_single);
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
	int i;
 | 
			
		||||
 | 
			
		||||
	for (i = 0; mod[i] >= 0; ++i) {
 | 
			
		||||
		kmi = WM_keymap_add_item(keymap, "NODE_OT_select", ACTIONMOUSE, KM_PRESS, mod[i], 0);
 | 
			
		||||
		RNA_boolean_set(kmi->ptr, "extend", extend);
 | 
			
		||||
		kmi = WM_keymap_add_item(keymap, "NODE_OT_select", SELECTMOUSE, KM_PRESS, mod[i], 0);
 | 
			
		||||
		RNA_boolean_set(kmi->ptr, "extend", extend);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void node_keymap(struct wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap;
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	/* Entire Editor only ----------------- */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Node Generic", SPACE_NODE, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_properties", NKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_toolbar", TKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Node Generic", SPACE_NODE, 0);
 | 
			
		||||
 | 
			
		||||
	/* Main Region only ----------------- */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Node Editor", SPACE_NODE, 0);
 | 
			
		||||
 | 
			
		||||
	/* mouse select in nodes used to be both keys, but perhaps this should be reduced?
 | 
			
		||||
	 * NOTE: mouse-clicks on left-mouse will fall through to allow transform-tweak, but also link/resize
 | 
			
		||||
	 * NOTE 2: socket select is part of the node select operator, to handle overlapping cases
 | 
			
		||||
	 * NOTE 3: select op is registered for various combinations of modifier key, so the specialized
 | 
			
		||||
	 *         grab operators (unlink, attach, etc.) can work easily on single nodes.
 | 
			
		||||
	 */
 | 
			
		||||
	node_select_keymap(keymap, false);
 | 
			
		||||
	node_select_keymap(keymap, true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NODE_OT_select_box", EVT_TWEAK_S, KM_ANY, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "tweak", true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NODE_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NODE_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL | KM_SHIFT | KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_select_circle", CKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* each of these falls through if not handled... */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NODE_OT_link", LEFTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "detach", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NODE_OT_link", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "detach", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_resize", LEFTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_add_reroute", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_links_cut", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_select_link_viewer", LEFTMOUSE, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_backimage_move", MIDDLEMOUSE, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NODE_OT_backimage_zoom", VKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_float_set(kmi->ptr, "factor", 0.83333f);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NODE_OT_backimage_zoom", VKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_float_set(kmi->ptr, "factor", 1.2f);
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_backimage_fit", HOMEKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_backimage_sample", ACTIONMOUSE, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu(keymap, "NODE_MT_specials", WKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NODE_OT_link_make", FKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "replace", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NODE_OT_link_make", FKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "replace", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu(keymap, "NODE_MT_add", AKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	/* modified operator call for duplicating with input links */
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_duplicate_move_keep_inputs", DKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_parent_set", PKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_detach", PKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_join", JKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_hide_toggle", HKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_mute_toggle", MKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_preview_toggle", HKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_hide_socket_toggle", HKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
 | 
			
		||||
#ifdef WITH_INPUT_NDOF
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_view_all", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
 | 
			
		||||
#endif
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_view_selected", PADPERIOD, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NODE_OT_select_box", BKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "tweak", false);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_delete", XKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_delete", DELKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_delete_reconnect", XKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_delete_reconnect", DELKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	ED_keymap_template_select_all(keymap, "NODE_OT_select_all");
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_select_linked_to", LKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_select_linked_from", LKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NODE_OT_select_grouped", GKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NODE_OT_select_grouped", GKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NODE_OT_select_same_type_step", RIGHTBRACKETKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "prev", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NODE_OT_select_same_type_step", LEFTBRACKETKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "prev", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_find_node", FKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	/* node group operators */
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_group_make", GKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_group_ungroup", GKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_group_separate", PKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NODE_OT_group_edit", TABKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "exit", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "NODE_OT_group_edit", TABKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "exit", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_read_viewlayers", RKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_render_changed", ZKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_clipboard_copy", CKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_clipboard_paste", VKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
#ifdef __APPLE__
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_clipboard_copy", CKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_clipboard_paste", VKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
#endif
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_viewer_border", BKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "NODE_OT_clear_viewer_border", BKEY, KM_PRESS, KM_ALT | KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	transform_keymap_for_space(keyconf, keymap, SPACE_NODE);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Node Editor", SPACE_NODE, 0);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -53,7 +53,6 @@
 | 
			
		||||
 | 
			
		||||
#include "ED_screen.h"
 | 
			
		||||
#include "ED_select_utils.h"
 | 
			
		||||
#include "ED_keymap_templates.h"
 | 
			
		||||
 | 
			
		||||
#include "outliner_intern.h"
 | 
			
		||||
 | 
			
		||||
@@ -121,87 +120,5 @@ void outliner_operatortypes(void)
 | 
			
		||||
 | 
			
		||||
void outliner_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Outliner", SPACE_OUTLINER, 0);
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "OUTLINER_OT_highlight_update", MOUSEMOVE, KM_ANY, KM_ANY, 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_CLICK, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "recursive", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OUTLINER_OT_item_activate", LEFTMOUSE, KM_CLICK, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "recursive", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OUTLINER_OT_item_activate", LEFTMOUSE, KM_CLICK, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "recursive", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OUTLINER_OT_item_activate", LEFTMOUSE, KM_CLICK, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "recursive", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "OUTLINER_OT_select_box", BKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OUTLINER_OT_item_openclose", RETKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "all", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OUTLINER_OT_item_openclose", RETKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "all", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "OUTLINER_OT_item_rename", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "OUTLINER_OT_operation", RIGHTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "OUTLINER_OT_item_drag_drop", EVT_TWEAK_L, KM_ANY, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "OUTLINER_OT_item_drag_drop", EVT_TWEAK_L, KM_ANY, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "OUTLINER_OT_show_hierarchy", HOMEKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "OUTLINER_OT_show_active", PERIODKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "OUTLINER_OT_show_active", PADPERIOD, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OUTLINER_OT_scroll_page", PAGEDOWNKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "up", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OUTLINER_OT_scroll_page", PAGEUPKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "up", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "OUTLINER_OT_show_one_level", PADPLUSKEY, KM_PRESS, 0, 0); /* open */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OUTLINER_OT_show_one_level", PADMINUS, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "open", false); /* close */
 | 
			
		||||
 | 
			
		||||
	ED_keymap_template_select_all(keymap, "OUTLINER_OT_select_all");
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "OUTLINER_OT_expanded_toggle", AKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	/* keying sets - only for databrowse */
 | 
			
		||||
	WM_keymap_add_item(keymap, "OUTLINER_OT_keyingset_add_selected", KKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "OUTLINER_OT_keyingset_remove_selected", KKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_keyframe_insert", IKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "ANIM_OT_keyframe_delete", IKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	/* Note: was D, Alt-D, keep these free for duplicate. */
 | 
			
		||||
	WM_keymap_add_item(keymap, "OUTLINER_OT_drivers_add_selected", DKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "OUTLINER_OT_drivers_delete_selected", DKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "OUTLINER_OT_collection_new", CKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "OUTLINER_OT_collection_delete", XKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "OUTLINER_OT_collection_delete", DELKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "OBJECT_OT_move_to_collection", MKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "OBJECT_OT_link_to_collection", MKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "OUTLINER_OT_collection_exclude_set", EKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "OUTLINER_OT_collection_exclude_clear", EKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OBJECT_OT_hide_view_clear", HKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "select", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OBJECT_OT_hide_view_set", HKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "OBJECT_OT_hide_view_set", HKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", true);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Outliner", SPACE_OUTLINER, 0);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -40,7 +40,6 @@
 | 
			
		||||
#include "ED_markers.h"
 | 
			
		||||
#include "ED_transform.h" /* transform keymap */
 | 
			
		||||
#include "ED_select_utils.h"
 | 
			
		||||
#include "ED_keymap_templates.h"
 | 
			
		||||
 | 
			
		||||
#include "BKE_sequencer.h"
 | 
			
		||||
 | 
			
		||||
@@ -135,234 +134,14 @@ void sequencer_operatortypes(void)
 | 
			
		||||
 | 
			
		||||
void sequencer_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap;
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	/* Common items ------------------------------------------------------------------ */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "SequencerCommon", SPACE_SEQ, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_properties", NKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", OKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "scene.sequence_editor.show_overlay");
 | 
			
		||||
 | 
			
		||||
	/* operators common to sequence and preview view */
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_view_toggle", TABKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "SequencerCommon", SPACE_SEQ, 0);
 | 
			
		||||
 | 
			
		||||
	/* Strips Region --------------------------------------------------------------- */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Sequencer", SPACE_SEQ, 0);
 | 
			
		||||
 | 
			
		||||
	ED_keymap_template_select_all(keymap, "SEQUENCER_OT_select_all");
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_cut", KKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "type", SEQ_CUT_SOFT);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_cut", KKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "type", SEQ_CUT_HARD);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_mute", HKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_mute", HKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_unmute", HKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_unmute", HKEY, KM_PRESS, KM_ALT | KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_lock", LKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_unlock", LKEY, KM_PRESS, KM_SHIFT | KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_reassign_inputs", RKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_reload", RKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_reload", RKEY, KM_PRESS, KM_SHIFT | KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "adjust_length", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_offset_clear", OKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_delete", XKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_delete", DELKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_paste", VKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
#ifdef __APPLE__
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_copy", CKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_paste", VKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_images_separate", YKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_meta_toggle", TABKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_meta_make", GKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_meta_separate", GKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
 | 
			
		||||
#ifdef WITH_INPUT_NDOF
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_view_all", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
 | 
			
		||||
#endif
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_view_selected", PADPERIOD, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_view_frame", PAD0, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_strip_jump", PAGEUPKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "next", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "center", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_strip_jump", PAGEDOWNKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "next", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "center", false);
 | 
			
		||||
 | 
			
		||||
	/* alt for center */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_strip_jump", PAGEUPKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "next", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "center", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_strip_jump", PAGEDOWNKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "next", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "center", true);
 | 
			
		||||
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_swap", LEFTARROWKEY, KM_PRESS, KM_ALT, 0)->ptr, "side", SEQ_SIDE_LEFT);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_swap", RIGHTARROWKEY, KM_PRESS, KM_ALT, 0)->ptr, "side", SEQ_SIDE_RIGHT);
 | 
			
		||||
 | 
			
		||||
	RNA_boolean_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_gap_remove", BACKSPACEKEY, KM_PRESS, 0, 0)->ptr, "all", false);
 | 
			
		||||
	RNA_boolean_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_gap_remove", BACKSPACEKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "all", true);
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_gap_insert", EQUALKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_snap", SKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_swap_inputs", SKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	/* multicam editing keyboard layout, switch to camera 1-10 using
 | 
			
		||||
	 * regular number keys */
 | 
			
		||||
	{
 | 
			
		||||
		int keys[] = { ONEKEY, TWOKEY, THREEKEY, FOURKEY, FIVEKEY,
 | 
			
		||||
			           SIXKEY, SEVENKEY, EIGHTKEY, NINEKEY, ZEROKEY };
 | 
			
		||||
		int i;
 | 
			
		||||
 | 
			
		||||
		for (i = 1; i <= 10; i++) {
 | 
			
		||||
			RNA_int_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_cut_multicam", keys[i - 1], KM_PRESS, 0, 0)->ptr, "camera", i);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* Mouse selection, a bit verbose :/ */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "linked_handle", false);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "left_right", SEQ_SELECT_LR_NONE);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "linked_time", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "linked_handle", false);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "left_right", SEQ_SELECT_LR_NONE);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "linked_time", false);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	/* 2.4x method, now use Alt for handles and select the side based on which handle was selected */
 | 
			
		||||
#if 0
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "linked_left", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "linked_right", true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "linked_left", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "linked_right", true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT | KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "linked_left", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "linked_right", true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "linked_left", true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT | KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "linked_right", true);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	/* 2.5 method, Alt and use selected handle */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "linked_handle", true);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "left_right", SEQ_SELECT_LR_NONE);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "linked_time", false);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT | KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "linked_handle", true);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "left_right", SEQ_SELECT_LR_NONE);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "linked_time", false);
 | 
			
		||||
 | 
			
		||||
	/* match action editor */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "linked_handle", false);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "left_right", SEQ_SELECT_LR_MOUSE);     /* grr, these conflict - only use left_right if not over an active seq */
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "linked_time", true);
 | 
			
		||||
	/* adjusted since 2.4 */
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "linked_handle", false);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "left_right", SEQ_SELECT_LR_NONE);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "linked_time", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select_linked_pick", LKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select_linked_pick", LKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_select_linked", LKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_select_box", BKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_select_grouped", GKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu(keymap, "SEQUENCER_MT_add", AKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu(keymap, "SEQUENCER_MT_change", CKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_slip", SKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_int", OKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "scene.sequence_editor.overlay_frame");
 | 
			
		||||
	RNA_int_set(kmi->ptr, "value", 0);
 | 
			
		||||
 | 
			
		||||
	transform_keymap_for_space(keyconf, keymap, SPACE_SEQ);
 | 
			
		||||
 | 
			
		||||
	/* special markers hotkeys for anim editors: see note in definition of this function */
 | 
			
		||||
	ED_marker_keymap_animedit_conflictfree(keymap);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Sequencer", SPACE_SEQ, 0);
 | 
			
		||||
 | 
			
		||||
	/* Preview Region ----------------------------------------------------------- */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "SequencerPreview", SPACE_SEQ, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_view_all_preview", HOMEKEY, KM_PRESS, 0, 0);
 | 
			
		||||
#ifdef WITH_INPUT_NDOF
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_view_all_preview", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_view_ghost_border", OKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* would prefer to use numpad keys for job */
 | 
			
		||||
	RNA_float_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_view_zoom_ratio", PAD1, KM_PRESS, 0, 0)->ptr, "ratio", 1.0f);
 | 
			
		||||
 | 
			
		||||
	/* Setting zoom levels is not that useful, except for back to zoom level 1, removing keymap because of conflicts for now */
 | 
			
		||||
#if 0
 | 
			
		||||
	RNA_float_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_view_zoom_ratio", PAD8, KM_PRESS, KM_SHIFT, 0)->ptr, "ratio", 8.0f);
 | 
			
		||||
	RNA_float_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_view_zoom_ratio", PAD4, KM_PRESS, KM_SHIFT, 0)->ptr, "ratio", 4.0f);
 | 
			
		||||
	RNA_float_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_view_zoom_ratio", PAD2, KM_PRESS, KM_SHIFT, 0)->ptr, "ratio", 2.0f);
 | 
			
		||||
 | 
			
		||||
	RNA_float_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_view_zoom_ratio", PAD2, KM_PRESS, 0, 0)->ptr, "ratio", 0.5f);
 | 
			
		||||
	RNA_float_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_view_zoom_ratio", PAD4, KM_PRESS, 0, 0)->ptr, "ratio", 0.25f);
 | 
			
		||||
	RNA_float_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_view_zoom_ratio", PAD8, KM_PRESS, 0, 0)->ptr, "ratio", 0.125f);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	/* sample */
 | 
			
		||||
	WM_keymap_add_item(keymap, "SEQUENCER_OT_sample", ACTIONMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "SequencerPreview", SPACE_SEQ, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ED_operatormacros_sequencer(void)
 | 
			
		||||
 
 | 
			
		||||
@@ -241,160 +241,8 @@ static void text_operatortypes(void)
 | 
			
		||||
 | 
			
		||||
static void text_keymap(struct wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap;
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Text Generic", SPACE_TEXT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_start_find", FKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
#ifdef __APPLE__
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_start_find", FKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
#endif
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_jump", JKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_find", GKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_replace", HKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_properties", TKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "Text", SPACE_TEXT, 0);
 | 
			
		||||
 | 
			
		||||
#ifdef __APPLE__
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", LEFTARROWKEY, KM_PRESS, KM_OSKEY, 0)->ptr, "type", LINE_BEGIN);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", RIGHTARROWKEY, KM_PRESS, KM_OSKEY, 0)->ptr, "type", LINE_END);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", LEFTARROWKEY, KM_PRESS, KM_ALT, 0)->ptr, "type", PREV_WORD);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", RIGHTARROWKEY, KM_PRESS, KM_ALT, 0)->ptr, "type", NEXT_WORD);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", UPARROWKEY, KM_PRESS, KM_OSKEY, 0)->ptr, "type", FILE_TOP);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", DOWNARROWKEY, KM_PRESS, KM_OSKEY, 0)->ptr, "type", FILE_BOTTOM);
 | 
			
		||||
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", LEFTARROWKEY, KM_PRESS, KM_SHIFT | KM_OSKEY, 0)->ptr, "type", LINE_BEGIN);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", RIGHTARROWKEY, KM_PRESS, KM_SHIFT | KM_OSKEY, 0)->ptr, "type", LINE_END);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", LEFTARROWKEY, KM_PRESS, KM_SHIFT | KM_ALT, 0)->ptr, "type", PREV_WORD);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", RIGHTARROWKEY, KM_PRESS, KM_SHIFT | KM_ALT, 0)->ptr, "type", NEXT_WORD);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", UPARROWKEY, KM_PRESS, KM_SHIFT | KM_OSKEY, 0)->ptr, "type", FILE_TOP);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", DOWNARROWKEY, KM_PRESS, KM_SHIFT | KM_OSKEY, 0)->ptr, "type", FILE_BOTTOM);
 | 
			
		||||
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_delete", BACKSPACEKEY, KM_PRESS, KM_ALT, 0)->ptr, "type", DEL_PREV_WORD);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_save", SKEY, KM_PRESS, KM_ALT | KM_OSKEY, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_save_as", SKEY, KM_PRESS, KM_ALT | KM_SHIFT | KM_OSKEY, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_cut", XKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_copy", CKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_paste", VKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_find_set_selected", EKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_select_all", AKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_select_line", AKEY, KM_PRESS, KM_SHIFT | KM_OSKEY, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", WHEELUPMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "space_data.font_size");
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "reverse", false);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", WHEELDOWNMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "space_data.font_size");
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "reverse", true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "space_data.font_size");
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "reverse", false);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", PADMINUS, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "space_data.font_size");
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "reverse", true);
 | 
			
		||||
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_new", NKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
#else
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_new", NKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
#endif
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_open", OKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_reload", RKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_save", SKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_save_as", SKEY, KM_PRESS, KM_ALT | KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_run_script", PKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_cut", XKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_paste", VKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_cut", DELKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_copy", INSERTKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_paste", INSERTKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_duplicate_line", DKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	if (U.uiflag & USER_MMB_PASTE) { // XXX not dynamic
 | 
			
		||||
		kmi = WM_keymap_add_item(keymap, "TEXT_OT_paste", MIDDLEMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
		RNA_boolean_set(kmi->ptr, "selection", true);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_select_all", AKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_select_line", AKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_select_word", LEFTMOUSE, KM_DBL_CLICK, 0, 0);
 | 
			
		||||
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_lines", UPARROWKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0)->ptr, "direction", TXT_MOVE_LINE_UP);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_lines", DOWNARROWKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0)->ptr, "direction", TXT_MOVE_LINE_DOWN);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_indent", TABKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_unindent", TABKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_uncomment", DKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", HOMEKEY, KM_PRESS, 0, 0)->ptr, "type", LINE_BEGIN);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", ENDKEY, KM_PRESS, 0, 0)->ptr, "type", LINE_END);
 | 
			
		||||
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", EKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", LINE_END);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", EKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0)->ptr, "type", LINE_END);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", LEFTARROWKEY, KM_PRESS, 0, 0)->ptr, "type", PREV_CHAR);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", RIGHTARROWKEY, KM_PRESS, 0, 0)->ptr, "type", NEXT_CHAR);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", LEFTARROWKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", PREV_WORD);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", RIGHTARROWKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", NEXT_WORD);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", UPARROWKEY, KM_PRESS, 0, 0)->ptr, "type", PREV_LINE);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", DOWNARROWKEY, KM_PRESS, 0, 0)->ptr, "type", NEXT_LINE);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", PAGEUPKEY, KM_PRESS, 0, 0)->ptr, "type", PREV_PAGE);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", PAGEDOWNKEY, KM_PRESS, 0, 0)->ptr, "type", NEXT_PAGE);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", HOMEKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", FILE_TOP);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", ENDKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", FILE_BOTTOM);
 | 
			
		||||
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", HOMEKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", LINE_BEGIN);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", ENDKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", LINE_END);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", LEFTARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", PREV_CHAR);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", RIGHTARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", NEXT_CHAR);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", LEFTARROWKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0)->ptr, "type", PREV_WORD);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", RIGHTARROWKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0)->ptr, "type", NEXT_WORD);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", UPARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", PREV_LINE);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", DOWNARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", NEXT_LINE);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", PAGEUPKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", PREV_PAGE);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", PAGEDOWNKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", NEXT_PAGE);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", HOMEKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0)->ptr, "type", FILE_TOP);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", ENDKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0)->ptr, "type", FILE_BOTTOM);
 | 
			
		||||
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_delete", DELKEY, KM_PRESS, 0, 0)->ptr, "type", DEL_NEXT_CHAR);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_delete", BACKSPACEKEY, KM_PRESS, 0, 0)->ptr, "type", DEL_PREV_CHAR);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_delete", BACKSPACEKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", DEL_PREV_CHAR); /* same as above [#26623] */
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_delete", DELKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", DEL_NEXT_WORD);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_delete", BACKSPACEKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", DEL_PREV_WORD);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_overwrite_toggle", INSERTKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_scroll_bar", LEFTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_scroll_bar", MIDDLEMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_scroll", MIDDLEMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_scroll", MOUSEPAN, 0, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_selection_set", EVT_TWEAK_L, KM_ANY, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_cursor_set", LEFTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "TEXT_OT_selection_set", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "select", true);
 | 
			
		||||
	RNA_int_set(WM_keymap_add_item(keymap, "TEXT_OT_scroll", WHEELUPMOUSE, KM_PRESS, 0, 0)->ptr, "lines", -1);
 | 
			
		||||
	RNA_int_set(WM_keymap_add_item(keymap, "TEXT_OT_scroll", WHEELDOWNMOUSE, KM_PRESS, 0, 0)->ptr, "lines", 1);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_line_break", RETKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_line_break", PADENTER, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu(keymap, "TEXT_MT_toolbox", RIGHTMOUSE, KM_PRESS, KM_ANY, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_autocomplete", SPACEKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_line_number", KM_TEXTINPUT, KM_ANY, KM_ANY, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TEXT_OT_insert", KM_TEXTINPUT, KM_ANY, KM_ANY, 0); // last!
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Text Generic", SPACE_TEXT, 0);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Text", SPACE_TEXT, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const char *text_context_dir[] = {"edit_text", NULL};
 | 
			
		||||
 
 | 
			
		||||
@@ -214,13 +214,5 @@ void time_operatortypes(void)
 | 
			
		||||
 | 
			
		||||
void time_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Timeline", SPACE_TIME, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "TIME_OT_start_frame_set", SKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TIME_OT_end_frame_set", EKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "TIME_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
 | 
			
		||||
#ifdef WITH_INPUT_NDOF
 | 
			
		||||
	WM_keymap_add_item(keymap, "TIME_OT_view_all", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
 | 
			
		||||
#endif
 | 
			
		||||
	WM_keymap_add_item(keymap, "TIME_OT_view_frame", PAD0, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Timeline", SPACE_TIME, 0);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -583,13 +583,6 @@ void viewrotate_modal_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
 | 
			
		||||
	keymap = WM_modalkeymap_add(keyconf, "View3D Rotate Modal", modal_items);
 | 
			
		||||
 | 
			
		||||
	/* items for modal map */
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_RELEASE, KM_ANY, 0, VIEW_MODAL_CONFIRM);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, VIEW_MODAL_CONFIRM);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTALTKEY, KM_PRESS, KM_ANY, 0, VIEWROT_MODAL_AXIS_SNAP_ENABLE);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTALTKEY, KM_RELEASE, KM_ANY, 0, VIEWROT_MODAL_AXIS_SNAP_DISABLE);
 | 
			
		||||
 | 
			
		||||
	/* disabled mode switching for now, can re-implement better, later on */
 | 
			
		||||
#if 0
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_PRESS, KM_ANY, 0, VIEWROT_MODAL_SWITCH_ZOOM);
 | 
			
		||||
@@ -1787,10 +1780,6 @@ void viewzoom_modal_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
 | 
			
		||||
	keymap = WM_modalkeymap_add(keyconf, "View3D Zoom Modal", modal_items);
 | 
			
		||||
 | 
			
		||||
	/* items for modal map */
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_RELEASE, KM_ANY, 0, VIEW_MODAL_CONFIRM);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, VIEW_MODAL_CONFIRM);
 | 
			
		||||
 | 
			
		||||
	/* disabled mode switching for now, can re-implement better, later on */
 | 
			
		||||
#if 0
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_RELEASE, KM_ANY, 0, VIEWROT_MODAL_SWITCH_ROTATE);
 | 
			
		||||
@@ -2322,10 +2311,6 @@ void viewdolly_modal_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
 | 
			
		||||
	keymap = WM_modalkeymap_add(keyconf, "View3D Dolly Modal", modal_items);
 | 
			
		||||
 | 
			
		||||
	/* items for modal map */
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_RELEASE, KM_ANY, 0, VIEW_MODAL_CONFIRM);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, VIEW_MODAL_CONFIRM);
 | 
			
		||||
 | 
			
		||||
	/* disabled mode switching for now, can re-implement better, later on */
 | 
			
		||||
#if 0
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_RELEASE, KM_ANY, 0, VIEWROT_MODAL_SWITCH_ROTATE);
 | 
			
		||||
 
 | 
			
		||||
@@ -137,56 +137,6 @@ void fly_modal_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
 | 
			
		||||
	keymap = WM_modalkeymap_add(keyconf, "View3D Fly Modal", modal_items);
 | 
			
		||||
 | 
			
		||||
	/* items for modal map */
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_ANY, KM_ANY, 0, FLY_MODAL_CANCEL);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, FLY_MODAL_CANCEL);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_ANY, KM_ANY, 0, FLY_MODAL_CONFIRM);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RETKEY, KM_PRESS, KM_ANY, 0, FLY_MODAL_CONFIRM);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, SPACEKEY, KM_PRESS, KM_ANY, 0, FLY_MODAL_CONFIRM);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, PADENTER, KM_PRESS, KM_ANY, 0, FLY_MODAL_CONFIRM);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, PADPLUSKEY, KM_PRESS, KM_ANY, 0, FLY_MODAL_ACCELERATE);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, PADMINUS, KM_PRESS, KM_ANY, 0, FLY_MODAL_DECELERATE);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, WHEELUPMOUSE, KM_PRESS, KM_ANY, 0, FLY_MODAL_ACCELERATE);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, WHEELDOWNMOUSE, KM_PRESS, KM_ANY, 0, FLY_MODAL_DECELERATE);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, MOUSEPAN, 0, 0, 0, FLY_MODAL_SPEED);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_PRESS, KM_ANY, 0, FLY_MODAL_PAN_ENABLE);
 | 
			
		||||
	/* XXX - Bug in the event system, middle mouse release doesn't work */
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_RELEASE, KM_ANY, 0, FLY_MODAL_PAN_DISABLE);
 | 
			
		||||
 | 
			
		||||
	/* WASD */
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, WKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_FORWARD);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, SKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_BACKWARD);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, AKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_LEFT);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, DKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_RIGHT);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, EKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_UP);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, QKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_DOWN);
 | 
			
		||||
 | 
			
		||||
	/* for legacy reasons, leave R/F working */
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_UP);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, FKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_DOWN);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, UPARROWKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_FORWARD);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, DOWNARROWKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_BACKWARD);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTARROWKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_LEFT);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RIGHTARROWKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_RIGHT);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, XKEY, KM_PRESS, 0, 0, FLY_MODAL_AXIS_LOCK_X);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, ZKEY, KM_PRESS, 0, 0, FLY_MODAL_AXIS_LOCK_Z);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTALTKEY, KM_PRESS, KM_ANY, 0, FLY_MODAL_PRECISION_ENABLE);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTALTKEY, KM_RELEASE, KM_ANY, 0, FLY_MODAL_PRECISION_DISABLE);
 | 
			
		||||
 | 
			
		||||
	/* for legacy reasons, leave shift working */
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTSHIFTKEY, KM_PRESS, KM_ANY, 0, FLY_MODAL_PRECISION_ENABLE);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTSHIFTKEY, KM_RELEASE, KM_ANY, 0, FLY_MODAL_PRECISION_DISABLE);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTCTRLKEY, KM_PRESS, KM_ANY, 0, FLY_MODAL_FREELOOK_ENABLE);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTCTRLKEY, KM_RELEASE, KM_ANY, 0, FLY_MODAL_FREELOOK_DISABLE);
 | 
			
		||||
 | 
			
		||||
	/* assign map to operators */
 | 
			
		||||
	WM_modalkeymap_assign(keymap, "VIEW3D_OT_fly");
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -233,300 +233,10 @@ void view3d_operatortypes(void)
 | 
			
		||||
 | 
			
		||||
void view3d_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap;
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "3D View Generic", SPACE_VIEW3D, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_properties", NKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_toolshelf", TKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "3D View Generic", SPACE_VIEW3D, 0);
 | 
			
		||||
 | 
			
		||||
	/* only for region 3D window */
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "3D View", SPACE_VIEW3D, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_verify_item(keymap, "VIEW3D_OT_cursor3d", ACTIONMOUSE, KM_CLICK, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_verify_item(keymap, "VIEW3D_OT_rotate", MIDDLEMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_verify_item(keymap, "VIEW3D_OT_move", MIDDLEMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_verify_item(keymap, "VIEW3D_OT_zoom", MIDDLEMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_verify_item(keymap, "VIEW3D_OT_dolly", MIDDLEMOUSE, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_selected", PADPERIOD, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "use_all_regions", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_selected", PADPERIOD, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "use_all_regions", false);
 | 
			
		||||
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_verify_item(keymap, "VIEW3D_OT_view_lock_to_active", PADPERIOD, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_verify_item(keymap, "VIEW3D_OT_view_lock_clear", PADPERIOD, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_verify_item(keymap, "VIEW3D_OT_navigate", FKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	WM_keymap_verify_item(keymap, "VIEW3D_OT_smoothview", TIMER1, KM_ANY, KM_ANY, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_rotate", MOUSEPAN, 0, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_rotate", MOUSEROTATE, 0, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_move", MOUSEPAN, 0, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", MOUSEZOOM, 0, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", MOUSEPAN, 0, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	/*numpad +/-*/
 | 
			
		||||
	RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", PADPLUSKEY, KM_PRESS, 0, 0)->ptr, "delta", 1);
 | 
			
		||||
	RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", PADMINUS, KM_PRESS, 0, 0)->ptr, "delta", -1);
 | 
			
		||||
	/*ctrl +/-*/
 | 
			
		||||
	RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", EQUALKEY, KM_PRESS, KM_CTRL, 0)->ptr, "delta", 1);
 | 
			
		||||
	RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", MINUSKEY, KM_PRESS, KM_CTRL, 0)->ptr, "delta", -1);
 | 
			
		||||
 | 
			
		||||
	/*wheel mouse forward/back*/
 | 
			
		||||
	RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", WHEELINMOUSE, KM_PRESS, 0, 0)->ptr, "delta", 1);
 | 
			
		||||
	RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", WHEELOUTMOUSE, KM_PRESS, 0, 0)->ptr, "delta", -1);
 | 
			
		||||
 | 
			
		||||
	/* ... and for dolly */
 | 
			
		||||
	/*numpad +/-*/
 | 
			
		||||
	RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_dolly", PADPLUSKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "delta", 1);
 | 
			
		||||
	RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_dolly", PADMINUS, KM_PRESS, KM_SHIFT, 0)->ptr, "delta", -1);
 | 
			
		||||
	/*ctrl +/-*/
 | 
			
		||||
	RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_dolly", EQUALKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0)->ptr, "delta", 1);
 | 
			
		||||
	RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_dolly", MINUSKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0)->ptr, "delta", -1);
 | 
			
		||||
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_zoom_camera_1_to_1", PADENTER, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_view_center_camera", HOMEKEY, KM_PRESS, 0, 0); /* only with camera view */
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_view_center_lock", HOMEKEY, KM_PRESS, 0, 0); /* only with lock view */
 | 
			
		||||
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_view_center_cursor", HOMEKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_view_center_pick", FKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "center", false); /* only without camera view */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_all", HOMEKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "use_all_regions", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "center", false); /* only without camera view */
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_all", CKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "center", true);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu_pie(keymap, "VIEW3D_MT_view_pie", ACCENTGRAVEKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_navigate", ACCENTGRAVEKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	/* numpad view hotkeys*/
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_view_camera", PAD0, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", PAD1, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_FRONT);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", PAD2, KM_PRESS, 0, 0)->ptr, "type", V3D_VIEW_STEPDOWN);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", PAD3, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_RIGHT);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", PAD4, KM_PRESS, 0, 0)->ptr, "type", V3D_VIEW_STEPLEFT);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_view_persportho", PAD5, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", PAD6, KM_PRESS, 0, 0)->ptr, "type", V3D_VIEW_STEPRIGHT);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", PAD7, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_TOP);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", PAD8, KM_PRESS, 0, 0)->ptr, "type", V3D_VIEW_STEPUP);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", PAD1, KM_PRESS, KM_CTRL, 0)->ptr, "type", RV3D_VIEW_BACK);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", PAD3, KM_PRESS, KM_CTRL, 0)->ptr, "type", RV3D_VIEW_LEFT);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", PAD7, KM_PRESS, KM_CTRL, 0)->ptr, "type", RV3D_VIEW_BOTTOM);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_pan", PAD2, KM_PRESS, KM_CTRL, 0)->ptr, "type", V3D_VIEW_PANDOWN);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_pan", PAD4, KM_PRESS, KM_CTRL, 0)->ptr, "type", V3D_VIEW_PANLEFT);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_pan", PAD6, KM_PRESS, KM_CTRL, 0)->ptr, "type", V3D_VIEW_PANRIGHT);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_pan", PAD8, KM_PRESS, KM_CTRL, 0)->ptr, "type", V3D_VIEW_PANUP);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_roll", PAD4, KM_PRESS, KM_SHIFT, 0)->ptr, "type", V3D_VIEW_STEPLEFT);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_roll", PAD6, KM_PRESS, KM_SHIFT, 0)->ptr, "type", V3D_VIEW_STEPRIGHT);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", PAD9, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "type", V3D_VIEW_STEPRIGHT);
 | 
			
		||||
	RNA_float_set(kmi->ptr, "angle", (float)M_PI);
 | 
			
		||||
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_pan", WHEELUPMOUSE, KM_PRESS, KM_CTRL, 0)->ptr, "type", V3D_VIEW_PANRIGHT);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_pan", WHEELDOWNMOUSE, KM_PRESS, KM_CTRL, 0)->ptr, "type", V3D_VIEW_PANLEFT);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_pan", WHEELUPMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "type", V3D_VIEW_PANUP);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_pan", WHEELDOWNMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "type", V3D_VIEW_PANDOWN);
 | 
			
		||||
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", WHEELUPMOUSE, KM_PRESS, KM_CTRL | KM_ALT, 0)->ptr, "type", V3D_VIEW_STEPLEFT);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", WHEELDOWNMOUSE, KM_PRESS, KM_CTRL | KM_ALT, 0)->ptr, "type", V3D_VIEW_STEPRIGHT);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", WHEELUPMOUSE, KM_PRESS, KM_SHIFT | KM_ALT, 0)->ptr, "type", V3D_VIEW_STEPUP);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", WHEELDOWNMOUSE, KM_PRESS, KM_SHIFT | KM_ALT, 0)->ptr, "type", V3D_VIEW_STEPDOWN);
 | 
			
		||||
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_roll", WHEELUPMOUSE, KM_PRESS, KM_CTRL | KM_SHIFT, 0)->ptr, "type", V3D_VIEW_STEPLEFT);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_roll", WHEELDOWNMOUSE, KM_PRESS, KM_CTRL | KM_SHIFT, 0)->ptr, "type", V3D_VIEW_STEPRIGHT);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	/* active aligned, replaces '*' key in 2.4x */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", PAD1, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_FRONT);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "align_active", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", PAD3, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_RIGHT);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "align_active", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", PAD7, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_TOP);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "align_active", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", PAD1, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_BACK);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "align_active", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", PAD3, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_LEFT);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "align_active", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", PAD7, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_BOTTOM);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "align_active", true);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", EVT_TWEAK_M, EVT_GESTURE_N, KM_ALT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_TOP);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "relative", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", EVT_TWEAK_M, EVT_GESTURE_S, KM_ALT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_BOTTOM);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "relative", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", EVT_TWEAK_M, EVT_GESTURE_E, KM_ALT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_RIGHT);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "relative", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", EVT_TWEAK_M, EVT_GESTURE_W, KM_ALT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_LEFT);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "relative", true);
 | 
			
		||||
 | 
			
		||||
#ifdef WITH_INPUT_NDOF
 | 
			
		||||
	/* note: positioned here so keymaps show keyboard keys if assigned */
 | 
			
		||||
	/* 3D mouse */
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_ndof_orbit_zoom", NDOF_MOTION, 0, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_ndof_orbit", NDOF_MOTION, 0, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_ndof_pan", NDOF_MOTION, 0, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_ndof_all", NDOF_MOTION, 0, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_selected", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "use_all_regions", false);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_roll", NDOF_BUTTON_ROLL_CCW, KM_PRESS, 0, 0)->ptr, "type", V3D_VIEW_STEPLEFT);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_roll", NDOF_BUTTON_ROLL_CCW, KM_PRESS, 0, 0)->ptr, "type", V3D_VIEW_STEPRIGHT);
 | 
			
		||||
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", NDOF_BUTTON_FRONT, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_FRONT);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", NDOF_BUTTON_BACK, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_BACK);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", NDOF_BUTTON_LEFT, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_LEFT);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", NDOF_BUTTON_RIGHT, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_RIGHT);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", NDOF_BUTTON_TOP, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_TOP);
 | 
			
		||||
	RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", NDOF_BUTTON_BOTTOM, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_BOTTOM);
 | 
			
		||||
 | 
			
		||||
	/* 3D mouse align */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", NDOF_BUTTON_FRONT, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_FRONT);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "align_active", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", NDOF_BUTTON_RIGHT, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_RIGHT);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "align_active", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", NDOF_BUTTON_TOP, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_TOP);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "align_active", true);
 | 
			
		||||
#endif /* WITH_INPUT_NDOF */
 | 
			
		||||
 | 
			
		||||
	/* drawtype */
 | 
			
		||||
	WM_keymap_add_menu_pie(keymap, "VIEW3D_MT_shading_pie", ZKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_toggle_shading", ZKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "type", OB_MATERIAL);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_toggle_shading", ZKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "type", OB_RENDER);
 | 
			
		||||
 | 
			
		||||
	/* selection*/
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select", SELECTMOUSE, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "toggle", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "center", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "object", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "enumerate", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "toggle", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "center", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "object", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "enumerate", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select", SELECTMOUSE, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "toggle", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "center", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "object", true); /* use Ctrl+Select for 2 purposes */
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "enumerate", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select", SELECTMOUSE, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "toggle", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "center", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "object", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "enumerate", true);
 | 
			
		||||
 | 
			
		||||
	/* selection key-combinations */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "toggle", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "center", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "object", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "enumerate", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select", SELECTMOUSE, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "toggle", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "center", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "object", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "enumerate", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT | KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "toggle", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "center", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "object", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "enumerate", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT | KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "toggle", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "center", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "object", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "enumerate", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_select_box", BKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", SEL_OP_ADD);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
	RNA_enum_set(kmi->ptr, "mode", SEL_OP_SUB);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_select_circle", CKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_clip_border", BKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_zoom_border", BKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_render_border", BKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_clear_render_border", BKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_camera_to_view", PAD0, KM_PRESS, KM_ALT | KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_object_as_camera", PAD0, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu_pie(keymap, "VIEW3D_MT_snap_pie", SKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
#ifdef __APPLE__
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_copybuffer", CKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_pastebuffer", VKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
#endif
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_copybuffer", CKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "VIEW3D_OT_pastebuffer", VKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	/* context ops */
 | 
			
		||||
	WM_keymap_add_menu_pie(keymap, "VIEW3D_MT_pivot_pie", PERIODKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_menu_pie(keymap, "VIEW3D_MT_orientations_pie", COMMAKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", COMMAKEY, KM_PRESS, KM_ALT, 0); /* new in 2.5 */
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_transform_pivot_point_align");
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", SPACEKEY, KM_PRESS, KM_CTRL, 0); /* new in 2.5 */
 | 
			
		||||
#else
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", ACCENTGRAVEKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
#endif
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "space_data.show_gizmo_tool");
 | 
			
		||||
 | 
			
		||||
	transform_keymap_for_space(keyconf, keymap, SPACE_VIEW3D);
 | 
			
		||||
	WM_keymap_ensure(keyconf, "3D View", SPACE_VIEW3D, 0);
 | 
			
		||||
 | 
			
		||||
	fly_modal_keymap(keyconf);
 | 
			
		||||
	walk_modal_keymap(keyconf);
 | 
			
		||||
 
 | 
			
		||||
@@ -177,59 +177,6 @@ void walk_modal_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
 | 
			
		||||
	keymap = WM_modalkeymap_add(keyconf, "View3D Walk Modal", modal_items);
 | 
			
		||||
 | 
			
		||||
	/* items for modal map */
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_ANY, KM_ANY, 0, WALK_MODAL_CANCEL);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, WALK_MODAL_CANCEL);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_ANY, KM_ANY, 0, WALK_MODAL_CONFIRM);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RETKEY, KM_PRESS, KM_ANY, 0, WALK_MODAL_CONFIRM);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, PADENTER, KM_PRESS, KM_ANY, 0, WALK_MODAL_CONFIRM);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTSHIFTKEY, KM_PRESS, KM_ANY, 0, WALK_MODAL_FAST_ENABLE);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTSHIFTKEY, KM_RELEASE, KM_ANY, 0, WALK_MODAL_FAST_DISABLE);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTALTKEY, KM_PRESS, KM_ANY, 0, WALK_MODAL_SLOW_ENABLE);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTALTKEY, KM_RELEASE, KM_ANY, 0, WALK_MODAL_SLOW_DISABLE);
 | 
			
		||||
 | 
			
		||||
	/* WASD */
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, WKEY, KM_PRESS, KM_ANY, 0, WALK_MODAL_DIR_FORWARD);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, SKEY, KM_PRESS, KM_ANY, 0, WALK_MODAL_DIR_BACKWARD);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, AKEY, KM_PRESS, KM_ANY, 0, WALK_MODAL_DIR_LEFT);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, DKEY, KM_PRESS, KM_ANY, 0, WALK_MODAL_DIR_RIGHT);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, EKEY, KM_PRESS, KM_ANY, 0, WALK_MODAL_DIR_UP);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, QKEY, KM_PRESS, KM_ANY, 0, WALK_MODAL_DIR_DOWN);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, WKEY, KM_RELEASE, KM_ANY, 0, WALK_MODAL_DIR_FORWARD_STOP);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, SKEY, KM_RELEASE, KM_ANY, 0, WALK_MODAL_DIR_BACKWARD_STOP);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, AKEY, KM_RELEASE, KM_ANY, 0, WALK_MODAL_DIR_LEFT_STOP);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, DKEY, KM_RELEASE, KM_ANY, 0, WALK_MODAL_DIR_RIGHT_STOP);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, EKEY, KM_RELEASE, KM_ANY, 0, WALK_MODAL_DIR_UP_STOP);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, QKEY, KM_RELEASE, KM_ANY, 0, WALK_MODAL_DIR_DOWN_STOP);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, UPARROWKEY, KM_PRESS, 0, 0, WALK_MODAL_DIR_FORWARD);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, DOWNARROWKEY, KM_PRESS, 0, 0, WALK_MODAL_DIR_BACKWARD);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTARROWKEY, KM_PRESS, 0, 0, WALK_MODAL_DIR_LEFT);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RIGHTARROWKEY, KM_PRESS, 0, 0, WALK_MODAL_DIR_RIGHT);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, UPARROWKEY, KM_RELEASE, KM_ANY, 0, WALK_MODAL_DIR_FORWARD_STOP);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, DOWNARROWKEY, KM_RELEASE, KM_ANY, 0, WALK_MODAL_DIR_BACKWARD_STOP);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTARROWKEY, KM_RELEASE, KM_ANY, 0, WALK_MODAL_DIR_LEFT_STOP);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RIGHTARROWKEY, KM_RELEASE, KM_ANY, 0, WALK_MODAL_DIR_RIGHT_STOP);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, TABKEY, KM_PRESS, 0, 0, WALK_MODAL_TOGGLE);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, GKEY, KM_PRESS, 0, 0, WALK_MODAL_TOGGLE);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, VKEY, KM_PRESS, KM_ANY, 0, WALK_MODAL_JUMP);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, VKEY, KM_RELEASE, KM_ANY, 0, WALK_MODAL_JUMP_STOP);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, SPACEKEY, KM_PRESS, KM_ANY, 0, WALK_MODAL_TELEPORT);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_ANY, KM_ANY, 0, WALK_MODAL_TELEPORT);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, PADPLUSKEY, KM_PRESS, KM_ANY, 0, WALK_MODAL_ACCELERATE);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, PADMINUS, KM_PRESS, KM_ANY, 0, WALK_MODAL_DECELERATE);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, WHEELUPMOUSE, KM_PRESS, KM_ANY, 0, WALK_MODAL_ACCELERATE);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, WHEELDOWNMOUSE, KM_PRESS, KM_ANY, 0, WALK_MODAL_DECELERATE);
 | 
			
		||||
 | 
			
		||||
	/* assign map to operators */
 | 
			
		||||
	WM_modalkeymap_assign(keymap, "VIEW3D_OT_walk");
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -940,65 +940,9 @@ wmKeyMap *transform_modal_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
 | 
			
		||||
	wmKeyMap *keymap = WM_modalkeymap_get(keyconf, "Transform Modal Map");
 | 
			
		||||
 | 
			
		||||
	/* this function is called for each spacetype, only needs to add map once */
 | 
			
		||||
	if (keymap && keymap->modal_items) return NULL;
 | 
			
		||||
 | 
			
		||||
	keymap = WM_modalkeymap_add(keyconf, "Transform Modal Map", modal_items);
 | 
			
		||||
	keymap->poll_modal_item = transform_modal_item_poll;
 | 
			
		||||
 | 
			
		||||
	/* items for modal map */
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTMOUSE,  KM_PRESS, KM_ANY, 0, TFM_MODAL_CONFIRM);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RETKEY,     KM_PRESS, KM_ANY, 0, TFM_MODAL_CONFIRM);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, PADENTER,   KM_PRESS, KM_ANY, 0, TFM_MODAL_CONFIRM);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_PRESS, 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, XKEY, KM_PRESS, 0, 0, TFM_MODAL_AXIS_X);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, YKEY, KM_PRESS, 0, 0, TFM_MODAL_AXIS_Y);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, ZKEY, KM_PRESS, 0, 0, TFM_MODAL_AXIS_Z);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, XKEY, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_PLANE_X);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, YKEY, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_PLANE_Y);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, ZKEY, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_PLANE_Z);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, CKEY, KM_PRESS, 0, 0, TFM_MODAL_CONS_OFF);
 | 
			
		||||
 | 
			
		||||
	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, SKEY, KM_PRESS, 0, 0, TFM_MODAL_RESIZE);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, TABKEY, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_SNAP_TOGGLE);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTCTRLKEY, KM_PRESS, KM_ANY, 0, TFM_MODAL_SNAP_INV_ON);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTCTRLKEY, KM_RELEASE, KM_ANY, 0, TFM_MODAL_SNAP_INV_OFF);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RIGHTCTRLKEY, KM_PRESS, KM_ANY, 0, TFM_MODAL_SNAP_INV_ON);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RIGHTCTRLKEY, KM_RELEASE, KM_ANY, 0, TFM_MODAL_SNAP_INV_OFF);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, AKEY, KM_PRESS, 0, 0, TFM_MODAL_ADD_SNAP);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, AKEY, KM_PRESS, KM_ALT, 0, TFM_MODAL_REMOVE_SNAP);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, PAGEUPKEY, KM_PRESS, 0, 0, TFM_MODAL_PROPSIZE_UP);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, PAGEDOWNKEY, KM_PRESS, 0, 0, TFM_MODAL_PROPSIZE_DOWN);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, PAGEUPKEY, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_PROPSIZE_UP);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, PAGEDOWNKEY, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_PROPSIZE_DOWN);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, WHEELDOWNMOUSE, KM_PRESS, 0, 0, TFM_MODAL_PROPSIZE_UP);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, WHEELUPMOUSE, KM_PRESS, 0, 0, TFM_MODAL_PROPSIZE_DOWN);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, WHEELDOWNMOUSE, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_PROPSIZE_UP);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, WHEELUPMOUSE, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_PROPSIZE_DOWN);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, MOUSEPAN, 0, 0, 0, TFM_MODAL_PROPSIZE);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, WHEELDOWNMOUSE, KM_PRESS, KM_ALT, 0, TFM_MODAL_EDGESLIDE_UP);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, WHEELUPMOUSE, KM_PRESS, KM_ALT, 0, TFM_MODAL_EDGESLIDE_DOWN);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, PAGEUPKEY, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_AUTOIK_LEN_INC);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, PAGEDOWNKEY, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_AUTOIK_LEN_DEC);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, WHEELDOWNMOUSE, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_AUTOIK_LEN_INC);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, WHEELUPMOUSE, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_AUTOIK_LEN_DEC);
 | 
			
		||||
 | 
			
		||||
	/* node editor only */
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, TKEY, KM_PRESS, 0, 0, TFM_MODAL_INSERTOFS_TOGGLE_DIR);
 | 
			
		||||
 | 
			
		||||
	return keymap;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1194,170 +1194,14 @@ void transform_operatortypes(void)
 | 
			
		||||
	WM_operatortype_append(TRANSFORM_OT_from_gizmo);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spaceid)
 | 
			
		||||
void ED_keymap_transform(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
	wmKeyMap *modalmap;
 | 
			
		||||
	wmKeyMap *modalmap = transform_modal_keymap(keyconf);
 | 
			
		||||
 | 
			
		||||
	/* transform.c, only adds modal map once, checks if it's there */
 | 
			
		||||
	modalmap = transform_modal_keymap(keyconf);
 | 
			
		||||
 | 
			
		||||
	/* assign map to operators only the first time */
 | 
			
		||||
	if (modalmap) {
 | 
			
		||||
	TransformModeItem *tmode;
 | 
			
		||||
 | 
			
		||||
	for (tmode = transform_modes; tmode->idname; tmode++) {
 | 
			
		||||
		WM_modalkeymap_assign(modalmap, tmode->idname);
 | 
			
		||||
	}
 | 
			
		||||
	WM_modalkeymap_assign(modalmap, "TRANSFORM_OT_transform");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	switch (spaceid) {
 | 
			
		||||
		case SPACE_VIEW3D:
 | 
			
		||||
			WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
			WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0);
 | 
			
		||||
 | 
			
		||||
			WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
			WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
			WM_keymap_add_item(keymap, OP_BEND, WKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
			WM_keymap_add_item(keymap, OP_TOSPHERE, SKEY, KM_PRESS, KM_ALT | KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
			WM_keymap_add_item(keymap, OP_SHEAR, SKEY, KM_PRESS, KM_ALT | KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
			kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_create_orientation", SPACEKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
			RNA_boolean_set(kmi->ptr, "use", true);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
			WM_keymap_add_item(keymap, OP_MIRROR, MKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
			kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
			RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_snap");
 | 
			
		||||
 | 
			
		||||
			WM_keymap_add_panel(keymap, "VIEW3D_PT_snapping", TABKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
			/* Will fall-through to texture-space transform. */
 | 
			
		||||
			kmi = WM_keymap_add_item(keymap, "OBJECT_OT_transform_axis_target", TKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
			kmi = WM_keymap_add_item(keymap, OP_TRANSLATION, TKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
			RNA_boolean_set(kmi->ptr, "texture_space", true);
 | 
			
		||||
 | 
			
		||||
			kmi = WM_keymap_add_item(keymap, OP_RESIZE, TKEY, KM_PRESS, KM_SHIFT | KM_ALT, 0);
 | 
			
		||||
			RNA_boolean_set(kmi->ptr, "texture_space", true);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
			WM_keymap_add_item(keymap, OP_SKIN_RESIZE, AKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
			break;
 | 
			
		||||
		case SPACE_ACTION:
 | 
			
		||||
			kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", GKEY, KM_PRESS, 0, 0);
 | 
			
		||||
			RNA_enum_set(kmi->ptr, "mode", TFM_TIME_TRANSLATE);
 | 
			
		||||
 | 
			
		||||
			kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EVT_TWEAK_S, KM_ANY, 0, 0);
 | 
			
		||||
			RNA_enum_set(kmi->ptr, "mode", TFM_TIME_TRANSLATE);
 | 
			
		||||
 | 
			
		||||
			kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0);
 | 
			
		||||
			RNA_enum_set(kmi->ptr, "mode", TFM_TIME_EXTEND);
 | 
			
		||||
 | 
			
		||||
			kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, 0, 0);
 | 
			
		||||
			RNA_enum_set(kmi->ptr, "mode", TFM_TIME_SCALE);
 | 
			
		||||
 | 
			
		||||
			kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", TKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
			RNA_enum_set(kmi->ptr, "mode", TFM_TIME_SLIDE);
 | 
			
		||||
			break;
 | 
			
		||||
		case SPACE_IPO:
 | 
			
		||||
			WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
			WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0);
 | 
			
		||||
 | 
			
		||||
			kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0);
 | 
			
		||||
			RNA_enum_set(kmi->ptr, "mode", TFM_TIME_EXTEND);
 | 
			
		||||
 | 
			
		||||
			WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
			WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0);
 | 
			
		||||
			break;
 | 
			
		||||
		case SPACE_NLA:
 | 
			
		||||
			kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", GKEY, KM_PRESS, 0, 0);
 | 
			
		||||
			RNA_enum_set(kmi->ptr, "mode", TFM_TRANSLATION);
 | 
			
		||||
 | 
			
		||||
			kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EVT_TWEAK_S, KM_ANY, 0, 0);
 | 
			
		||||
			RNA_enum_set(kmi->ptr, "mode", TFM_TRANSLATION);
 | 
			
		||||
 | 
			
		||||
			kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0);
 | 
			
		||||
			RNA_enum_set(kmi->ptr, "mode", TFM_TIME_EXTEND);
 | 
			
		||||
 | 
			
		||||
			kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, 0, 0);
 | 
			
		||||
			RNA_enum_set(kmi->ptr, "mode", TFM_TIME_SCALE);
 | 
			
		||||
			break;
 | 
			
		||||
		case SPACE_NODE:
 | 
			
		||||
			WM_keymap_add_item(keymap, "NODE_OT_translate_attach", GKEY, KM_PRESS, 0, 0);
 | 
			
		||||
			WM_keymap_add_item(keymap, "NODE_OT_translate_attach", EVT_TWEAK_A, KM_ANY, 0, 0);
 | 
			
		||||
			WM_keymap_add_item(keymap, "NODE_OT_translate_attach", EVT_TWEAK_S, KM_ANY, 0, 0);
 | 
			
		||||
			/* NB: small trick: macro operator poll may fail due to library data edit,
 | 
			
		||||
			 * in that case the secondary regular operators are called with same keymap.
 | 
			
		||||
			 */
 | 
			
		||||
			kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", GKEY, KM_PRESS, 0, 0);
 | 
			
		||||
			RNA_boolean_set(kmi->ptr, "release_confirm", true);
 | 
			
		||||
			kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", EVT_TWEAK_A, KM_ANY, 0, 0);
 | 
			
		||||
			RNA_boolean_set(kmi->ptr, "release_confirm", true);
 | 
			
		||||
			kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", EVT_TWEAK_S, KM_ANY, 0, 0);
 | 
			
		||||
			RNA_boolean_set(kmi->ptr, "release_confirm", true);
 | 
			
		||||
 | 
			
		||||
			WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
			WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
			/* detach and translate */
 | 
			
		||||
			WM_keymap_add_item(keymap, "NODE_OT_move_detach_links", DKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
			/* XXX release_confirm is set in the macro operator definition */
 | 
			
		||||
			WM_keymap_add_item(keymap, "NODE_OT_move_detach_links_release", EVT_TWEAK_A, KM_ANY, KM_ALT, 0);
 | 
			
		||||
			WM_keymap_add_item(keymap, "NODE_OT_move_detach_links", EVT_TWEAK_S, KM_ANY, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
			kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
			RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_snap");
 | 
			
		||||
			kmi = WM_keymap_add_item(keymap, "WM_OT_context_menu_enum", TABKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
			RNA_string_set(kmi->ptr, "data_path", "tool_settings.snap_node_element");
 | 
			
		||||
			break;
 | 
			
		||||
		case SPACE_SEQ:
 | 
			
		||||
			WM_keymap_add_item(keymap, OP_SEQ_SLIDE, GKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
			WM_keymap_add_item(keymap, OP_SEQ_SLIDE, EVT_TWEAK_S, KM_ANY, 0, 0);
 | 
			
		||||
 | 
			
		||||
			kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0);
 | 
			
		||||
			RNA_enum_set(kmi->ptr, "mode", TFM_TIME_EXTEND);
 | 
			
		||||
			break;
 | 
			
		||||
		case SPACE_IMAGE:
 | 
			
		||||
			WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
			WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0);
 | 
			
		||||
 | 
			
		||||
			WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
			WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
			WM_keymap_add_item(keymap, OP_SHEAR, SKEY, KM_PRESS, KM_ALT | KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
			WM_keymap_add_item(keymap, "TRANSFORM_OT_mirror", MKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
			kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
			RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_snap");
 | 
			
		||||
 | 
			
		||||
			kmi = WM_keymap_add_item(keymap, "WM_OT_context_menu_enum", TABKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
			RNA_string_set(kmi->ptr, "data_path", "tool_settings.snap_uv_element");
 | 
			
		||||
			break;
 | 
			
		||||
		case SPACE_CLIP:
 | 
			
		||||
			WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0);
 | 
			
		||||
			WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0);
 | 
			
		||||
			WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0);
 | 
			
		||||
			WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0);
 | 
			
		||||
			break;
 | 
			
		||||
		default:
 | 
			
		||||
			break;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -43,7 +43,6 @@ set(SRC
 | 
			
		||||
	ed_transverts.c
 | 
			
		||||
	ed_util.c
 | 
			
		||||
	gizmo_utils.c
 | 
			
		||||
	keymap_templates.c
 | 
			
		||||
	numinput.c
 | 
			
		||||
	select_utils.c
 | 
			
		||||
 | 
			
		||||
@@ -65,7 +64,6 @@ set(SRC
 | 
			
		||||
	../include/ED_keyframes_draw.h
 | 
			
		||||
	../include/ED_keyframes_edit.h
 | 
			
		||||
	../include/ED_keyframing.h
 | 
			
		||||
	../include/ED_keymap_templates.h
 | 
			
		||||
	../include/ED_lattice.h
 | 
			
		||||
	../include/ED_logic.h
 | 
			
		||||
	../include/ED_markers.h
 | 
			
		||||
 
 | 
			
		||||
@@ -79,7 +79,6 @@
 | 
			
		||||
#include "ED_object.h"
 | 
			
		||||
#include "ED_screen.h"
 | 
			
		||||
#include "ED_select_utils.h"
 | 
			
		||||
#include "ED_keymap_templates.h"
 | 
			
		||||
#include "ED_transform.h"
 | 
			
		||||
 | 
			
		||||
#include "RNA_access.h"
 | 
			
		||||
@@ -4697,107 +4696,9 @@ void ED_operatortypes_uvedit(void)
 | 
			
		||||
void ED_keymap_uvedit(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap;
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	keymap = WM_keymap_ensure(keyconf, "UV Editor", 0, 0);
 | 
			
		||||
	keymap->poll = ED_operator_uvedit_can_uv_sculpt;
 | 
			
		||||
 | 
			
		||||
	/* cursor */
 | 
			
		||||
	WM_keymap_add_item(keymap, "UV_OT_cursor_set", ACTIONMOUSE, KM_CLICK, 0, 0);
 | 
			
		||||
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	/* Uv sculpt toggle */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", QKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_uv_sculpt");
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	/* Select Element (Sync Select: on) */
 | 
			
		||||
	ED_keymap_editmesh_elem_mode(keyconf, keymap);
 | 
			
		||||
	/* Hack to prevent fall-through, when the button isn't visible. */
 | 
			
		||||
	WM_keymap_add_item(keymap, "MESH_OT_select_mode", FOURKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	/* Select Element (Sync Select: off) */
 | 
			
		||||
	WM_keymap_add_context_enum_set_items(
 | 
			
		||||
	        keymap, rna_enum_mesh_select_mode_uv_items, "tool_settings.uv_select_mode",
 | 
			
		||||
	        ONEKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* Mark edge seam */
 | 
			
		||||
	WM_keymap_add_item(keymap, "UV_OT_mark_seam", EKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	/* pick selection */
 | 
			
		||||
	RNA_boolean_set(WM_keymap_add_item(keymap, "UV_OT_select", SELECTMOUSE, KM_PRESS, 0, 0)->ptr, "extend", false);
 | 
			
		||||
	RNA_boolean_set(WM_keymap_add_item(keymap, "UV_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "extend", true);
 | 
			
		||||
	RNA_boolean_set(WM_keymap_add_item(keymap, "UV_OT_select_loop", SELECTMOUSE, KM_PRESS, KM_ALT, 0)->ptr, "extend", false);
 | 
			
		||||
	RNA_boolean_set(WM_keymap_add_item(keymap, "UV_OT_select_loop", SELECTMOUSE, KM_PRESS, KM_SHIFT | KM_ALT, 0)->ptr, "extend", true);
 | 
			
		||||
	WM_keymap_add_item(keymap, "UV_OT_select_split", YKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* box/circle selection */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "UV_OT_select_box", BKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "pinned", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "UV_OT_select_box", BKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "pinned", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "UV_OT_select_circle", CKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "UV_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "UV_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", true);
 | 
			
		||||
 | 
			
		||||
	/* selection manipulation */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "UV_OT_select_linked", LKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "UV_OT_select_linked_pick", LKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", true);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "UV_OT_select_linked", LKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", true);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "UV_OT_select_linked_pick", LKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "extend", false);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "deselect", true);
 | 
			
		||||
 | 
			
		||||
	/* select more/less */
 | 
			
		||||
	WM_keymap_add_item(keymap, "UV_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "UV_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	ED_keymap_template_select_all(keymap, "UV_OT_select_all");
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "UV_OT_select_pinned", PKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_menu(keymap, "IMAGE_MT_uvs_weldalign", WKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
 | 
			
		||||
	/* uv operations */
 | 
			
		||||
	WM_keymap_add_item(keymap, "UV_OT_stitch", VKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "UV_OT_pin", PKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "clear", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "UV_OT_pin", PKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "clear", true);
 | 
			
		||||
 | 
			
		||||
	/* unwrap */
 | 
			
		||||
	WM_keymap_add_item(keymap, "UV_OT_unwrap", UKEY, KM_PRESS, 0, 0);
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_add_item(keymap, "UV_OT_minimize_stretch", VKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "UV_OT_pack_islands", PKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "UV_OT_average_islands_scale", AKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	/* hide */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "UV_OT_hide", HKEY, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", false);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "UV_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "unselected", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "UV_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	/* menus */
 | 
			
		||||
	WM_keymap_add_menu_pie(keymap, "IMAGE_MT_uvs_snap_pie", SKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	WM_keymap_add_menu(keymap, "IMAGE_MT_uvs_select_mode", TABKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	ED_keymap_proportional_cycle(keyconf, keymap);
 | 
			
		||||
	ED_keymap_proportional_editmode(keyconf, keymap, false);
 | 
			
		||||
 | 
			
		||||
	transform_keymap_for_space(keyconf, keymap, SPACE_IMAGE);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/** \} */
 | 
			
		||||
 
 | 
			
		||||
@@ -100,6 +100,8 @@ void WM_keymap_add_context_enum_set_items(
 | 
			
		||||
 | 
			
		||||
wmKeyMap *WM_keymap_guess_opname(const struct bContext *C, const char *opname);
 | 
			
		||||
 | 
			
		||||
void WM_keymap_fix_linking(void);
 | 
			
		||||
 | 
			
		||||
/* Modal Keymap */
 | 
			
		||||
 | 
			
		||||
int WM_modalkeymap_items_to_string(
 | 
			
		||||
 
 | 
			
		||||
@@ -357,4 +357,8 @@ wmKeyMap *WM_keymap_guess_opname(const bContext *C, const char *opname)
 | 
			
		||||
	return km;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void WM_keymap_fix_linking(void)
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/** \} */
 | 
			
		||||
 
 | 
			
		||||
@@ -3214,31 +3214,6 @@ static void gesture_circle_modal_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
 | 
			
		||||
	keymap = WM_modalkeymap_add(keyconf, "View3D Gesture Circle", modal_items);
 | 
			
		||||
 | 
			
		||||
	/* items for modal map */
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, ESCKEY,    KM_PRESS, KM_ANY, 0, GESTURE_MODAL_CANCEL);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_ANY, KM_ANY, 0, GESTURE_MODAL_CANCEL);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RETKEY, KM_PRESS, KM_ANY, 0, GESTURE_MODAL_CONFIRM);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, PADENTER, KM_PRESS, 0, 0, GESTURE_MODAL_CONFIRM);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_PRESS, 0, 0, GESTURE_MODAL_SELECT);
 | 
			
		||||
 | 
			
		||||
	/* Note: use 'KM_ANY' for release, so the circle exits on any mouse release,
 | 
			
		||||
	 * this is needed when circle select is activated as a tool. */
 | 
			
		||||
 | 
			
		||||
	/* left mouse shift for deselect too */
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_PRESS, KM_SHIFT, 0, GESTURE_MODAL_DESELECT);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_RELEASE, KM_ANY, 0, GESTURE_MODAL_NOP);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_PRESS, 0, 0, GESTURE_MODAL_DESELECT); //  default 2.4x
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_RELEASE, KM_ANY, 0, GESTURE_MODAL_NOP); //  default 2.4x
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, WHEELUPMOUSE, KM_PRESS, 0, 0, GESTURE_MODAL_CIRCLE_SUB);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, PADMINUS, KM_PRESS, 0, 0, GESTURE_MODAL_CIRCLE_SUB);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, WHEELDOWNMOUSE, KM_PRESS, 0, 0, GESTURE_MODAL_CIRCLE_ADD);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, PADPLUSKEY, KM_PRESS, 0, 0, GESTURE_MODAL_CIRCLE_ADD);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, MOUSEPAN, 0, 0, 0, GESTURE_MODAL_CIRCLE_SIZE);
 | 
			
		||||
 | 
			
		||||
	/* assign map to operators */
 | 
			
		||||
	WM_modalkeymap_assign(keymap, "VIEW3D_OT_select_circle");
 | 
			
		||||
	WM_modalkeymap_assign(keymap, "UV_OT_select_circle");
 | 
			
		||||
@@ -3248,7 +3223,6 @@ static void gesture_circle_modal_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
	WM_modalkeymap_assign(keymap, "GPENCIL_OT_select_circle");
 | 
			
		||||
	WM_modalkeymap_assign(keymap, "GRAPH_OT_select_circle");
 | 
			
		||||
	WM_modalkeymap_assign(keymap, "ACTION_OT_select_circle");
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* straight line modal operators */
 | 
			
		||||
@@ -3268,13 +3242,6 @@ static void gesture_straightline_modal_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
 | 
			
		||||
	keymap = WM_modalkeymap_add(keyconf, "Gesture Straight Line", modal_items);
 | 
			
		||||
 | 
			
		||||
	/* items for modal map */
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, ESCKEY,    KM_PRESS, KM_ANY, 0, GESTURE_MODAL_CANCEL);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_ANY, KM_ANY, 0, GESTURE_MODAL_CANCEL);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_PRESS, 0, 0, GESTURE_MODAL_BEGIN);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_RELEASE, KM_ANY, 0, GESTURE_MODAL_SELECT);
 | 
			
		||||
 | 
			
		||||
	/* assign map to operators */
 | 
			
		||||
	WM_modalkeymap_assign(keymap, "IMAGE_OT_sample_line");
 | 
			
		||||
	WM_modalkeymap_assign(keymap, "PAINT_OT_weight_gradient");
 | 
			
		||||
@@ -3300,24 +3267,6 @@ static void gesture_box_modal_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
 | 
			
		||||
	keymap = WM_modalkeymap_add(keyconf, "Gesture Box", modal_items);
 | 
			
		||||
 | 
			
		||||
	/* items for modal map */
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, ESCKEY,    KM_PRESS, KM_ANY, 0, GESTURE_MODAL_CANCEL);
 | 
			
		||||
 | 
			
		||||
	/* Note: cancel only on press otherwise you cannot map this to RMB-gesture */
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_PRESS, KM_ANY, 0, GESTURE_MODAL_CANCEL);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_RELEASE, KM_ANY, 0, GESTURE_MODAL_SELECT);
 | 
			
		||||
 | 
			
		||||
	/* allow shift leftclick for deselect too */
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_PRESS, KM_SHIFT, 0, GESTURE_MODAL_BEGIN);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_RELEASE, KM_SHIFT, 0, GESTURE_MODAL_DESELECT);
 | 
			
		||||
 | 
			
		||||
	/* any unhandled leftclick release handles select */
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_PRESS, 0, 0, GESTURE_MODAL_BEGIN);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_RELEASE, KM_ANY, 0, GESTURE_MODAL_SELECT);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_PRESS, 0, 0, GESTURE_MODAL_BEGIN);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_RELEASE, 0, 0, GESTURE_MODAL_DESELECT);
 | 
			
		||||
 | 
			
		||||
	/* assign map to operators */
 | 
			
		||||
	WM_modalkeymap_assign(keymap, "ACTION_OT_select_box");
 | 
			
		||||
	WM_modalkeymap_assign(keymap, "ANIM_OT_channels_select_box");
 | 
			
		||||
@@ -3366,16 +3315,6 @@ static void gesture_zoom_border_modal_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
 | 
			
		||||
	keymap = WM_modalkeymap_add(keyconf, "Gesture Zoom Border", modal_items);
 | 
			
		||||
 | 
			
		||||
	/* items for modal map */
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, ESCKEY,    KM_PRESS, KM_ANY, 0, GESTURE_MODAL_CANCEL);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_ANY, KM_ANY, 0, GESTURE_MODAL_CANCEL);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_PRESS, 0, 0, GESTURE_MODAL_BEGIN);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_RELEASE, 0, 0, GESTURE_MODAL_IN);
 | 
			
		||||
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_PRESS, 0, 0, GESTURE_MODAL_BEGIN);
 | 
			
		||||
	WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_RELEASE, 0, 0, GESTURE_MODAL_OUT);
 | 
			
		||||
 | 
			
		||||
	/* assign map to operators */
 | 
			
		||||
	WM_modalkeymap_assign(keymap, "VIEW2D_OT_zoom_border");
 | 
			
		||||
	WM_modalkeymap_assign(keymap, "VIEW3D_OT_zoom_border");
 | 
			
		||||
@@ -3385,142 +3324,15 @@ static void gesture_zoom_border_modal_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
/* default keymap for windows and screens, only call once per WM */
 | 
			
		||||
void wm_window_keymap(wmKeyConfig *keyconf)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Window", 0, 0);
 | 
			
		||||
	wmKeyMapItem *kmi;
 | 
			
		||||
 | 
			
		||||
	/* note, this doesn't replace existing keymap items */
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_verify_item(keymap, "WM_OT_window_new", WKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef __APPLE__
 | 
			
		||||
	WM_keymap_add_item(keymap, "WM_OT_read_homefile", NKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
	WM_keymap_add_menu(keymap, "TOPBAR_MT_file_open_recent", OKEY, KM_PRESS, KM_SHIFT | KM_OSKEY, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "WM_OT_open_mainfile", OKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "WM_OT_save_mainfile", SKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "WM_OT_save_as_mainfile", SKEY, KM_PRESS, KM_SHIFT | KM_OSKEY, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "WM_OT_quit_blender", QKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
#endif
 | 
			
		||||
	WM_keymap_add_item(keymap, "WM_OT_read_homefile", NKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_add_item(keymap, "WM_OT_save_homefile", UKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
#endif
 | 
			
		||||
	WM_keymap_add_menu(keymap, "TOPBAR_MT_file_open_recent", OKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "WM_OT_open_mainfile", OKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_add_item(keymap, "WM_OT_open_mainfile", F1KEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "WM_OT_link", OKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "WM_OT_append", F1KEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "WM_OT_save_mainfile", SKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_add_item(keymap, "WM_OT_save_mainfile", WKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
#endif
 | 
			
		||||
	WM_keymap_add_item(keymap, "WM_OT_save_as_mainfile", SKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_add_item(keymap, "WM_OT_save_as_mainfile", F2KEY, KM_PRESS, 0, 0);
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_save_as_mainfile", SKEY, KM_PRESS, KM_ALT | KM_CTRL, 0);
 | 
			
		||||
	RNA_boolean_set(kmi->ptr, "copy", true);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_verify_item(keymap, "WM_OT_window_fullscreen_toggle", F11KEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "WM_OT_quit_blender", QKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
	/* F-Keys are a hassle on some macos systems. */
 | 
			
		||||
#ifdef __APPLE__
 | 
			
		||||
	WM_keymap_add_item(keymap, "WM_OT_search_menu", FKEY, KM_PRESS, KM_OSKEY, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef USE_WM_KEYMAP_27X
 | 
			
		||||
	WM_keymap_add_item(keymap, "WM_OT_doc_view_manual_ui_context", F1KEY, KM_PRESS, KM_ALT, 0);
 | 
			
		||||
 | 
			
		||||
	/* debug/testing */
 | 
			
		||||
	WM_keymap_verify_item(keymap, "WM_OT_redraw_timer", TKEY, KM_PRESS, KM_ALT | KM_CTRL, 0);
 | 
			
		||||
	WM_keymap_verify_item(keymap, "WM_OT_debug_menu", DKEY, KM_PRESS, KM_ALT | KM_CTRL, 0);
 | 
			
		||||
#else
 | 
			
		||||
	WM_keymap_add_item(keymap, "WM_OT_doc_view_manual_ui_context", F1KEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_menu(keymap, "TOPBAR_MT_file_specials", F2KEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_item(keymap, "WM_OT_search_menu", F3KEY, KM_PRESS, 0, 0);
 | 
			
		||||
	WM_keymap_add_menu(keymap, "TOPBAR_MT_window_specials", F4KEY, KM_PRESS, 0, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	/* menus that can be accessed anywhere in blender */
 | 
			
		||||
	WM_keymap_add_menu(keymap, "SCREEN_MT_user_menu", QKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
#ifdef WITH_INPUT_NDOF
 | 
			
		||||
	WM_keymap_add_menu(keymap, "USERPREF_MT_ndof_settings", NDOF_BUTTON_MENU, KM_PRESS, 0, 0);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	WM_keymap_add_item(keymap, "WM_OT_toolbar", SPACEKEY, KM_PRESS, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* Space switching */
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F3KEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "area.type");
 | 
			
		||||
	RNA_string_set(kmi->ptr, "value", "NODE_EDITOR");
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F4KEY, KM_PRESS, KM_SHIFT, 0); /* new in 2.5x, was data browser */
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "area.type");
 | 
			
		||||
	RNA_string_set(kmi->ptr, "value", "CONSOLE");
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F5KEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "area.type");
 | 
			
		||||
	RNA_string_set(kmi->ptr, "value", "VIEW_3D");
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F6KEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "area.type");
 | 
			
		||||
	RNA_string_set(kmi->ptr, "value", "GRAPH_EDITOR");
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F7KEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "area.type");
 | 
			
		||||
	RNA_string_set(kmi->ptr, "value", "PROPERTIES");
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F8KEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "area.type");
 | 
			
		||||
	RNA_string_set(kmi->ptr, "value", "SEQUENCE_EDITOR");
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F9KEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "area.type");
 | 
			
		||||
	RNA_string_set(kmi->ptr, "value", "OUTLINER");
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F10KEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "area.type");
 | 
			
		||||
	RNA_string_set(kmi->ptr, "value", "IMAGE_EDITOR");
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F11KEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "area.type");
 | 
			
		||||
	RNA_string_set(kmi->ptr, "value", "TEXT_EDITOR");
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F12KEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", "area.type");
 | 
			
		||||
	RNA_string_set(kmi->ptr, "value", "DOPESHEET_EDITOR");
 | 
			
		||||
 | 
			
		||||
#ifdef WITH_INPUT_NDOF
 | 
			
		||||
	/* ndof speed */
 | 
			
		||||
	const char *data_path = "user_preferences.inputs.ndof_sensitivity";
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_scale_float", NDOF_BUTTON_PLUS, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", data_path);
 | 
			
		||||
	RNA_float_set(kmi->ptr, "value", 1.1f);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_scale_float", NDOF_BUTTON_MINUS, KM_PRESS, 0, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", data_path);
 | 
			
		||||
	RNA_float_set(kmi->ptr, "value", 1.0f / 1.1f);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_scale_float", NDOF_BUTTON_PLUS, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", data_path);
 | 
			
		||||
	RNA_float_set(kmi->ptr, "value", 1.5f);
 | 
			
		||||
 | 
			
		||||
	kmi = WM_keymap_add_item(keymap, "WM_OT_context_scale_float", NDOF_BUTTON_MINUS, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
	RNA_string_set(kmi->ptr, "data_path", data_path);
 | 
			
		||||
	RNA_float_set(kmi->ptr, "value", 1.0f / 1.5f);
 | 
			
		||||
#endif /* WITH_INPUT_NDOF */
 | 
			
		||||
	WM_keymap_ensure(keyconf, "Window", 0, 0);
 | 
			
		||||
 | 
			
		||||
	wm_gizmos_keymap(keyconf);
 | 
			
		||||
	gesture_circle_modal_keymap(keyconf);
 | 
			
		||||
	gesture_box_modal_keymap(keyconf);
 | 
			
		||||
	gesture_zoom_border_modal_keymap(keyconf);
 | 
			
		||||
	gesture_straightline_modal_keymap(keyconf);
 | 
			
		||||
 | 
			
		||||
	WM_keymap_fix_linking();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user