Screencast recording stopped on a undo/redo. This was because all thread jobs
were killed then. Now it leaves screen jobs (screen cast) running, that's
data that doesn't change on undos.
Also renamed jobs_stop_all() to jobs_kill_all() - it terminates threads.
Now modifier key press gets generated without having own modifier set.
Same happens for double clicks on modifiers.
This also fixes case: press shift twice first, modifier fails.
- Solved Modal Keymap hijack of event codes
(with note this should be coded better)
- Added dedicated state variable check_click in event to trigger it
All this in an attempt to get code understandable and predictable again. :)
This solves error like:
- editmode mesh
- select a vertex
- grab it, press control for grid snap
- on LMB assign, it also did an extrude.
not work.
This is a temporary fix to make button type work. I'll check on other cases
now too.
Best would be to have UI code return correct flags for whether it has
done something or not. This hasn't been coded really - so that's a todo for
a later cleanup there.
The modifier keys were getting own key as modifier :)
Made it not possible to use them for events.
Still open issue: for some reason modifer key 'press' gets swallowed.
Digging into that.
Double clicks were never working reliably in Blender - this mostly because
it wasn't a real event, but something generated in the handler code.
Now it is an actual event - meaning it always gets handled (if you have
a keymap item for it of course), but if there's no doubleclick handling
it treats the doubleclick as a normal click.
Also cleaned code. No recursion anymore.
Now both UI translation menu (in userprefs) and isocodes are defined in a text file (release/datafiles/locale/languages), parsed at lunchtime. This way:
* No more need to edit Blender code each time we want to add an new language or reorganize the existing menu;
* Translators can easily add a new language for testing, by just editing the text file, so no more need to ask to change Blender code and wait for a new build to see your new translation work in Blender!
Remaining todo:
* Commit i18n py tools
* Update wiki doc!
Seems the issue was caused by G.is_break set to Truth on both escape
press and release. This ended up in situation when after press event
compositor was tagged to redraw and new job was started. On escape
release this compositor job was cancelled.
Made it so G.is_break is setting on escape press event only.
- move object_iterators.c --> view3d_iterators. (ED_object.h had to include ED_view3d.h which isn't so nice)
- move projection functions from view3d_view.c --> view3d_project.c (view3d_view was becoming a mishmash of utility functions and operators).
- some some cmake includes as system-includes.
As suggested by Campbell on the IRC gave grease pencil its own notifier type (NC_GPENCIL) and made the makesrna notifier functions actually update properly.
Also got the #ifdef'd GreasePencil.layers.[new/remove] functions working.