Paste Code
Paste Blends
Paste Images
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index ea07873..f2fe682 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -547,6 +547,36 @@ static void drawfloor(Scene *scene, View3D *v3d, const char **grid_unit)
if (v3d->zbuf && scene->obedit) glDepthMask(1);
}

+static bool drawcursor_test(Scene *scene, Object *ob, View3D *v3d)
+{
+ bool ret = true;
+
+ if (v3d->ob_centre_cursor) {
+ /* pass */
+ }
+ else if (ob) {
+ switch (ob->mode) {
+ case OB_MODE_SCULPT:
+ {
+ ret = false;
+ break;
+ }
+ case OB_MODE_TEXTURE_PAINT:
+ {
+ Brush *br = BKE_paint_brush(&scene->toolsettings->imapaint.paint);
+ if (br && (br->imagepaint_tool == PAINT_TOOL_CLONE)) {
+ /* pass */
+ }
+ else {
+ ret = false;
+ }
+ break;
+ }
+ }
+ }
+
+ return ret;
+}

static void drawcursor(Scene *scene, ARegion *ar, View3D *v3d)
{
@@ -3387,25 +3417,8 @@ static void view3d_main_area_draw_info(const bContext *C, ARegion *ar, const cha
if ((v3d->flag2 & V3D_RENDER_OVERRIDE) == 0) {
Object *ob = OBACT;

- if (ob) {
- switch (ob->mode) {
- case OB_MODE_SCULPT:
- break;
-
- case OB_MODE_TEXTURE_PAINT:
- {
- Brush *br = BKE_paint_brush(&scene->toolsettings->imapaint.paint);
-
- if (br && (br->imagepaint_tool == PAINT_TOOL_CLONE))
- drawcursor(scene, ar, v3d);
-
- break;
- }
-
- default:
- drawcursor(scene, ar, v3d);
- break;
- }
+ if (drawcursor_test(scene, ob, v3d)) {
+ drawcursor(scene, ar, v3d);
}

if (U.uiflag & USER_SHOW_ROTVIEWICON)
  1. diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
  2. index ea07873..f2fe682 100644
  3. --- a/source/blender/editors/space_view3d/view3d_draw.c
  4. +++ b/source/blender/editors/space_view3d/view3d_draw.c
  5. @@ -547,6 +547,36 @@ static void drawfloor(Scene *scene, View3D *v3d, const char **grid_unit)
  6.         if (v3d->zbuf && scene->obedit) glDepthMask(1);
  7.  }
  8.  
  9. +static bool drawcursor_test(Scene *scene, Object *ob, View3D *v3d)
  10. +{
  11. +       bool ret = true;
  12. +
  13. +       if (v3d->ob_centre_cursor) {
  14. +               /* pass */
  15. +       }
  16. +       else if (ob) {
  17. +               switch (ob->mode) {
  18. +                       case OB_MODE_SCULPT:
  19. +                       {
  20. +                               ret = false;
  21. +                               break;
  22. +                       }
  23. +                       case OB_MODE_TEXTURE_PAINT:
  24. +                       {
  25. +                               Brush *br = BKE_paint_brush(&scene->toolsettings->imapaint.paint);
  26. +                               if (br && (br->imagepaint_tool == PAINT_TOOL_CLONE)) {
  27. +                                       /* pass */
  28. +                               }
  29. +                               else {
  30. +                                       ret = false;
  31. +                               }
  32. +                               break;
  33. +                       }
  34. +               }
  35. +       }
  36. +
  37. +       return ret;
  38. +}
  39.  
  40.  static void drawcursor(Scene *scene, ARegion *ar, View3D *v3d)
  41.  {
  42. @@ -3387,25 +3417,8 @@ static void view3d_main_area_draw_info(const bContext *C, ARegion *ar, const cha
  43.         if ((v3d->flag2 & V3D_RENDER_OVERRIDE) == 0) {
  44.                 Object *ob = OBACT;
  45.  
  46. -               if (ob) {
  47. -                       switch (ob->mode) {
  48. -                               case OB_MODE_SCULPT:
  49. -                                       break;
  50. -
  51. -                               case OB_MODE_TEXTURE_PAINT:
  52. -                               {
  53. -                                       Brush *br = BKE_paint_brush(&scene->toolsettings->imapaint.paint);
  54. -
  55. -                                       if (br && (br->imagepaint_tool == PAINT_TOOL_CLONE))
  56. -                                               drawcursor(scene, ar, v3d);
  57. -
  58. -                                       break;
  59. -                               }
  60. -
  61. -                               default:
  62. -                                       drawcursor(scene, ar, v3d);
  63. -                                       break;
  64. -                       }
  65. +               if (drawcursor_test(scene, ob, v3d)) {
  66. +                       drawcursor(scene, ar, v3d);
  67.                 }
  68.  
  69.                 if (U.uiflag & USER_SHOW_ROTVIEWICON)
  70.  
go to heaven