rendered paste bodyIndex: source/blender/python/BPY_extern.h
===================================================================
--- source/blender/python/BPY_extern.h (revision 14019)
+++ source/blender/python/BPY_extern.h (working copy)
@@ -110,7 +110,7 @@
int BPY_add_spacehandler(struct Text *txt, struct ScrArea *sa,char spacetype);
int BPY_has_spacehandler(struct Text *text, struct ScrArea *sa);
void BPY_screen_free_spacehandlers(struct bScreen *sc);
- int BPY_do_spacehandlers(struct ScrArea *sa, unsigned short event,
+ int BPY_do_spacehandlers(struct ScrArea *sa, unsigned short event, short val,
unsigned short space_event);
void BPY_pydriver_update(void);
Index: source/blender/python/BPY_interface.c
===================================================================
--- source/blender/python/BPY_interface.c (revision 14019)
+++ source/blender/python/BPY_interface.c (working copy)
@@ -2438,7 +2438,7 @@
return 0;
}
-int BPY_do_spacehandlers( ScrArea *sa, unsigned short event,
+int BPY_do_spacehandlers( ScrArea *sa, unsigned short event, short val,
unsigned short space_event )
{
ScriptLink *scriptlink;
@@ -2481,6 +2481,8 @@
EXPP_dict_set_item_str(g_blenderdict, "link", PyInt_FromLong(space_event));
/* note: DRAW space_events set event to 0 */
EXPP_dict_set_item_str(g_blenderdict, "event", PyInt_FromLong(event));
+ /* key/mouse down or up? */
+ PyDict_SetItemString(g_blenderdict, "value", val==0 ? Py_False : Py_True);
/* now run all assigned space handlers for this space and space_event */
for( index = 0; index < scriptlink->totscript; index++ ) {
@@ -2538,6 +2540,7 @@
PyDict_SetItemString(g_blenderdict, "bylink", Py_False);
PyDict_SetItemString(g_blenderdict, "link", Py_None );
EXPP_dict_set_item_str(g_blenderdict, "event", PyString_FromString(""));
+ PyDict_SetItemString(g_blenderdict, "value", Py_False);
PyGILState_Release(gilstate);
}
Index: source/blender/src/drawview.c
===================================================================
--- source/blender/src/drawview.c (revision 14019)
+++ source/blender/src/drawview.c (working copy)
@@ -3153,7 +3153,7 @@
/* run any view3d draw handler script links */
if (sa->scriptlink.totscript)
- BPY_do_spacehandlers(sa, 0, SPACEHANDLER_VIEW3D_DRAW);
+ BPY_do_spacehandlers(sa, 0, 0, SPACEHANDLER_VIEW3D_DRAW);
/* run scene redraw script links */
if((G.f & G_DOSCRIPTLINKS) && G.scene->scriptlink.totscript &&
Index: source/blender/src/space.c
===================================================================
--- source/blender/src/space.c (revision 14019)
+++ source/blender/src/space.c (working copy)
@@ -1187,8 +1187,12 @@
if(curarea->win==0) return; /* when it comes from sa->headqread() */
+ /* run any view3d event handler script links */
+ if (event && sa->scriptlink.totscript)
+ if (BPY_do_spacehandlers(sa, event, val, SPACEHANDLER_VIEW3D_EVENT))
+ return; /* return if event was processed (swallowed) by handler(s) */
+
if(val) {
-
if( uiDoBlocks(&curarea->uiblocks, event, 1)!=UI_NOTHING ) event= 0;
if(event==UI_BUT_EVENT) do_butspace(val); /* temporal, view3d deserves own queue? */
@@ -1244,11 +1248,6 @@
}
}
- /* run any view3d event handler script links */
- if (event && sa->scriptlink.totscript)
- if (BPY_do_spacehandlers(sa, event, SPACEHANDLER_VIEW3D_EVENT))
- return; /* return if event was processed (swallowed) by handler(s) */
-
/* TEXTEDITING?? */
if((G.obedit) && G.obedit->type==OB_FONT) {
switch(event) {