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))

Reply via email to