[Bf-blender-cvs] [d0c7709] wiggly-widgets: Only show widget select keymap items for widget groups with selectable widgets

Julian Eisel noreply at git.blender.org
Sat Feb 20 19:58:10 CET 2016


Commit: d0c770985c20d9df105b016d79ec533a01174720
Author: Julian Eisel
Date:   Sat Feb 20 19:56:06 2016 +0100
Branches: wiggly-widgets
https://developer.blender.org/rBd0c770985c20d9df105b016d79ec533a01174720

Only show widget select keymap items for widget groups with selectable widgets

===================================================================

M	source/blender/editors/space_view3d/space_view3d.c
M	source/blender/windowmanager/widgets/WM_widget_api.h
M	source/blender/windowmanager/widgets/intern/wm_widgetgroup.c

===================================================================

diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c
index dfc8e41..27ec6a7 100644
--- a/source/blender/editors/space_view3d/space_view3d.c
+++ b/source/blender/editors/space_view3d/space_view3d.c
@@ -747,7 +747,7 @@ static void view3d_widgets(void)
 	        NULL, wmaptype,
 	        WIDGETGROUP_armature_facemaps_poll,
 	        WIDGETGROUP_armature_facemaps_create,
-	        WM_widgetgroup_keymap_common,
+	        WM_widgetgroup_keymap_common_sel,
 	        "Face Map Widgets");
 	WM_widgetgrouptype_register_ptr(
 	        NULL, wmaptype,
diff --git a/source/blender/windowmanager/widgets/WM_widget_api.h b/source/blender/windowmanager/widgets/WM_widget_api.h
index f722598..7639d38 100644
--- a/source/blender/windowmanager/widgets/WM_widget_api.h
+++ b/source/blender/windowmanager/widgets/WM_widget_api.h
@@ -90,7 +90,10 @@ void WM_widgetgrouptype_init_runtime(
         struct wmWidgetGroupType *wgrouptype);
 void WM_widgetgrouptype_unregister(struct bContext *C, struct Main *bmain, struct wmWidgetGroupType *wgroup);
 
-struct wmKeyMap *WM_widgetgroup_keymap_common(const struct wmWidgetGroupType *wgrouptype, struct wmKeyConfig *config);
+struct wmKeyMap *WM_widgetgroup_keymap_common(
+        const struct wmWidgetGroupType *wgrouptype, struct wmKeyConfig *config);
+struct wmKeyMap *WM_widgetgroup_keymap_common_sel(
+        const struct wmWidgetGroupType *wgrouptype, struct wmKeyConfig *config);
 
 
 /* -------------------------------------------------------------------- */
diff --git a/source/blender/windowmanager/widgets/intern/wm_widgetgroup.c b/source/blender/windowmanager/widgets/intern/wm_widgetgroup.c
index 88ec01f..de8945b 100644
--- a/source/blender/windowmanager/widgets/intern/wm_widgetgroup.c
+++ b/source/blender/windowmanager/widgets/intern/wm_widgetgroup.c
@@ -355,16 +355,27 @@ static wmKeyMap *widgetgroup_tweak_modal_keymap(wmKeyConfig *keyconf, const char
  */
 wmKeyMap *WM_widgetgroup_keymap_common(const struct wmWidgetGroupType *wgrouptype, wmKeyConfig *config)
 {
-	const char *wgroupname = wgrouptype->name;
 	/* Use area and region id since we might have multiple widgets with the same name in different areas/regions */
-	wmKeyMap *km = WM_keymap_find(config, wgroupname, wgrouptype->spaceid, wgrouptype->regionid);
-	wmKeyMapItem *kmi;
+	wmKeyMap *km = WM_keymap_find(config, wgrouptype->name, wgrouptype->spaceid, wgrouptype->regionid);
 
 	WM_keymap_add_item(km, "WIDGETGROUP_OT_widget_tweak", ACTIONMOUSE, KM_PRESS, KM_ANY, 0);
+	widgetgroup_tweak_modal_keymap(config, wgrouptype->name);
 
-	widgetgroup_tweak_modal_keymap(config, wgroupname);
+	return km;
+}
+
+/**
+ * Variation of #WM_widgetgroup_keymap_common but with keymap items for selection
+ */
+wmKeyMap *WM_widgetgroup_keymap_common_sel(const struct wmWidgetGroupType *wgrouptype, wmKeyConfig *config)
+{
+	/* Use area and region id since we might have multiple widgets with the same name in different areas/regions */
+	wmKeyMap *km = WM_keymap_find(config, wgrouptype->name, wgrouptype->spaceid, wgrouptype->regionid);
+
+	WM_keymap_add_item(km, "WIDGETGROUP_OT_widget_tweak", ACTIONMOUSE, KM_PRESS, KM_ANY, 0);
+	widgetgroup_tweak_modal_keymap(config, wgrouptype->name);
 
-	kmi = WM_keymap_add_item(km, "WIDGETGROUP_OT_widget_select", SELECTMOUSE, KM_PRESS, 0, 0);
+	wmKeyMapItem *kmi = WM_keymap_add_item(km, "WIDGETGROUP_OT_widget_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);




More information about the Bf-blender-cvs mailing list