missing 'WHERE' aka missing extern.
[apps/madmutt.git] / menu.c
diff --git a/menu.c b/menu.c
index 7370b12..95d4f47 100644 (file)
--- a/menu.c
+++ b/menu.c
@@ -29,6 +29,8 @@
 #include <string.h>
 #include <stdlib.h>
 
+#define SW              (option(OPTMBOXPANE)?SidebarWidth:0)
+
 extern int Charset_is_utf8;     /* FIXME: bad modularisation */
 
 extern size_t UngetCount;
@@ -171,8 +173,8 @@ void menu_redraw_full (MUTTMENU * menu)
 
   if (option (OPTHELP)) {
     SETCOLOR (MT_COLOR_STATUS);
-    move (option (OPTSTATUSONTOP) ? LINES - 2 : 0, 0);
-    mutt_paddstr (COLS, menu->help);
+    move (option (OPTSTATUSONTOP) ? LINES - 2 : 0, SW);
+    mutt_paddstr (COLS-SW, menu->help);
     SETCOLOR (MT_COLOR_NORMAL);
     menu->offset = 1;
     menu->pagelen = LINES - 3;
@@ -182,6 +184,8 @@ void menu_redraw_full (MUTTMENU * menu)
     menu->pagelen = LINES - 2;
   }
 
+  sidebar_draw_frames();
+
   mutt_show_error ();
 
   menu->redraw = REDRAW_INDEX | REDRAW_STATUS;
@@ -193,10 +197,11 @@ void menu_redraw_status (MUTTMENU * menu)
 
   snprintf (buf, sizeof (buf), M_MODEFMT, menu->title);
   SETCOLOR (MT_COLOR_STATUS);
-  move (option (OPTSTATUSONTOP) ? 0 : LINES - 2, 0);
-  mutt_paddstr (COLS, buf);
+  move (option (OPTSTATUSONTOP) ? 0 : LINES - 2, SW);
+  mutt_paddstr (COLS-SW, buf);
   SETCOLOR (MT_COLOR_NORMAL);
   menu->redraw &= ~REDRAW_STATUS;
+  sidebar_draw_frames();
 }
 
 void menu_redraw_index (MUTTMENU * menu)
@@ -204,7 +209,6 @@ void menu_redraw_index (MUTTMENU * menu)
   char buf[STRING];
   int i;
 
-  sidebar_draw (1);
   for (i = menu->top; i < menu->top + menu->pagelen; i++) {
     if (i < menu->max) {
       menu_make_entry (buf, sizeof (buf), menu, i);
@@ -217,18 +221,20 @@ void menu_redraw_index (MUTTMENU * menu)
         if (i == menu->current) {
           attrset (menu->color (i));
           ADDCOLOR (MT_COLOR_INDICATOR);
+          BKGDSET (MT_COLOR_INDICATOR);
           addstr ("->");
           attrset (menu->color (i));
           addch (' ');
         }
         else {
           attrset (menu->color (i));
-          move (i - menu->top + menu->offset, SidebarWidth);
+          move (i - menu->top + menu->offset, SW);
           addstr ("   ");
         }
 
         print_enriched_string (menu->color (i), (unsigned char *) buf, 1);
         SETCOLOR (MT_COLOR_NORMAL);
+        BKGDSET (MT_COLOR_NORMAL);
       }
       else {
         attrset (menu->color (i));
@@ -239,6 +245,8 @@ void menu_redraw_index (MUTTMENU * menu)
         }
 
         CLEARLINE_WIN (i - menu->top + menu->offset);
+
+        move (i - menu->top + menu->offset, SW);
         print_enriched_string (menu->color (i), (unsigned char *) buf,
                                i != menu->current);
         SETCOLOR (MT_COLOR_NORMAL);
@@ -248,6 +256,9 @@ void menu_redraw_index (MUTTMENU * menu)
     else
       CLEARLINE_WIN (i - menu->top + menu->offset);
   }
+  sidebar_draw (1);
+/*  sidebar_draw_frames(); */
+
   menu->redraw = 0;
 }
 
@@ -260,7 +271,7 @@ void menu_redraw_motion (MUTTMENU * menu)
     return;
   }
 
-  move (menu->oldcurrent + menu->offset - menu->top, SidebarWidth);
+  move (menu->oldcurrent + menu->offset - menu->top, SW);
   SETCOLOR (MT_COLOR_NORMAL);
   BKGDSET (MT_COLOR_NORMAL);
 
@@ -273,14 +284,14 @@ void menu_redraw_motion (MUTTMENU * menu)
       clrtoeol ();
       menu_make_entry (buf, sizeof (buf), menu, menu->oldcurrent);
       menu_pad_string (buf, sizeof (buf));
-      move (menu->oldcurrent + menu->offset - menu->top, SidebarWidth + 3);
+      move (menu->oldcurrent + menu->offset - menu->top, SW + 3);
       print_enriched_string (menu->color (menu->oldcurrent),
                              (unsigned char *) buf, 1);
       SETCOLOR (MT_COLOR_NORMAL);
     }
 
     /* now draw it in the new location */
-    move (menu->current + menu->offset - menu->top, SidebarWidth);
+    move (menu->current + menu->offset - menu->top, SW);
     attrset (menu->color (menu->current));
     ADDCOLOR (MT_COLOR_INDICATOR);
     addstr ("->");
@@ -302,6 +313,7 @@ void menu_redraw_motion (MUTTMENU * menu)
     ADDCOLOR (MT_COLOR_INDICATOR);
     BKGDSET (MT_COLOR_INDICATOR);
     CLEARLINE_WIN (menu->current - menu->top + menu->offset);
+    move (menu->current + menu->offset - menu->top, SW);
     print_enriched_string (menu->color (menu->current), (unsigned char *) buf,
                            0);
     SETCOLOR (MT_COLOR_NORMAL);
@@ -314,7 +326,7 @@ void menu_redraw_current (MUTTMENU * menu)
 {
   char buf[STRING];
 
-  move (menu->current + menu->offset - menu->top, SidebarWidth);
+  move (menu->current + menu->offset - menu->top, SW);
   menu_make_entry (buf, sizeof (buf), menu, menu->current);
   menu_pad_string (buf, sizeof (buf));
 
@@ -374,7 +386,7 @@ void menu_check_recenter (MUTTMENU * menu)
       set_option (OPTNEEDREDRAW);
     }
   } else {
-    if (option (OPTMENUSCROLL) || (menu->pagelen <= 0) || (c <= MenuContext)) {
+    if (option (OPTMENUSCROLL) || (menu->pagelen <= 0) || (c < MenuContext)) {
       if (menu->current < menu->top + c)
         menu->top = menu->current - c;
       else if (menu->current >= menu->top + menu->pagelen - c)
@@ -808,9 +820,9 @@ int mutt_menuLoop (MUTTMENU * menu)
     menu->oldcurrent = menu->current;
 
     if (option (OPTARROWCURSOR))
-      move (menu->current - menu->top + menu->offset, 2);
+      move (menu->current - menu->top + menu->offset, SW + 2);
     else if (option (OPTBRAILLEFRIENDLY))
-      move (menu->current - menu->top + menu->offset, 0);
+      move (menu->current - menu->top + menu->offset, SW);
     else
       move (menu->current - menu->top + menu->offset, COLS - 1);