[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [21216] branches/blender2.5/blender/source /blender/editors: 2.5
Ton Roosendaal
ton at blender.org
Sun Jun 28 14:30:50 CEST 2009
Revision: 21216
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21216
Author: ton
Date: 2009-06-28 14:30:50 +0200 (Sun, 28 Jun 2009)
Log Message:
-----------
2.5
Menu usage: enabled arrow-key based browsing, especially for open and
close sublevels. Only thing missing is to prevent sublevel to open
on creating menu (like SHIFT+A now), this is design conflict in code.
(It sends fake mouse move events causing it)
Implementation note; the 'auto open sublevel' feature gets triggered
with new state var, that checks if mouse was used or not.
Also: on render in editmode, editmode result gets stored, as usual for 2.4x.
Modified Paths:
--------------
branches/blender2.5/blender/source/blender/editors/interface/interface_handlers.c
branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c
Modified: branches/blender2.5/blender/source/blender/editors/interface/interface_handlers.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/interface_handlers.c 2009-06-28 11:37:45 UTC (rev 21215)
+++ branches/blender2.5/blender/source/blender/editors/interface/interface_handlers.c 2009-06-28 12:30:50 UTC (rev 21216)
@@ -112,6 +112,9 @@
/* tooltip */
ARegion *tooltip;
wmTimer *tooltiptimer;
+
+ /* auto open */
+ int used_mouse;
wmTimer *autoopentimer;
/* text selection/editing */
@@ -3344,7 +3347,7 @@
/* automatic open pulldown block timer */
if(ELEM3(but->type, BLOCK, PULLDOWN, ICONTEXTROW)) {
- if(!data->autoopentimer) {
+ if(data->used_mouse && !data->autoopentimer) {
int time;
if(but->block->auto_open==2) time= 1; // test for toolbox
@@ -3447,6 +3450,9 @@
if(but->block->auto_open_last+BUTTON_AUTO_OPEN_THRESH < PIL_check_seconds_timer())
but->block->auto_open= 0;
+ if(type == BUTTON_ACTIVATE_OVER) {
+ data->used_mouse= 1;
+ }
button_activate_state(C, but, BUTTON_STATE_HIGHLIGHT);
if(type == BUTTON_ACTIVATE_OPEN) {
@@ -3765,12 +3771,19 @@
button_activate_exit(C, data, but, 1);
}
else if(menu->menuretval == UI_RETURN_OUT) {
- if(ui_mouse_inside_button(data->region, but, event->x, event->y)) {
+ if(event->type==MOUSEMOVE && ui_mouse_inside_button(data->region, but, event->x, event->y)) {
button_activate_state(C, but, BUTTON_STATE_HIGHLIGHT);
}
else {
- data->cancel= 1;
- button_activate_exit(C, data, but, 1);
+ but= ui_but_find_activated(data->region);
+ if(but) {
+ but->active->used_mouse= 0;
+ button_activate_state(C, but, BUTTON_STATE_HIGHLIGHT);
+ }
+ else {
+ data->cancel= 1;
+ button_activate_exit(C, data, but, 1);
+ }
}
}
}
Modified: branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c 2009-06-28 11:37:45 UTC (rev 21215)
+++ branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c 2009-06-28 12:30:50 UTC (rev 21216)
@@ -59,6 +59,7 @@
#include "ED_util.h"
#include "ED_screen.h"
#include "ED_mesh.h"
+#include "ED_object.h"
#include "ED_screen_types.h"
#include "RE_pipeline.h"
@@ -2509,7 +2510,9 @@
/* flush multires changes (for sculpt) */
multires_force_update(CTX_data_active_object(C));
- // get editmode results
+ /* get editmode results */
+ ED_object_exit_editmode(C, 0); /* 0 = does not exit editmode */
+
// store spare
// get view3d layer, local layer, make this nice api call to render
// store spare
More information about the Bf-blender-cvs
mailing list