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(); }