diff --git a/data/darktableconfig.xml.in b/data/darktableconfig.xml.in
index 9baaf1743a53..ccd034a10cfe 100644
--- a/data/darktableconfig.xml.in
+++ b/data/darktableconfig.xml.in
@@ -2467,6 +2467,13 @@
show scrollbars for central view
defines whether scrollbars should be displayed
+
+ filmstrip/ui/auto_scroll
+ bool
+ true
+ auto-scroll filmstrip to selected image
+ when enabled, the filmstrip automatically scrolls to center the newly selected image
+
lighttable/ui/milliseconds
bool
diff --git a/src/dtgtk/thumbtable.c b/src/dtgtk/thumbtable.c
index aaee6bcc8205..c7f8991d13c1 100644
--- a/src/dtgtk/thumbtable.c
+++ b/src/dtgtk/thumbtable.c
@@ -1848,6 +1848,9 @@ static void _dt_active_images_callback(gpointer instance, dt_thumbtable_t *table
return;
if(!darktable.view_manager->active_images) return;
+ if(table->mode == DT_THUMBTABLE_MODE_FILMSTRIP
+ && !dt_conf_get_bool("filmstrip/ui/auto_scroll"))
+ return;
const int activeid = GPOINTER_TO_INT(darktable.view_manager->active_images->data);
dt_thumbtable_set_offset_image(table, activeid, TRUE);
}
diff --git a/src/views/darkroom.c b/src/views/darkroom.c
index 4364150dffef..f044c8096e3b 100644
--- a/src/views/darkroom.c
+++ b/src/views/darkroom.c
@@ -1329,7 +1329,8 @@ static void _view_darkroom_filmstrip_activate_callback(gpointer instance,
_dev_change_image(dev, imgid);
// move filmstrip
- dt_thumbtable_set_offset_image(dt_ui_thumbtable(darktable.gui->ui), imgid, TRUE);
+ if(dt_conf_get_bool("filmstrip/ui/auto_scroll"))
+ dt_thumbtable_set_offset_image(dt_ui_thumbtable(darktable.gui->ui), imgid, TRUE);
// force redraw
dt_control_queue_redraw();
}