Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenoit Bolsee <benoit.bolsee@online.be>2011-09-07 19:34:04 +0400
committerBenoit Bolsee <benoit.bolsee@online.be>2011-09-07 19:34:04 +0400
commitdbd6658d737b1592a633ddf6397be14e50e434d9 (patch)
tree57081721d70622a3c3141909b258f9bce8a5b1e3 /source/blender/editors/util
parentb5bd86e5907c3fa98546dabeda9703dfb15862f4 (diff)
parent884fc84793be1c5fdd6643ad267331381f8e1c6b (diff)
svn merge -r 37306:39975 https://svn.blender.org/svnroot/bf-blender/trunk/blender
Diffstat (limited to 'source/blender/editors/util')
-rw-r--r--source/blender/editors/util/CMakeLists.txt2
-rw-r--r--source/blender/editors/util/ed_util.c25
-rw-r--r--source/blender/editors/util/undo.c18
3 files changed, 20 insertions, 25 deletions
diff --git a/source/blender/editors/util/CMakeLists.txt b/source/blender/editors/util/CMakeLists.txt
index 69ede67288a..da6e1990622 100644
--- a/source/blender/editors/util/CMakeLists.txt
+++ b/source/blender/editors/util/CMakeLists.txt
@@ -22,8 +22,8 @@
set(INC
../include
../../blenkernel
- ../../blenloader
../../blenlib
+ ../../blenloader
../../../../extern/recastnavigation/Recast/Include
../../makesdna
../../makesrna
diff --git a/source/blender/editors/util/ed_util.c b/source/blender/editors/util/ed_util.c
index 705fb83264c..3dd7514429e 100644
--- a/source/blender/editors/util/ed_util.c
+++ b/source/blender/editors/util/ed_util.c
@@ -106,10 +106,6 @@ void ED_editors_exit(bContext *C)
if(sce->obedit) {
Object *ob= sce->obedit;
- /* global in meshtools... */
- mesh_octree_table(NULL, NULL, NULL, 'e');
- mesh_mirrtopo_table(NULL, 'e');
-
if(ob) {
if(ob->type==OB_MESH) {
Mesh *me= ob->data;
@@ -122,26 +118,13 @@ void ED_editors_exit(bContext *C)
else if(ob->type==OB_ARMATURE) {
ED_armature_edit_free(ob);
}
- else if(ob->type==OB_FONT) {
- // free_editText();
- }
- // else if(ob->type==OB_MBALL)
- // BLI_freelistN(&editelems);
- // free_editLatt();
- // free_posebuf(); // XXX this is still a global...
- }
- }
- else if(sce->basact && sce->basact->object) {
- Object *ob= sce->basact->object;
-
- /* if weight-painting is on, free mesh octree data */
- if(ob->mode & OB_MODE_WEIGHT_PAINT) {
- mesh_octree_table(NULL, NULL, NULL, 'e');
- mesh_mirrtopo_table(NULL, 'e');
}
}
}
-
+
+ /* global in meshtools... */
+ mesh_octree_table(NULL, NULL, NULL, 'e');
+ mesh_mirrtopo_table(NULL, 'e');
}
diff --git a/source/blender/editors/util/undo.c b/source/blender/editors/util/undo.c
index 24a868891de..c1aca61f795 100644
--- a/source/blender/editors/util/undo.c
+++ b/source/blender/editors/util/undo.c
@@ -54,6 +54,7 @@
#include "ED_armature.h"
#include "ED_particle.h"
#include "ED_curve.h"
+#include "ED_gpencil.h"
#include "ED_mball.h"
#include "ED_mesh.h"
#include "ED_object.h"
@@ -126,6 +127,11 @@ static int ed_undo_step(bContext *C, int step, const char *undoname)
Object *obact= CTX_data_active_object(C);
ScrArea *sa= CTX_wm_area(C);
+ /* grease pencil can be can be used in plenty of spaces, so check it first */
+ if(ED_gpencil_session_active()) {
+ return ED_undo_gpencil_step(C, step, undoname);
+ }
+
if(sa && sa->spacetype==SPACE_IMAGE) {
SpaceImage *sima= (SpaceImage *)sa->spacedata.first;
@@ -156,11 +162,11 @@ static int ed_undo_step(bContext *C, int step, const char *undoname)
int do_glob_undo= 0;
if(obact && obact->mode & OB_MODE_TEXTURE_PAINT) {
- if(!ED_undo_paint_step(C, UNDO_PAINT_IMAGE, step, undoname) && undoname)
+ if(!ED_undo_paint_step(C, UNDO_PAINT_IMAGE, step, undoname))
do_glob_undo= 1;
}
else if(obact && obact->mode & OB_MODE_SCULPT) {
- if(!ED_undo_paint_step(C, UNDO_PAINT_MESH, step, undoname) && undoname)
+ if(!ED_undo_paint_step(C, UNDO_PAINT_MESH, step, undoname))
do_glob_undo= 1;
}
else if(obact && obact->mode & OB_MODE_PARTICLE_EDIT) {
@@ -358,19 +364,25 @@ int ED_undo_operator_repeat(bContext *C, struct wmOperator *op)
ret= 1;
}
}
+ else {
+ if (G.f & G_DEBUG) {
+ printf("redo_cb: WM_operator_repeat_check returned false %s\n", op->type->name);
+ }
+ }
/* set region back */
CTX_wm_region_set(C, ar);
}
else {
if (G.f & G_DEBUG) {
- printf("redo_cb: WM_operator_repeat_check returned false %s\n", op->type->name);
+ printf("redo_cb: ED_undo_operator_repeat called with NULL 'op'\n");
}
}
return ret;
}
+
void ED_undo_operator_repeat_cb(bContext *C, void *arg_op, void *UNUSED(arg_unused))
{
ED_undo_operator_repeat(C, (wmOperator *)arg_op);