Author: Carlos Lopez <[email protected]>
Date: Wed Jun 29 20:47:32 2011 +0200
Limit waypoints dragging within the document start and end times limits. Fix
bug #1688324
---
.../gui/cellrenderer/cellrenderer_timetrack.cpp | 32 ++++++++++++++++++--
1 files changed, 29 insertions(+), 3 deletions(-)
diff --git a/synfig-studio/src/gui/cellrenderer/cellrenderer_timetrack.cpp
b/synfig-studio/src/gui/cellrenderer/cellrenderer_timetrack.cpp
index c06e9b1..1e7512e 100644
--- a/synfig-studio/src/gui/cellrenderer/cellrenderer_timetrack.cpp
+++ b/synfig-studio/src/gui/cellrenderer/cellrenderer_timetrack.cpp
@@ -809,11 +809,37 @@ CellRenderer_TimeTrack::activate_vfunc(
}
set<Time> newset;
- std::set<synfig::Time>::iterator i =
sel_times.begin(), end = sel_times.end();
- for(; i != end; ++i)
+ std::set<synfig::Time>::iterator i,
begin = sel_times.begin(), end = sel_times.end();
+ // Check if we are moving the set of
waypoints out of the
+ // boundaries of the canvas start and
end times.
+ // If that happens, then limit the
movement in that side.
+ //Solves bug:
+ Time endtime, starttime;
+
starttime=get_canvas()->rend_desc().get_time_start();
+
endtime=get_canvas()->rend_desc().get_time_end();
+ Time smaller(Time::end());
+ Time higher(Time::begin());
+ for(i=begin; i != end; ++i)
+ {
+ Time t=(*i +
deltatime).round(get_canvas()->rend_desc().get_frame_rate());
+ if(t > endtime && t > higher)
+ higher = t;
+ if(t < starttime && t < smaller)
+ smaller = t;
+ }
+ if(higher > endtime)
+ {
+ deltatime
-=higher-endtime;
+
synfig::warning(_("Attempting to move waypoints after end time!. Clamping
movement"));
+ }
+ if(smaller < starttime)
+ {
+ deltatime
+=starttime-smaller;
+
synfig::warning(_("Attempting to move waypoints before start time!. Clamping
movement"));
+ }
+ for(i=begin; i != end; ++i)
{
param_list.add("addtime",*i);
-
newset.insert((*i +
deltatime).round(get_canvas()->rend_desc().get_frame_rate()));
}
------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2d-c2
_______________________________________________
Synfig-devl mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/synfig-devl