[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28123] trunk/blender/source/blender/ editors/interface/interface_panel.c: Long outstanding panel feature: press ENTER with mouse on header will

Ton Roosendaal ton at blender.org
Sun Apr 11 13:52:40 CEST 2010


Revision: 28123
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28123
Author:   ton
Date:     2010-04-11 13:52:39 +0200 (Sun, 11 Apr 2010)

Log Message:
-----------
Long outstanding panel feature: press ENTER with mouse on header will
open/close it. Will allow quicker inspections without mouse strains.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/interface/interface_panel.c

Modified: trunk/blender/source/blender/editors/interface/interface_panel.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_panel.c	2010-04-11 11:19:30 UTC (rev 28122)
+++ trunk/blender/source/blender/editors/interface/interface_panel.c	2010-04-11 11:52:39 UTC (rev 28123)
@@ -956,7 +956,7 @@
 
 /* this function is supposed to call general window drawing too */
 /* also it supposes a block has panel, and isnt a menu */
-static void ui_handle_panel_header(const bContext *C, uiBlock *block, int mx, int my)
+static void ui_handle_panel_header(const bContext *C, uiBlock *block, int mx, int my, int event)
 {
 	ScrArea *sa= CTX_wm_area(C);
 	ARegion *ar= CTX_wm_region(C);
@@ -968,7 +968,9 @@
 	/* XXX weak code, currently it assumes layout style for location of widgets */
 	
 	/* check open/collapsed button */
-	if(block->panel->flag & PNL_CLOSEDX) {
+	if(event==RETKEY)
+		button= 1;
+	else if(block->panel->flag & PNL_CLOSEDX) {
 		if(my >= block->maxy) button= 1;
 	}
 	else if(block->panel->control & UI_PNL_CLOSE) {
@@ -1021,6 +1023,7 @@
 	}
 }
 
+/* XXX should become modal keymap */
 int ui_handler_panel_region(bContext *C, wmEvent *event)
 {
 	ARegion *ar= CTX_wm_region(C);
@@ -1068,11 +1071,18 @@
 			}
 
 			if(event->val==KM_PRESS) {
-				if(event->type == LEFTMOUSE) {
+				/* open close on header */
+				if(ELEM(event->type, RETKEY, PADENTER)) {
 					if(inside_header) {
-						ui_handle_panel_header(C, block, mx, my);
+						ui_handle_panel_header(C, block, mx, my, RETKEY);
 						break;
 					}
+				}
+				else if(event->type == LEFTMOUSE) {
+					if(inside_header) {
+						ui_handle_panel_header(C, block, mx, my, 0);
+						break;
+					}
 					else if(inside_scale && !(pa->flag & PNL_CLOSED)) {
 						panel_activate_state(C, pa, PANEL_STATE_DRAG_SCALE);
 						break;





More information about the Bf-blender-cvs mailing list