Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2009-01-31 19:54:37 +0300
committerTon Roosendaal <ton@blender.org>2009-01-31 19:54:37 +0300
commit59534ac58976515500fc174883d9a6f6d3217d62 (patch)
treef3055a92785103959724588e64c172095202c5a6 /source/blender/windowmanager
parentdb2bb765f9d2a0ea7209cab7a720c1cbbc2c5683 (diff)
2.5
Edit Mesh Added the two other 'select similar' ops, for edge and face. For testing fun I've put these ones as first keys using the modifier order feature. So it's now: SHIFT+G : similar vertex CTRL+SHIFT+G: similar edge SHIFT+CTRL+G: similar face Not very useful here; but I think this can work well to map a double amount of options under mouseclicks. Power user config stuff!
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r--source/blender/windowmanager/intern/wm_event_system.c27
1 files changed, 20 insertions, 7 deletions
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index faa8eda2f17..0da13fa119f 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -496,14 +496,16 @@ static int wm_eventmatch(wmEvent *winevent, wmKeymapItem *kmi)
if(kmi->val!=KM_ANY)
if(winevent->val!=kmi->val) return 0;
+
+ /* modifiers also check bits, so it allows modifier order */
if(kmi->shift!=KM_ANY)
- if(winevent->shift!=kmi->shift) return 0;
+ if(winevent->shift != kmi->shift && !(winevent->shift & kmi->shift)) return 0;
if(kmi->ctrl!=KM_ANY)
- if(winevent->ctrl!=kmi->ctrl) return 0;
+ if(winevent->ctrl != kmi->ctrl && !(winevent->ctrl & kmi->ctrl)) return 0;
if(kmi->alt!=KM_ANY)
- if(winevent->alt!=kmi->alt) return 0;
+ if(winevent->alt != kmi->alt && !(winevent->alt & kmi->alt)) return 0;
if(kmi->oskey!=KM_ANY)
- if(winevent->oskey!=kmi->oskey) return 0;
+ if(winevent->oskey != kmi->oskey && !(winevent->oskey & kmi->oskey)) return 0;
if(kmi->keymodifier)
if(winevent->keymodifier!=kmi->keymodifier) return 0;
@@ -1149,12 +1151,23 @@ void wm_event_add_ghostevent(wmWindow *win, int type, void *customdata)
/* modifiers */
if (event.type==LEFTSHIFTKEY || event.type==RIGHTSHIFTKEY) {
event.shift= evt->shift= event.val;
- } else if (event.type==LEFTCTRLKEY || event.type==RIGHTCTRLKEY) {
+ if(event.val && (evt->ctrl || evt->alt || evt->oskey))
+ event.shift= evt->shift = 3; // define?
+ }
+ else if (event.type==LEFTCTRLKEY || event.type==RIGHTCTRLKEY) {
event.ctrl= evt->ctrl= event.val;
- } else if (event.type==LEFTALTKEY || event.type==RIGHTALTKEY) {
+ if(event.val && (evt->shift || evt->alt || evt->oskey))
+ event.ctrl= evt->ctrl = 3; // define?
+ }
+ else if (event.type==LEFTALTKEY || event.type==RIGHTALTKEY) {
event.alt= evt->alt= event.val;
- } else if (event.type==COMMANDKEY) {
+ if(event.val && (evt->ctrl || evt->shift || evt->oskey))
+ event.alt= evt->alt = 3; // define?
+ }
+ else if (event.type==COMMANDKEY) {
event.oskey= evt->oskey= event.val;
+ if(event.val && (evt->ctrl || evt->alt || evt->shift))
+ event.oskey= evt->oskey = 3; // define?
}
/* if test_break set, it catches this. Keep global for now? */