[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