GIMP has the tool Animation Playback (found under Filters/Animation) to help with creating animations. When creating an animation, it is very useful to be able to manually "scrub" through the frames. The tool has a button Step that allows you to step one frame forward. However, a button to step one frame backward is missing.
Now I had a look at the source code of the Animation Playback tool. What I was hoping to find was whether such a "step backwards one frame" feature exists, and how we are meant to use it. And yes such a feature does exist! And it has a keyboard shortcut: d key according to the source code. However, the keyboard shortcut does not seem to work =(! The interesting thing is that all keyboard shortcuts for the tool which are combined with the Ctrl key work. For example:
- Ctrl+L to "speed_up"
- Ctrl+J to "speed_down"
- Ctrl+K to "speed_reset"
But those without the Ctrl modifier don't work:
- d to "step-back" (step back one frame)
- f to "step" (step forward one frame)
TLDR: the tool supports the ability to step back one frame, but how can I use it?
Here is the code snippet for reference:
static GtkUIManager *
ui_manager_new (GtkWidget *window)
{
static GtkActionEntry actions[] =
{
{ "step-back", "media-skip-backward",
N_("Step _back"), "d", N_("Step back to previous frame"),
G_CALLBACK (step_back_callback) },
{ "step", "media-skip-forward",
N_("_Step"), "f", N_("Step to next frame"),
G_CALLBACK (step_callback) },
{ "rewind", "media-seek-backward",
NULL, NULL, N_("Rewind the animation"),
G_CALLBACK (rewind_callback) },
{ "refresh", GIMP_ICON_VIEW_REFRESH,
NULL, "<control>R", N_("Reload the image"),
G_CALLBACK (refresh_callback) },
{ "help", "help-browser",
NULL, NULL, NULL,
G_CALLBACK (help_callback) },
{ "close", "window-close",
NULL, "<control>W", NULL,
G_CALLBACK (close_callback)
},
{
"quit", "application-quit",
NULL, "<control>Q", NULL,
G_CALLBACK (close_callback)
},
{
"speed-up", NULL,
N_("Faster"), "<control>L", N_("Increase the speed of the animation"),
G_CALLBACK (speed_up_callback)
},
{
"speed-down", NULL,
N_("Slower"), "<control>J", N_("Decrease the speed of the animation"),
G_CALLBACK (speed_down_callback)
},
{
"speed-reset", NULL,
N_("Reset speed"), "<control>K", N_("Reset the speed of the animation"),
G_CALLBACK (speed_reset_callback)
}
};