Now we're on the root of the problem. Ghost (OSX) didn't accept rawkeys
for the 1-2-...0 keys on a french keyboard. These have apparently different
symbols on it. (these silly french! :)
This commit intercepts the rawkeys in convertKey() call, and manually
makes sure theyre correctly mapped.
So: now french (spanish, etc) OSX users can finally use layer hotkeys! And
the popup menu shortcuts! :)
Tested & verified by Lukep. Merci!
(excuse me for doing all in a single commit, but they are tiny
fixes and it's bpython, that dark corner ...)
#1025 - FileSelector SEGV on dynamic callback Category:
Can't reproduce with current cvs, I'd say recent changes to fix
another crash related to FileSelector in gui-less scripts solved this
one, too.
#1028 - Reserved button event number:
Menu choices generate two events, one extra related to the menu
itself, with value=4. Made bpython ignore this extra event.
#1068 - FileSelector No file extension support:
As Ton wrote there, Blender itself doesn't support this yet. But the
requester also wanted Window.File/ImageSelector to accept a pathname. Done. Also updated doc.
#959 - Segfault on background rendering:
This happened in bg mode (blender -b filename -a, for example) when
a script with the line "Blender.Redraw()" was linked to FRAMECHANGED events. As reported in the bug page, it was because curarea is NULL in bg mode. Made Redraw() check for this and not call functions that expected curarea in Redraw, like one to swap buffers.
#1072 - Blender.Redraw() Segfault:
Good catch : ). Scripts called from the scripts win that called
Blender.Redraw() or Blender.Window.Redraw() would crash Blender because of a dirty pointer in Spacescript->script. Fixed.
Consider:
gameobj->getClientInfo()->m_auxilary_info = (matname ? (void*)(matname+2) : NULL);
It works if matname is "MAblah", but not if matname is "".
2. Added constructor for struct RAS_CameraData.
3. Added initializers to the struct KX_ClientObjectInfo constructor
4. Collision sensors won't detect near sensors.
5. A stack of minor tweaks, adjusting whitespace, using ++it for stl stuff.
http://projects.blender.org/tracker/index.php?func=detail&aid=1145&group_id=9&atid=125
I changed the fbutton function to give the possibility to control the a1 and a2 parameters of the button.
This commit also fixes two things in the bevel function:
- The numbut didn't do anything because it wasn't recalculating the proper variable
- The display wasn't recalculated when pressing Ctrl or Shift (it's now done by recalculating after every keyboard event. I've done it this way since the event loops seems to skip CTRL and SHIFT events)
When more than 30 scenes are in a scene, the sequencer "Add" option didnt
show a databrowse window.
This was a nasty one, because databrowse facilities are more-of tied to
having a header. The fix is that I added option to IDnames_to_pupstring()
to not limit the menu (by passing NULL for menu short pointer).
Also noticed a bug with pupmenu_col(), which did return on a val==0 event
(mouse release) which shouldn't be, this makes sequences of menus not
possible.
Saving images from UV editing window was confused... initially I thought
it only used the same format as input image, but it did use the same
as F10 buttons specified, sorta. Fixes include:
- BIF_write_ibuf() now uses current Scene renderdata to check for
image type (it checked the global R struct instead, which is only
set correct after render)
- Fileselector now gives correct title in bar (like "SAVE TARGA")
- Pulldown menu in UV window now always gives the "Save" option
- removed the weird usage of BTST() to check for flags, and made it
using the #defines instead for readability
In Mesh editmode, with option "draw faces", hiding 1 vertex of a quad
doesn't always result in not drawing the face. Only 3 out of 4 vertices
were tested.
Under Windows, Quicktime images with a depth < 32 didn't
show up in the sequence editor. To fix this a non transparent layer was added to them. (bf227-bf232)
I now have disabled this trick for GIF images, so the transparency is preserved. But this is a quick fix and
should be replaced by a transparency check function.
When choosing 'International fonts' this variable was not reset
when loading .B.blend again with CTRL+X.
Move the check for this to read_homefile() instead of init() call.
When you use arrow keys to activate items in a menu (like IKEY for Ipos)
the selected items were not correctly choosen when mousepointer was over
an item, only when mousepointer over title.
Fixed by catching 'RETKEY' event in buttons event subloop.
Animated metaballs didn't update correctly when changing frame, this when
they were parented (for example) to an object with Ipo.
The fix consists of three things:
- the test_displist() call doesn't remake displist anymore, but frees it.
this works, because when drawing an mball object it checks for a displist
and creates one when needed
- the main drawing routine drawview3d() now has a separate loop where first
all objects are updated with where_is_object(), then they're drawn.
This effectively solves lag for mballs. Might improve other lags too!
- included in NumPad-9 call to test_displist() too, to force a full upgraded
3d view
Message using a python function of the MessageSensor.
Thats a nice thing if you want complex message handling in one python
script. Just get all messages, check the subject and do what you
want. In the current situation you end up with several MessageSensors
connected to the python script, instead of one Sensor and a smart
script.
Some developer (cant remember who) did implement that function, but
however not the way I wanted (maybe I was not clear enough) ;-) So the
getSubject() function will return whats entered in the "Subject:"
filter field of the MessageSensor. Quite useless IMHO.
So I added a new function getSubjects() which is similar to
getBodies(), in fact I stole the code from there ;-)
I left the getSubject() alone, because of backward compatibility
(never saw someone using that function, but...)
The future:
In conjunction with a wildcard subject: filter field the getSubjects()
function will be even more usefull.
i.e. Player* will filter for PlayerScore, PlayerKill etc.
-- Carsten Wartmann
This was a problem with the BezTriple type.
Write access to BezTriple via 'pt' member did not work.
Preferred method to access BPy type members, especially for
write access, is via get*/set* methods.
BezTriple.setPoints() will accept x,y coordinates as either
a tuple or a list.
Updated BezTriple section of Ipo module doc.
Solved by Styken, thanks dude!
the winqreadtextspace() function wants CTRL/ALT events, but also should
accept special characters that are sometimes behind an ALT on certain
keyboards (like [ ] in sweden).
In the old code all ALT events caused ascii to set on zero. Now it
checks first for ispunct() chars.
Quads in radiositizer got normals calculated using 3 vertices only. this
can go wrong in occasions... and made blender hang.
Used CalcNormFloat4() instead!
This more of a quality issue... changes now are:
- in (ortho) 3d view, changing window aspect keeps zooming
level (it zoomed out with extreme portrait aspect)
- pressing 'home' in 3d window now shows all with extreme aspect ratios too
Logic buttons have not been Panelized (will be difficult, dont try!) so
the 'Home' and automatic view-limits didn't work it anymore.
This caused logic blocks not being accessible by scrolling window.
Fixed by updating the code that sets view limits.
Credits go to blendix! Well done!
Reported were errors in using procedural textures on "Map input" UV type.
It was due to un-initialized uv[2] members, which were actually still
used by texture.c for some coord flip magic.
CTRL+SHIFT+A (apply lattice deform) on a Bezier Curve object was not
implemented yet. Added this.
Little sidenote: when curves are 2D the result will remain 2D, disregarding
deformation in 3rd dimension.
When editing a Curve object, type Poly, some code still thought it was
a Nurbs instead, doing nasty stuff with knots arrays.
Also fixed redraw events for buttons while editing Curve, this wasn't
done properly at all, causing the UI showing non-existant data...
brought up the following "fixes":
removed these prototypes since they were not used anymore:
void cspace(struct ImBuf *ibuf, float mat[][4]);
void freezbufImBuf(struct ImBuf * ibuf);
void IMB_init_movie_pointers(void);
Renamed IMB_addzbufImBuf prototype so it maches the actual
function: addzbufImBuf
Kent