some WMs not only send 'crossing' events when really moving from one
window to another, but also when mousewheeling.
distinguishing those events 'mode' property fixed this.
brecht++ for figuring out the details.
for x in `find . -name '*.c*'`; do svn propset svn:eol-style "native" $x; done
for x in `find . -name '*.h'`; do svn propset svn:eol-style "native" $x; done
- Recreate mipmaps if they're dirty when drawing background image
(this prevents "delayed" update of background image when you're paiting on it
in image editor).
- Mark mipmaps as dirty when inverting image channels.
TODO: there's memory leak caused by IMB_remakemipmap, but it'll be
anuther bugfix commit after discussion with other devs.
- In Drivers mode of Graph Editor, expanders for sub-object data were
not working at all. This was because they were getting overriden by an
errant ob-level drivers check
- Adding drivers from py-api didn't update Graph Editor
The following script would fail:
#ob = bpy.context.active_object
pb = bpy.context.active_pose_bone
pb.bone.driver_add("hide") # <--- exception here
The RNA-path function for Bone assumed that when it got called, it's
"id_data" (or owner-idblock-pointer) would only be ID_AR (i.e. an
armature). However, in the above example, pb.bone has ob as its
id_data, resulting in an invalid RNA path getting created. Added check
for this case, since it's likely to be common
The tracker description:
"This patch fixes this bug:
http://projects.blender.org/tracker/index.php?func=detail&aid=25487&group_id=9&atid=306
This was accomplished by making sure the KX_GameObject's object color gets set during the conversion process in the method gameobject_from_blenderobject. Otherwise all the values for object color default to 0. The reason adding an IPO worked as a work around is because it set the object color."
The bug report mentioned is bug [#25487] "BGE: Object Color only works when it has a keyed frame"
(patch co-reviewed by Nathan Letwory)
Overview: GHOST using rawinput for keyboard input. GHOST window receives WM_INPUT only when it is the active window. Child window cannot be active, so when embedding blenderplayer, WM_INPUT is consumed by top level parent window (for Burster it is the web browser window). Patch register raw input device as 'inputsink' - it makes GHOST window receives all keyboard messages. Window procedure check if GHOST window is active or focused.
::TranslateMessage(&msg) generates WM_CHAR etc. messages from WM_KEYDOWN, WM_KEYUP etc. Because of using RawInput only WM_INPUT messages are processed, so we doesn't need WM_CHAR, WM_KEYDOWN etc. [this is why ::TranslateMessage is no longer getting called].
Note: It's responsibility of the parent window (aka the wrapper) to send WM_SETFOCUS to child window (embedded blenderplayer).
However some parent windows (e.g. webbrowsers) will not send WM_SETFOCUS to the child window when someone clicks on it.
In those cases the blenderplayer needs to be patched to call setFocus(&msg); in the event of WM_LBUTTONDOWN (see GHOST_SystemWin32.cpp)
Submitted by Amorilia.
DXT1 .dds textures with 1-bit alpha channel have their alpha channel imported in Blender.
The patch also makes change to contact info for the patch submitter.
I left the sync with upstream nvtt for another commit.
Added new option to find panel of space text which toggles
case-esensitive search.
Additional changes:
- Send NC_TEXT|NA_EDITED when removing markers in find_and_replace modifier
this prevents "sticked" markers which disappears on first redraw when
search text wasn't found
- Do not show "Text wasn't found" error when text to be searched is contained
in the end of buffer and it's selected. Replacing/marking used to happen, but
this popup message was really annoying for this case.
TODO: It's incorrect to use UI_GetThemeColor4ubv from this operator
this isn't a fix but GetModuleFileName is returning a name that doesn't exist, so finding python after this isn't working.
Show a popup that the path has an invalid name so at least the user can move it.