changeset: 6638:d0746905cb3f
user: Kevin McCarthy <[email protected]>
date: Sat Apr 30 10:50:43 2016 -0700
link: http://dev.mutt.org/hg/mutt/rev/d0746905cb3f
Fix pager layout when $status_on_top with no mini-index. (closes #3836)
The pager_window->row_offset should only be adjusted when we have a
mini-index.
Pull common window initialization above, and adjust only when the
mini-index is enabled. The pager_window rows and row_offset code
could be further consolidated (since the status line is always a
height of one), but I think the code reads a bit more clearly when the
adjustments are explicitly stated.
diffs (60 lines):
diff -r e369be9d490b -r d0746905cb3f pager.c
--- a/pager.c Fri Apr 29 18:00:10 2016 -0700
+++ b/pager.c Sat Apr 30 10:50:43 2016 -0700
@@ -1667,45 +1667,35 @@
indicator = indexlen / 3;
+ memcpy (pager_window, MuttIndexWindow, sizeof(mutt_window_t));
+ memcpy (pager_status_window, MuttStatusWindow, sizeof(mutt_window_t));
+ index_status_window->rows = index_window->rows = 0;
+
if (IsHeader (extra) && PagerIndexLines)
{
memcpy (index_window, MuttIndexWindow, sizeof(mutt_window_t));
index_window->rows = indexlen > 0 ? indexlen - 1 : 0;
- }
- else
- index_status_window->rows = index_window->rows = 0;
- if (option (OPTSTATUSONTOP))
- {
- if (IsHeader (extra) && PagerIndexLines)
+ if (option (OPTSTATUSONTOP))
{
memcpy (index_status_window, MuttStatusWindow,
sizeof(mutt_window_t));
memcpy (pager_status_window, MuttIndexWindow, sizeof(mutt_window_t));
pager_status_window->rows = 1;
pager_status_window->row_offset += index_window->rows;
+
+ pager_window->rows -= index_window->rows + pager_status_window->rows;
+ pager_window->row_offset += index_window->rows +
pager_status_window->rows;
}
else
- memcpy (pager_status_window, MuttStatusWindow,
sizeof(mutt_window_t));
-
- memcpy (pager_window, MuttIndexWindow, sizeof(mutt_window_t));
- pager_window->rows -= index_window->rows + pager_status_window->rows;
- pager_window->row_offset += index_window->rows +
pager_status_window->rows;
- }
- else
- {
- if (IsHeader (extra) && PagerIndexLines)
{
memcpy (index_status_window, MuttIndexWindow, sizeof(mutt_window_t));
index_status_window->rows = 1;
index_status_window->row_offset += index_window->rows;
+
+ pager_window->rows -= index_window->rows + index_status_window->rows;
+ pager_window->row_offset += index_window->rows +
index_status_window->rows;
}
-
- memcpy (pager_status_window, MuttStatusWindow, sizeof(mutt_window_t));
-
- memcpy (pager_window, MuttIndexWindow, sizeof(mutt_window_t));
- pager_window->rows -= index_window->rows + index_status_window->rows;
- pager_window->row_offset += index_window->rows +
index_status_window->rows;
}
if (option (OPTHELP))