[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32607] trunk/blender/source/blender: == Paint ==

Nicholas Bishop nicholasbishop at gmail.com
Wed Oct 20 02:42:19 CEST 2010


Revision: 32607
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32607
Author:   nicholasbishop
Date:     2010-10-20 02:42:19 +0200 (Wed, 20 Oct 2010)

Log Message:
-----------
== Paint ==

Fixed bug #24239, "Fkey doesn't work in image paint unless also in 3D texture paint"

* Fixed brush cursor not showing when painting in the image editor without 3d texture painting enabled
* Fixed fkey not working when not in 3d texture paint

Note:
This does not handle showing the brush cursor when reloading a file saved with image painting on but 3d texture painting off. The method used for object paint modes doesn't apply quite the same here, so I left that alone for now.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/include/ED_image.h
    trunk/blender/source/blender/editors/sculpt_paint/paint_image.c
    trunk/blender/source/blender/editors/sculpt_paint/paint_ops.c
    trunk/blender/source/blender/makesrna/intern/rna_space.c

Modified: trunk/blender/source/blender/editors/include/ED_image.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_image.h	2010-10-19 22:17:34 UTC (rev 32606)
+++ trunk/blender/source/blender/editors/include/ED_image.h	2010-10-20 00:42:19 UTC (rev 32607)
@@ -32,7 +32,9 @@
 struct bContext;
 struct Image;
 struct ImageUser;
+struct ToolSettings;
 struct uiBlock;
+struct wmWindowManager;
 
 /* space_image.c, exported for transform */
 struct Image *ED_space_image(struct SpaceImage *sima);
@@ -47,6 +49,8 @@
 void ED_space_image_zoom(struct SpaceImage *sima, struct ARegion *ar, float *zoomx, float *zoomy);
 void ED_space_image_uv_aspect(struct SpaceImage *sima, float *aspx, float *aspy);
 
+void ED_space_image_paint_update(struct wmWindowManager *wm, struct ToolSettings *settings);
+
 void ED_image_size(struct Image *ima, int *width, int *height);
 void ED_image_aspect(struct Image *ima, float *aspx, float *aspy);
 void ED_image_uv_aspect(struct Image *ima, float *aspx, float *aspy);

Modified: trunk/blender/source/blender/editors/sculpt_paint/paint_image.c
===================================================================
--- trunk/blender/source/blender/editors/sculpt_paint/paint_image.c	2010-10-19 22:17:34 UTC (rev 32606)
+++ trunk/blender/source/blender/editors/sculpt_paint/paint_image.c	2010-10-20 00:42:19 UTC (rev 32607)
@@ -4961,23 +4961,38 @@
 		settings->imapaint.paintcursor= WM_paint_cursor_activate(CTX_wm_manager(C), image_paint_poll, brush_drawcursor, NULL);
 }
 
+/* enable the paint cursor if it isn't already.
+
+   purpose is to make sure the paint cursor is shown if paint
+   mode is enabled in the image editor. the paint poll will
+   ensure that the cursor is hidden when not in paint mode */
+void ED_space_image_paint_update(wmWindowManager *wm, ToolSettings *settings)
+{
+	ImagePaintSettings *imapaint = &settings->imapaint;
+
+	if(!imapaint->paintcursor) {
+		imapaint->paintcursor =
+			WM_paint_cursor_activate(wm, image_paint_poll,
+						 brush_drawcursor, NULL);
+	}
+}
+
 /* ************ image paint radial control *************/
 static int paint_radial_control_invoke(bContext *C, wmOperator *op, wmEvent *event)
 {
 	float zoom;
 	ToolSettings *ts = CTX_data_scene(C)->toolsettings;
 	get_imapaint_zoom(C, &zoom, &zoom);
-	toggle_paint_cursor(C, !ts->imapaint.paintcursor);
+	toggle_paint_cursor(C, 0);
 	brush_radial_control_invoke(op, paint_brush(&ts->imapaint.paint), zoom);
 	return WM_radial_control_invoke(C, op, event);
 }
 
 static int paint_radial_control_modal(bContext *C, wmOperator *op, wmEvent *event)
 {
-	ToolSettings *ts = CTX_data_scene(C)->toolsettings;
 	int ret = WM_radial_control_modal(C, op, event);
 	if(ret != OPERATOR_RUNNING_MODAL)
-			toggle_paint_cursor(C, !ts->imapaint.paintcursor);
+		toggle_paint_cursor(C, 1);
 	return ret;
 }
 

Modified: trunk/blender/source/blender/editors/sculpt_paint/paint_ops.c
===================================================================
--- trunk/blender/source/blender/editors/sculpt_paint/paint_ops.c	2010-10-19 22:17:34 UTC (rev 32606)
+++ trunk/blender/source/blender/editors/sculpt_paint/paint_ops.c	2010-10-20 00:42:19 UTC (rev 32607)
@@ -428,6 +428,9 @@
 	keymap= WM_keymap_find(keyconf, "Image Paint", 0, 0);
 	keymap->poll= image_texture_paint_poll;
 
+	RNA_enum_set(WM_keymap_add_item(keymap, "PAINT_OT_image_paint_radial_control", FKEY, KM_PRESS, 0, 0)->ptr, "mode", WM_RADIALCONTROL_SIZE);
+	RNA_enum_set(WM_keymap_add_item(keymap, "PAINT_OT_image_paint_radial_control", FKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "mode", WM_RADIALCONTROL_STRENGTH);
+
 	RNA_enum_set(WM_keymap_add_item(keymap, "PAINT_OT_texture_paint_radial_control", FKEY, KM_PRESS, 0, 0)->ptr, "mode", WM_RADIALCONTROL_SIZE);
 	RNA_enum_set(WM_keymap_add_item(keymap, "PAINT_OT_texture_paint_radial_control", FKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "mode", WM_RADIALCONTROL_STRENGTH);
 

Modified: trunk/blender/source/blender/makesrna/intern/rna_space.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_space.c	2010-10-19 22:17:34 UTC (rev 32606)
+++ trunk/blender/source/blender/makesrna/intern/rna_space.c	2010-10-20 00:42:19 UTC (rev 32607)
@@ -373,6 +373,8 @@
 static void rna_SpaceImageEditor_paint_update(Main *bmain, Scene *scene, PointerRNA *ptr)
 {
 	paint_init(&scene->toolsettings->imapaint.paint, PAINT_CURSOR_TEXTURE_PAINT);
+
+	ED_space_image_paint_update(bmain->wm.first, scene->toolsettings);
 }
 
 static int rna_SpaceImageEditor_show_render_get(PointerRNA *ptr)





More information about the Bf-blender-cvs mailing list