- 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.
Two bugs in one:
- Lukas commit monday for new group/socket handling accidentally removed
to set socketype in stacks, which as used by (texture) nodes to detect
whether value, color or vector had to be read.
Result was that all texture nodes were rendering as B&W
- Old 2.5 bug: preview renders for texture nodes didn't call a
NodeEndExec function, which gave crashes on deleting nodes.
The change in interface_hanlers.c is only a comment to explain
how keymaps are being found.
most local modifier,GPU,ImBuf and Interface functions are now static.
also fixed an error were the fluid modifier definition and the header didnt have the same number of args.
UI bug: when a button has an open menu, the menu closed on any
mouse-over of other buttons in this panel. That's not too bad,
but it didn't check for whether the mouse was already inside the
menu itself (respecting safety region).
The bug showed error on zoomed in UI, using FPS presets, in case
the menu-button was drawing aligned with other buttons. A real
boundary case... :)
Report was that move-to-layer menu failed. The real cause was
more complex; had to dive deep in the dungeons of the interface
code that handled undos and operators. Found several issues:
- popup menus (like redo operator, color picker) executed again
on a mouse-exit
- far too many buttons were sending undo pushes; even worse, in
the operator redo-panel each button action was pushed twice
- in case operator redo-buttons have own callbacks (like layer
buttons) the redo wasn't working
- layerbutton menu was called without creating a proper undo/redo
case
Things should all work smoother now!
On todo:
- better definition and handling of all versions for operator menus
(four types now, not fun)
also: make operator "do" menu, which on first action does operator
and then switches to redo-ing
- bring back Undo menu, to list the undo stack and jump in it.
also minor functional changes
- OBJECT_OT_make_links_data() type property is now assigned to the operator property (so popup menu can find it)
- removing BG image now returns cancelled if no image is removed.
Drag/drop now has a User preset for dragging threshold.
Noticed this was set to 3 pixels even, made it 5 as default.
Tablet owners can put it larger too :)
Note: the tweak-threshold (3d win) is 10 pixels now, I think
this needs another preset too, leave this for now.
Also: fixed crash in filewindow: drag .blend icon and drop it.
You can't test anything in Blender or you get a bug :)
Pulldown and other popup menus: this button type exits on release.
While holding mouse you then can move around, but the highlight of button
didn't disappear if you were outside item. The menu then doesn't close
when you release the mouse.
Now highlight goes on/off on mouse moves to show this better.
Implementation note: menu items are coded similar to regular activate
buttons (like for tools). There's no provision to make highlights go
to the next item while holding mouse in menus. That I rather not mess
with now.
Using RMB on menus to change hotkeys was broken.
- the input button was on a weird place outside menu, assign
would close pulldown, so you had to reopen to check
- ESC didn't close the button, but assigned ESC as hotkey.
This key is a protected key, and always should be escaping.
- Worst bug: if you used this on a 'user keymap' it removed
all entries from the map...
Automatically assign menu keys based on name, alternative to pressing number 0-9 on menus items.
keys are assigned by first giving each menu item the first character of any word, if that fails any key in the name is used.
- active key is shown underlined.
- only ascii keys are assigned currently.
- can run operators, open menu items.
- currently this only works in cases where number buttons were used (UI_BLOCK_NUMSELECT), but could be enabled for file menu, splash etc by removing this check.
[#25159] Vertex locations dont read correctly and are not labeled correctly in the properties bar.
- non rna buttons can now have units set.
- calls with invalid units system now raises an assert().
- include .mxf in filter.
Color picker: RMB "insert single value" was inserting all three values.
Same case as yesterday, made code recurse into open menu to check for
active button there.
Color Picker: when inserting keys (right mouse menu), the colors didn't
change for buttons to indicate such. The function that sets the flags
returned too early.
Also use const char in many other parts of blenders code.
Currently this gives warnings for setting operator id, label and description since these are an exception and allocated beforehand.
- removed deprecated bitmap arg from IMB_allocImBuf (plugins will need updating).
- mostly tagged UNUSED() since some of these functions look like they may need to have the arguments used later.
Now drivers cannot be added to properties that have been animated (and visa versa). Previously, the check was only checking if there was a keyframe, not whether the property was animated.