diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py
index 76a7e5f2c5..08028c9bf6 100644
--- a/src/calibre/gui2/__init__.py
+++ b/src/calibre/gui2/__init__.py
@@ -111,7 +111,7 @@ defs['bd_show_cover'] = True
defs['bd_overlay_cover_size'] = False
defs['tags_browser_category_icons'] = {}
defs['cover_browser_reflections'] = True
-defs['extra_row_spacing'] = 0
+defs['book_list_extra_row_spacing'] = 0
defs['refresh_book_list_on_bulk_edit'] = True
defs['cover_grid_width'] = 0
defs['cover_grid_height'] = 0
diff --git a/src/calibre/gui2/library/views.py b/src/calibre/gui2/library/views.py
index 6b32967b97..73d003067b 100644
--- a/src/calibre/gui2/library/views.py
+++ b/src/calibre/gui2/library/views.py
@@ -163,6 +163,7 @@ class BooksView(QTableView): # {{{
def __init__(self, parent, modelcls=BooksModel, use_edit_metadata_dialog=True):
QTableView.__init__(self, parent)
+ self.default_row_height = self.verticalHeader().defaultSectionSize()
self.gui = parent
self.setProperty('highlight_current_item', 150)
self.row_sizing_done = False
@@ -658,9 +659,8 @@ class BooksView(QTableView): # {{{
def do_row_sizing(self):
# Resize all rows to have the correct height
if not self.row_sizing_done and self.model().rowCount(QModelIndex()) > 0:
- self.resizeRowToContents(0)
- self.verticalHeader().setDefaultSectionSize(self.rowHeight(0) +
- gprefs['extra_row_spacing'])
+ vh = self.verticalHeader()
+ vh.setDefaultSectionSize(max(vh.minimumSectionSize(), self.default_row_height + gprefs['book_list_extra_row_spacing']))
self._model.set_row_height(self.rowHeight(0))
self.row_sizing_done = True
diff --git a/src/calibre/gui2/preferences/look_feel.py b/src/calibre/gui2/preferences/look_feel.py
index 9df9d7da1e..dafbadccdb 100644
--- a/src/calibre/gui2/preferences/look_feel.py
+++ b/src/calibre/gui2/preferences/look_feel.py
@@ -157,6 +157,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
r('emblem_size', gprefs)
r('emblem_position', gprefs, choices=[
(_('Left'), 'left'), (_('Top'), 'top'), (_('Right'), 'right'), (_('Bottom'), 'bottom')])
+ r('book_list_extra_row_spacing', gprefs)
def get_esc_lang(l):
if l == 'en':
diff --git a/src/calibre/gui2/preferences/look_feel.ui b/src/calibre/gui2/preferences/look_feel.ui
index a859f6a17c..4299ac492c 100644
--- a/src/calibre/gui2/preferences/look_feel.ui
+++ b/src/calibre/gui2/preferences/look_feel.ui
@@ -207,18 +207,18 @@
Extra &spacing to add between rows in the book list:
- opt_extra_row_spacing
+ opt_book_list_extra_row_spacing
-
-
-
- None
-
+
px
+
+ -5
+