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:
authorJoshua Leung <aligorith@gmail.com>2011-02-09 04:05:40 +0300
committerJoshua Leung <aligorith@gmail.com>2011-02-09 04:05:40 +0300
commit99c1a9a427f3a1d6f3007ace54aed76966973c6c (patch)
tree1eaaf9bc596b4045da7d6748ecc05c42f23c278d
parentadfbb83cdfc22e44f0226da7a9dd7afa7ebc6e4a (diff)
Bugfix [#25987] Duplicated markers naming issue
One-liner fix - a missing "OPERATOR_FINISHED" on the select operator was causing problems renaming markers and potentially with other operations too! To find this bug, I added debug method to dump the list of markers to console. This has revealed some troublesome things about the way markers are organised, which IMO need to be addressed.
-rw-r--r--source/blender/editors/animation/anim_markers.c28
1 files changed, 26 insertions, 2 deletions
diff --git a/source/blender/editors/animation/anim_markers.c b/source/blender/editors/animation/anim_markers.c
index 58dc5008959..4a39534d566 100644
--- a/source/blender/editors/animation/anim_markers.c
+++ b/source/blender/editors/animation/anim_markers.c
@@ -264,6 +264,29 @@ TimeMarker *ED_markers_get_first_selected(ListBase *markers)
return NULL;
}
+/* --------------------------------- */
+
+/* Print debugging prints of list of markers
+ * BSI's: do NOT make static or put in if-defs as "unused code". That's too much trouble when we need to use for quick debuggging!
+ */
+void debug_markers_print_list(ListBase *markers)
+{
+ TimeMarker *marker;
+
+ if (markers == NULL) {
+ printf("No markers list to print debug for\n");
+ return;
+ }
+
+ printf("List of markers follows: -----\n");
+
+ for (marker = markers->first; marker; marker = marker->next) {
+ printf("\t'%s' on %d at %p with %d\n", marker->name, marker->frame, marker, marker->flag);
+ }
+
+ printf("End of list ------------------\n");
+}
+
/* ************* Marker Drawing ************ */
/* function to draw markers */
@@ -868,6 +891,7 @@ static void ed_marker_duplicate_apply(bContext *C)
#endif
/* new marker is added to the begining of list */
+ // FIXME: bad ordering!
BLI_addhead(markers, newmarker);
}
}
@@ -996,8 +1020,8 @@ static int ed_marker_select(bContext *C, wmEvent *evt, int extend, int camera)
WM_event_add_notifier(C, NC_SCENE|ND_MARKERS, NULL);
WM_event_add_notifier(C, NC_ANIMATION|ND_MARKERS, NULL);
- /* allowing tweaks */
- return OPERATOR_PASS_THROUGH;
+ /* allowing tweaks, but needs OPERATOR_FINISHED, otherwise renaming fails... [#25987] */
+ return OPERATOR_FINISHED|OPERATOR_PASS_THROUGH;
}
static int ed_marker_select_invoke(bContext *C, wmOperator *op, wmEvent *evt)