[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12849] trunk/blender/source/blender: for button popups, dont close unless you click or press escape, this would often close when dragging a button value ( or when using a tablet I am told)
Campbell Barton
ideasman42 at gmail.com
Wed Dec 12 00:05:12 CET 2007
Revision: 12849
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12849
Author: campbellbarton
Date: 2007-12-12 00:05:10 +0100 (Wed, 12 Dec 2007)
Log Message:
-----------
for button popups, dont close unless you click or press escape, this would often close when dragging a button value (or when using a tablet I am told)
Modified Paths:
--------------
trunk/blender/source/blender/include/BIF_interface.h
trunk/blender/source/blender/python/api2_2x/Draw.c
trunk/blender/source/blender/src/drawview.c
trunk/blender/source/blender/src/editaction.c
trunk/blender/source/blender/src/editimasel.c
trunk/blender/source/blender/src/editnla.c
trunk/blender/source/blender/src/editnode.c
trunk/blender/source/blender/src/editscreen.c
trunk/blender/source/blender/src/editsound.c
trunk/blender/source/blender/src/edittime.c
trunk/blender/source/blender/src/filesel.c
trunk/blender/source/blender/src/interface.c
trunk/blender/source/blender/src/space.c
trunk/blender/source/blender/src/toolbox.c
Modified: trunk/blender/source/blender/include/BIF_interface.h
===================================================================
--- trunk/blender/source/blender/include/BIF_interface.h 2007-12-11 21:39:31 UTC (rev 12848)
+++ trunk/blender/source/blender/include/BIF_interface.h 2007-12-11 23:05:10 UTC (rev 12849)
@@ -188,7 +188,7 @@
void uiComposeLinks(uiBlock *block);
void uiSetButLock(int val, char *lockstr);
void uiClearButLock(void);
-int uiDoBlocks(struct ListBase *lb, int event);
+int uiDoBlocks(struct ListBase *lb, int event, int movemouse_quit);
void uiSetCurFont(uiBlock *block, int index);
void uiDefFont(unsigned int index, void *xl, void *large, void *medium, void *small);
void uiFreeBlock(uiBlock *block);
Modified: trunk/blender/source/blender/python/api2_2x/Draw.c
===================================================================
--- trunk/blender/source/blender/python/api2_2x/Draw.c 2007-12-11 21:39:31 UTC (rev 12848)
+++ trunk/blender/source/blender/python/api2_2x/Draw.c 2007-12-11 23:05:10 UTC (rev 12849)
@@ -730,7 +730,7 @@
if (val) {
- if (uiDoBlocks( &curarea->uiblocks, event ) != UI_NOTHING) event = 0;
+ if (uiDoBlocks( &curarea->uiblocks, event, 1 ) != UI_NOTHING) event = 0;
if (event == UI_BUT_EVENT) {
/* check that event is in free range for script button events;
@@ -1117,7 +1117,7 @@
/* Done clearing events */
uiBoundsBlock(uiblock, 5);
- uiDoBlocks(&listb, 0);
+ uiDoBlocks(&listb, 0, 1);
}
uiFreeBlocks(&listb);
uiblock = NULL;
Modified: trunk/blender/source/blender/src/drawview.c
===================================================================
--- trunk/blender/source/blender/src/drawview.c 2007-12-11 21:39:31 UTC (rev 12848)
+++ trunk/blender/source/blender/src/drawview.c 2007-12-11 23:05:10 UTC (rev 12849)
@@ -2807,6 +2807,7 @@
static void draw_viewport_fps(ScrArea *sa);
+
void drawview3dspace(ScrArea *sa, void *spacedata)
{
View3D *v3d= spacedata;
@@ -3288,11 +3289,12 @@
{
float fps;
char printable[16];
- printable[0] = '\0';
+
if (lredrawtime == redrawtime)
return;
+ printable[0] = '\0';
fps = (float)(1.0/(lredrawtime-redrawtime));
/* is this more then half a frame behind? */
Modified: trunk/blender/source/blender/src/editaction.c
===================================================================
--- trunk/blender/source/blender/src/editaction.c 2007-12-11 21:39:31 UTC (rev 12848)
+++ trunk/blender/source/blender/src/editaction.c 2007-12-11 23:05:10 UTC (rev 12849)
@@ -2668,7 +2668,7 @@
data= get_action_context(&datatype);
if (val) {
- if ( uiDoBlocks(&curarea->uiblocks, event)!=UI_NOTHING ) event= 0;
+ if ( uiDoBlocks(&curarea->uiblocks, event, 1)!=UI_NOTHING ) event= 0;
/* swap mouse buttons based on user preference */
if (U.flag & USER_LMOUSESELECT) {
Modified: trunk/blender/source/blender/src/editimasel.c
===================================================================
--- trunk/blender/source/blender/src/editimasel.c 2007-12-11 21:39:31 UTC (rev 12848)
+++ trunk/blender/source/blender/src/editimasel.c 2007-12-11 23:05:10 UTC (rev 12849)
@@ -859,7 +859,7 @@
if(val) {
if( event!=RETKEY && event!=PADENTER)
- if( uiDoBlocks(&curarea->uiblocks, event)!=UI_NOTHING ) event= 0;
+ if( uiDoBlocks(&curarea->uiblocks, event, 1)!=UI_NOTHING ) event= 0;
switch(event) {
Modified: trunk/blender/source/blender/src/editnla.c
===================================================================
--- trunk/blender/source/blender/src/editnla.c 2007-12-11 21:39:31 UTC (rev 12848)
+++ trunk/blender/source/blender/src/editnla.c 2007-12-11 23:05:10 UTC (rev 12849)
@@ -1717,7 +1717,7 @@
if (!snla) return;
if(val) {
- if( uiDoBlocks(&curarea->uiblocks, event)!=UI_NOTHING ) event= 0;
+ if( uiDoBlocks(&curarea->uiblocks, event, 1)!=UI_NOTHING ) event= 0;
/* swap mouse buttons based on user preference */
if (U.flag & USER_LMOUSESELECT) {
Modified: trunk/blender/source/blender/src/editnode.c
===================================================================
--- trunk/blender/source/blender/src/editnode.c 2007-12-11 21:39:31 UTC (rev 12848)
+++ trunk/blender/source/blender/src/editnode.c 2007-12-11 23:05:10 UTC (rev 12849)
@@ -2073,7 +2073,7 @@
((struct Link *)block)->next= NULL;
lb->first= lb->last= block;
- retval= uiDoBlocks(lb, event);
+ retval= uiDoBlocks(lb, event, 1);
((struct Link *)block)->prev= prev;
((struct Link *)block)->next= next;
Modified: trunk/blender/source/blender/src/editscreen.c
===================================================================
--- trunk/blender/source/blender/src/editscreen.c 2007-12-11 21:39:31 UTC (rev 12848)
+++ trunk/blender/source/blender/src/editscreen.c 2007-12-11 23:05:10 UTC (rev 12849)
@@ -531,7 +531,7 @@
while(bwin_qread(sa->headwin, &evt)) {
if(evt.val) {
- if( uiDoBlocks(&curarea->uiblocks, evt.event)!=UI_NOTHING ) evt.event= 0;
+ if( uiDoBlocks(&curarea->uiblocks, evt.event, 1)!=UI_NOTHING ) evt.event= 0;
switch(evt.event) {
case UI_BUT_EVENT:
Modified: trunk/blender/source/blender/src/editsound.c
===================================================================
--- trunk/blender/source/blender/src/editsound.c 2007-12-11 21:39:31 UTC (rev 12848)
+++ trunk/blender/source/blender/src/editsound.c 2007-12-11 23:05:10 UTC (rev 12849)
@@ -123,7 +123,7 @@
if(val) {
- if( uiDoBlocks(&curarea->uiblocks, event)!=UI_NOTHING ) event= 0;
+ if( uiDoBlocks(&curarea->uiblocks, event, 1)!=UI_NOTHING ) event= 0;
/* swap mouse buttons based on user preference */
if (U.flag & USER_LMOUSESELECT) {
Modified: trunk/blender/source/blender/src/edittime.c
===================================================================
--- trunk/blender/source/blender/src/edittime.c 2007-12-11 21:39:31 UTC (rev 12848)
+++ trunk/blender/source/blender/src/edittime.c 2007-12-11 23:05:10 UTC (rev 12849)
@@ -836,7 +836,7 @@
if(val) {
- if( uiDoBlocks(&sa->uiblocks, event)!=UI_NOTHING ) event= 0;
+ if( uiDoBlocks(&sa->uiblocks, event, 1)!=UI_NOTHING ) event= 0;
/* swap mouse buttons based on user preference */
if (U.flag & USER_LMOUSESELECT) {
Modified: trunk/blender/source/blender/src/filesel.c
===================================================================
--- trunk/blender/source/blender/src/filesel.c 2007-12-11 21:39:31 UTC (rev 12848)
+++ trunk/blender/source/blender/src/filesel.c 2007-12-11 23:05:10 UTC (rev 12849)
@@ -1812,7 +1812,7 @@
if(val) {
if( event!=RETKEY && event!=PADENTER)
- if( uiDoBlocks(&curarea->uiblocks, event)!=UI_NOTHING ) event= 0;
+ if( uiDoBlocks(&curarea->uiblocks, event, 1)!=UI_NOTHING ) event= 0;
switch(event) {
Modified: trunk/blender/source/blender/src/interface.c
===================================================================
--- trunk/blender/source/blender/src/interface.c 2007-12-11 21:39:31 UTC (rev 12848)
+++ trunk/blender/source/blender/src/interface.c 2007-12-11 23:05:10 UTC (rev 12849)
@@ -1304,7 +1304,7 @@
for(bt= block->buttons.first; bt; bt= bt->next) bt->win= block->win;
bwin_getsinglematrix(block->win, block->winmat);
- event= uiDoBlocks(&listb, 0);
+ event= uiDoBlocks(&listb, 0, 1);
menudata_free(md);
@@ -2351,7 +2351,7 @@
this is needs better implementation */
block->win= G.curscreen->mainwin;
- uiDoBlocks(&listb, 0);
+ uiDoBlocks(&listb, 0, 1);
but->flag &= ~UI_SELECT;
ui_check_but(but);
@@ -2424,7 +2424,7 @@
uiBoundsBlock(block, 3);
- uiDoBlocks(&listb, 0);
+ uiDoBlocks(&listb, 0, 1);
menudata_free(md);
@@ -3302,7 +3302,7 @@
for(bt= block->buttons.first; bt; bt= bt->next) bt->win= block->win;
bwin_getsinglematrix(block->win, block->winmat);
- event= uiDoBlocks(&listb, 0);
+ event= uiDoBlocks(&listb, 0, 1);
if(but->pointype==CHA) ui_set_but_vectorf(but, colstore);
@@ -4306,7 +4306,7 @@
* UI_CONT don't pass event to other ui's
* UI_RETURN something happened, return, swallow event
*/
-static int ui_do_block(uiBlock *block, uiEvent *uevent)
+static int ui_do_block(uiBlock *block, uiEvent *uevent, int movemouse_quit)
{
uiBut *but, *bt;
int butevent, event, retval=UI_NOTHING, count, act=0;
@@ -4793,7 +4793,7 @@
if((uevent->event==RETKEY || uevent->event==PADENTER) && uevent->val==1) return UI_RETURN_OK;
/* check outside */
- if(inside==0) {
+ if(inside==0 && movemouse_quit) {
uiBlock *tblock= NULL;
/* check for all parent rects, enables arrowkeys to be used */
@@ -4935,7 +4935,7 @@
}
/* returns UI_NOTHING, if nothing happened */
-int uiDoBlocks(ListBase *lb, int event)
+int uiDoBlocks(ListBase *lb, int event, int movemouse_quit)
{
/* return when: firstblock != BLOCK_LOOP
*
@@ -4990,7 +4990,7 @@
}
block->in_use= 1; // bit awkward, but now we can detect if frontbuf flush should be set
- retval |= ui_do_block(block, &uevent); /* we 'or' because 2nd loop can return to here, and we we want 'out' to return */
+ retval |= ui_do_block(block, &uevent, movemouse_quit); /* we 'or' because 2nd loop can return to here, and we we want 'out' to return */
block->in_use= 0;
if(retval & UI_EXIT_LOOP) break;
@@ -5034,7 +5034,7 @@
if(uevent.event) {
block->in_use= 1; // bit awkward, but now we can detect if frontbuf flush should be set
- retval= ui_do_block(block, &uevent);
+ retval= ui_do_block(block, &uevent, movemouse_quit);
block->in_use= 0;
if(block->needflush) { // flush (old menu) now, maybe new menu was opened
@@ -6530,7 +6530,7 @@
uiBoundsBlock(block, 1);
- event= uiDoBlocks(&listb, 0);
+ event= uiDoBlocks(&listb, 0, 1);
/* calculate last selected */
if(event & UI_RETURN_OK) {
@@ -6688,7 +6688,7 @@
uiBoundsBlock(block, 1);
- event= uiDoBlocks(&listb, 0);
+ event= uiDoBlocks(&listb, 0, 1);
menudata_free(md);
Modified: trunk/blender/source/blender/src/space.c
===================================================================
--- trunk/blender/source/blender/src/space.c 2007-12-11 21:39:31 UTC (rev 12848)
+++ trunk/blender/source/blender/src/space.c 2007-12-11 23:05:10 UTC (rev 12849)
@@ -1173,7 +1173,7 @@
if(val) {
- if( uiDoBlocks(&curarea->uiblocks, event)!=UI_NOTHING ) event= 0;
+ if( uiDoBlocks(&curarea->uiblocks, event, 1)!=UI_NOTHING ) event= 0;
if(event==UI_BUT_EVENT) do_butspace(val); /* temporal, view3d deserves own queue? */
@@ -2761,7 +2761,7 @@
if(sa->win==0) return;
if(val) {
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list