[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22811] branches/blender2.5/blender/source /blender: Grease Pencil: Bugfixes
Joshua Leung
aligorith at gmail.com
Thu Aug 27 03:01:15 CEST 2009
Revision: 22811
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22811
Author: aligorith
Date: 2009-08-27 03:01:13 +0200 (Thu, 27 Aug 2009)
Log Message:
-----------
Grease Pencil: Bugfixes
* Realtime updates now work again
* Fixed problems with clicks to start drawing resulting in a stroke being ended.
* Changed the hotkeys to Ctrl-Alt-Shift-LMB (draw) and Ctrl-Alt-Shift-RMB (erase). Still very temporary stuff, will probably change these a few more times as I experiment with new approaches.
Modified Paths:
--------------
branches/blender2.5/blender/source/blender/editors/gpencil/gpencil_ops.c
branches/blender2.5/blender/source/blender/editors/gpencil/gpencil_paint.c
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_draw.c
branches/blender2.5/blender/source/blender/windowmanager/WM_types.h
Modified: branches/blender2.5/blender/source/blender/editors/gpencil/gpencil_ops.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/gpencil/gpencil_ops.c 2009-08-26 20:06:16 UTC (rev 22810)
+++ branches/blender2.5/blender/source/blender/editors/gpencil/gpencil_ops.c 2009-08-27 01:01:13 UTC (rev 22811)
@@ -47,14 +47,18 @@
void gpencil_common_keymap(wmWindowManager *wm, ListBase *keymap)
{
- wmKeymapItem *km;
+ wmKeymapItem *kmi;
/* if no keymap provided, use default */
if (keymap == NULL)
keymap= WM_keymap_listbase(wm, "Grease Pencil Generic", 0, 0);
/* Draw */
- WM_keymap_add_item(keymap, "GPENCIL_OT_draw", SKEY, KM_PRESS, 0, DKEY);
+ /* draw */
+ WM_keymap_add_item(keymap, "GPENCIL_OT_draw", LEFTMOUSE, KM_PRESS, KM_CTRL|KM_SHIFT|KM_ALT, 0);
+ /* erase */
+ kmi=WM_keymap_add_item(keymap, "GPENCIL_OT_draw", LEFTMOUSE, KM_PRESS, KM_CTRL|KM_SHIFT|KM_ALT, 0);
+ RNA_enum_set(kmi->ptr, "mode", 1); // XXX need to make the defines for this public (this is GP_PAINTMODE_ERASER)
}
/* ****************************************** */
Modified: branches/blender2.5/blender/source/blender/editors/gpencil/gpencil_paint.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/gpencil/gpencil_paint.c 2009-08-26 20:06:16 UTC (rev 22810)
+++ branches/blender2.5/blender/source/blender/editors/gpencil/gpencil_paint.c 2009-08-27 01:01:13 UTC (rev 22811)
@@ -859,7 +859,7 @@
p->scene->gpd= p->gpd;
}
- /* set edit flags */
+ /* set edit flags - so that buffer will get drawn */
G.f |= G_GREASEPENCIL;
/* set initial run flag */
@@ -1171,7 +1171,7 @@
}
/* force refresh */
- ED_area_tag_redraw(p->sa); // XXX this is crude
+ WM_event_add_notifier(C, NC_SCREEN|ND_GPENCIL|NA_EDITED, NULL); // XXX please work!
}
/* ------------------------------- */
@@ -1216,6 +1216,18 @@
printf("\tGP - handle modal event...\n");
switch (event->type) {
+ /* end of stroke -> ONLY when a mouse-button release occurs
+ * otherwise, carry on to mouse-move...
+ */
+ case LEFTMOUSE:
+ case MIDDLEMOUSE:
+ case RIGHTMOUSE:
+ if (event->val != KM_PRESS) {
+ printf("\t\tGP - end of stroke \n");
+ gpencil_draw_exit(C, op);
+ return OPERATOR_FINISHED;
+ }
+
/* moving mouse - assumed that mouse button is down */
case MOUSEMOVE:
/* handle drawing event */
@@ -1230,14 +1242,6 @@
}
break;
- /* end of stroke - i.e. when a mouse-button release occurs */
- case LEFTMOUSE:
- case MIDDLEMOUSE:
- case RIGHTMOUSE:
- printf("\t\tGP - end of stroke \n");
- gpencil_draw_exit(C, op);
- return OPERATOR_FINISHED;
-
/* scrolling mouse-wheel increases radius of eraser
* - though this is quite a difficult action to perform
*/
@@ -1259,7 +1263,7 @@
break;
default:
- return OPERATOR_RUNNING_MODAL|OPERATOR_PASS_THROUGH;
+ printf("\t\tGP unknown event - %d \n", event->type);
break;
}
Modified: branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_draw.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_draw.c 2009-08-26 20:06:16 UTC (rev 22810)
+++ branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_draw.c 2009-08-27 01:01:13 UTC (rev 22811)
@@ -2084,7 +2084,7 @@
/* draw grease-pencil stuff */
//if (v3d->flag2 & V3D_DISPGP)
- draw_gpencil_3dview(C, 1);
+ draw_gpencil_3dview((bContext *)C, 1);
BDR_drawSketch(C);
@@ -2100,9 +2100,9 @@
if(rv3d->persp>1) drawviewborder(scene, ar, v3d);
if(rv3d->rflag & RV3D_FLYMODE) drawviewborder_flymode(ar);
- /* draw grease-pencil stuff */
+ /* draw grease-pencil stuff - needed to get paint-buffer shown too (since it's 2D) */
// if (v3d->flag2 & V3D_DISPGP)
-// draw_gpencil_3dview(ar, 0);
+ draw_gpencil_3dview((bContext *)C, 0);
drawcursor(scene, ar, v3d);
Modified: branches/blender2.5/blender/source/blender/windowmanager/WM_types.h
===================================================================
--- branches/blender2.5/blender/source/blender/windowmanager/WM_types.h 2009-08-26 20:06:16 UTC (rev 22810)
+++ branches/blender2.5/blender/source/blender/windowmanager/WM_types.h 2009-08-27 01:01:13 UTC (rev 22811)
@@ -149,6 +149,7 @@
#define ND_SCREENDELETE (2<<16)
#define ND_SCREENCAST (3<<16)
#define ND_ANIMPLAY (4<<16)
+#define ND_GPENCIL (5<<16)
/* NC_SCENE Scene */
#define ND_SCENEBROWSE (1<<16)
More information about the Bf-blender-cvs
mailing list