- fix: user pref, window title was reset to 'Blender' on tab usage
- Undo history menu back:
- name "Undo History"
- hotkey alt+ctrl+z (alt+apple+z for mac)
- works like 2.4x, only for global undo, editmode and particle edit.
- Menu scroll
- for small windows or screens, popup menus now allow to display
all items, using internal scrolling
- works with a timer, scrolling 10 items per second when mouse
is over the top or bottom arrow
- if menu is too big to display, it now draws to top or bottom,
based on largest available space.
- also works for hotkey driven pop up menus.
- User pref "DPI" follows widget/layout size
- widgets & headers now become bigger and smaller, to match
'dpi' font sizes. Works well to match UI to monitor size.
- note that icons can get fuzzy, we need better mipmaps for it
* they were too slow for dynamic python enums, calling the callback
to list the items for each button, to get a tooltip
* enum tooltips sometimes were showing the same description twice
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.
- 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.
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.