* Implemented a new operator "WM_OT_properties_context_change" to switch to a different tab inside the properties window.
* This is used now inside the Modifier tab for Simulation Modifiers. Based on a mockup by Janne Karhu:
http://www.pasteall.org/pic/11261http://www.pasteall.org/pic/11262
Rather than having a delete button there anymore, the button changes the context to Physics/Particles, where you can edit the settings and delete the actual simulation.
- ghost C api, BLI_get_folder_version() could assign garbage values.
- pointcache ptcache_find_frames_around() had a superfluous NULL check which would have crashed anyway if actually NULL.
Top bar: Add -> Mesh -> UV Sphere + Enter crashed.
It didn't crash with leftmouse, but that was coincidentally working.
Menus were freeing modal handlers in Window, while handlers were still
in use. Fix provides to tag handlers for being freed now.
Will add on my attention list for more elaborate checking work here, for
upcoming 2.57a I rather stick to minimal change in code here.
Using search for operators showed ambigious names like "Duplicate" or "Delete".
Default names should give at least a descriptive label. In case operators
are collected in a group name-shortening should be handled separaly.
- Assigning local materials to library objects disabled
(crashes on undo/redo cases)
- Disabling options in Material buttons to add/remove slots
on library data
- Drawing Object ID template in Object properties, this
allows browse active Object, but especially shows library
status then.
Disable this for pointer buttons since this was intended for vgroups & uvlayers.
Pointer buttons often reference ID's which can be in the 1000+, lookups like this on each button draw is not useful since invalid pointers here will likely crash on scene evaluation.
Bone Color Sets weren't set in the call used here. This seems to be a
newish operator that didn't exist in the past, so this error didn't
really show up in the past.
Now this gives the line number of the scripts thats running, eg:
uiItemFullO: unknown operator 'some.operator'
/c/bin/2.56/scripts/startup/bl_ui/space_view3d_toolbar.py:73
Tried to resolve todo item "Layer change in 3d view header doesn't update
dependencies on changed previously visible objects". Code is too much spread
around now though, and the 3d view header shares RNA code for changing layers.
I'll let this be a "glitch" for now.
- look for icons in datafiles/icons (was looking in datafiles)
- was loading all images in datafiles/ on startup to check if they were the correct icon size, commented this since its unnecessary disk overhead on startup & images are checked for correctness when used anyway.
when running blender from the source dir would load splash.png every time.
also add missing NULL pointer check if the icon couldn't be loaded and ensure no buffer overflow check on icon path creation.
- Tooltip-hanging fix made the 'active' button be removed when mouse
enters another subwindow. Caused by commit of a week ago.
- Reverted the eventsystem change that sets 'active subwindow' before
it calls modal handlers. This made editors become active on using
menus, buttons, or other modal ops.
Side effect is that for transform operators called via toolbar, the
overlay-extra draw with helplines now gets skipped. Will check on
good ways for it.
Hanging Tooltips solved!
It appeared to be that an active button remained in that state when
another region/editor became active. It then kept the button-activate
state, and therefore also the optional tooltip.
This only happened on fast moves, when a mousemove event was not passed
on anymore to the previously active subwindow.
It has been solved with a new notifier (SWINACTIVE), which gets sent on
new active regions. The screen listener then calls uiFreeActiveButtons()
to find out if buttons were still active somewhere else.
-------------
Given the code perspective this is a hacky solution. However it's self-contained and documented one.
Ended having a talk with Ton and he agreed that this can acceptable in this case.
Zero chances of crashes (I've been using this myself for more than 6 months now).
Give it a shot. Although the code is +- for the user it's a really nice addition.
At the moment it makes more sense to put energy into the future Nodal Logic.
Yet, it's nice to give the current Logic Editor the love it deserves.
- Linking logic buttons had draw glitch, caused by reading
data from free'd buttons
- Doing an undo with mouse-over Curve Widget caused crash or
corruption.
Both related to code that tries to keep the "active" button in
memory. On each redraw of UI, buttons are re-created, which makes
it all tricky... hope we're safer now.
Also: added back undo pushes on adding links in logic editor.