[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [50498] trunk/blender/source/blender/ editors/interface/interface_regions.c: make alphanumeric key shortcuts work for submenu' s so you can chain keys together to select items in a menu.
Campbell Barton
ideasman42 at gmail.com
Mon Sep 10 08:44:26 CEST 2012
Revision: 50498
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50498
Author: campbellbarton
Date: 2012-09-10 06:44:25 +0000 (Mon, 10 Sep 2012)
Log Message:
-----------
make alphanumeric key shortcuts work for submenu's so you can chain keys together to select items in a menu.
eg: 'Ctrl+V, E, S'
for - Vertex, Separate, Selection
Modified Paths:
--------------
trunk/blender/source/blender/editors/interface/interface_regions.c
Modified: trunk/blender/source/blender/editors/interface/interface_regions.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_regions.c 2012-09-10 06:18:20 UTC (rev 50497)
+++ trunk/blender/source/blender/editors/interface/interface_regions.c 2012-09-10 06:44:25 UTC (rev 50498)
@@ -1648,6 +1648,18 @@
ar->regiondata = handle;
+ /* set UI_BLOCK_NUMSELECT before uiEndBlock() so we get alphanumeric keys assigned */
+ if (but) {
+ if (but->type == PULLDOWN) {
+ block->flag |= UI_BLOCK_NUMSELECT;
+ }
+ }
+ else {
+ block->flag |= UI_BLOCK_POPUP | UI_BLOCK_NUMSELECT;
+ }
+
+ block->flag |= UI_BLOCK_LOOP;
+
if (!block->endblock)
uiEndBlock(C, block);
@@ -1665,7 +1677,6 @@
saferct = MEM_callocN(sizeof(uiSafetyRct), "uiSafetyRct");
saferct->safety = block->safety;
BLI_addhead(&block->saferct, saferct);
- block->flag |= UI_BLOCK_POPUP | UI_BLOCK_NUMSELECT;
}
/* clip block with window boundary */
@@ -1680,8 +1691,6 @@
ar->winrct.ymax = block->rect.ymax + MENU_TOP;
ui_block_translate(block, -ar->winrct.xmin, -ar->winrct.ymin);
-
- block->flag |= UI_BLOCK_LOOP;
/* adds subwindow */
ED_region_init(C, ar);
@@ -2427,6 +2436,7 @@
uiPopupMenu *pup;
pup = MEM_callocN(sizeof(uiPopupMenu), __func__);
pup->block = uiBeginBlock(C, NULL, __func__, UI_EMBOSSP);
+ pup->block->flag |= UI_BLOCK_NUMSELECT; /* default menus to numselect */
pup->layout = uiBlockLayout(pup->block, UI_LAYOUT_VERTICAL, UI_LAYOUT_MENU, 0, 0, 200, 0, style);
pup->slideout = (but && (but->block->flag & UI_BLOCK_LOOP));
pup->but = but;
More information about the Bf-blender-cvs
mailing list