[Bf-blender-cvs] [42959f0] master: Fix T40759: "Add Shortcut" operator was leaving new keymap items on cancel.
Lukas Tönne
noreply at git.blender.org
Wed Jun 25 17:49:10 CEST 2014
Commit: 42959f05a467028e4b8835e495ceb604eb7ea1d7
Author: Lukas Tönne
Date: Wed Jun 25 17:40:51 2014 +0200
https://developer.blender.org/rB42959f05a467028e4b8835e495ceb604eb7ea1d7
Fix T40759: "Add Shortcut" operator was leaving new keymap items on
cancel.
===================================================================
M source/blender/editors/interface/interface_handlers.c
===================================================================
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index 9189f14..e04fef3 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -5564,6 +5564,18 @@ static uiBlock *menu_add_shortcut(bContext *C, ARegion *ar, void *arg)
return block;
}
+static void menu_add_shortcut_cancel(struct bContext *C, void *arg1)
+{
+ uiBut *but = (uiBut *)arg1;
+ wmKeyMap *km;
+ wmKeyMapItem *kmi;
+ IDProperty *prop = (but->opptr) ? but->opptr->data : NULL;
+ int kmi_id = WM_key_event_operator_id(C, but->optype->idname, but->opcontext, prop, true, &km);
+
+ kmi = WM_keymap_item_find_id(km, kmi_id);
+ WM_keymap_remove_item(km, kmi);
+}
+
static void popup_change_shortcut_func(bContext *C, void *arg1, void *UNUSED(arg2))
{
uiBut *but = (uiBut *)arg1;
@@ -5589,7 +5601,7 @@ static void popup_add_shortcut_func(bContext *C, void *arg1, void *UNUSED(arg2))
{
uiBut *but = (uiBut *)arg1;
button_timers_tooltip_remove(C, but);
- uiPupBlock(C, menu_add_shortcut, but);
+ uiPupBlockEx(C, menu_add_shortcut, NULL, menu_add_shortcut_cancel, but);
}
/**
More information about the Bf-blender-cvs
mailing list