]> granicus.if.org Git - neomutt/commitdiff
refactor: move() to mutt_window_move_abs()
authorRichard Russon <rich@flatcap.org>
Fri, 27 Sep 2019 15:03:52 +0000 (16:03 +0100)
committerRichard Russon <rich@flatcap.org>
Sat, 28 Sep 2019 02:18:41 +0000 (03:18 +0100)
Encapsulate a curses function to reduce dependencies.
This function works with absolute screen coordinates rather than coords
based on a MuttWindow.  This function should be eliminated soon.

menu.c
mutt_window.c
mutt_window.h
pager.c
sidebar.c

diff --git a/menu.c b/menu.c
index 90b2dd72e44f47f99516a1f4d36b37ca8273b0a2..397a0216043055b8ed15b6c893a4057a67aaca6b 100644 (file)
--- a/menu.c
+++ b/menu.c
@@ -143,9 +143,6 @@ static void print_enriched_string(int index, int attr, unsigned char *s, bool do
   size_t n = mutt_str_strlen((char *) s);
   mbstate_t mbstate;
 
-  if (!stdscr)
-    return;
-
   memset(&mbstate, 0, sizeof(mbstate));
   while (*s)
   {
@@ -362,7 +359,7 @@ void menu_redraw_full(struct Menu *menu)
 {
   mutt_curses_set_color(MT_COLOR_NORMAL);
   /* clear() doesn't optimize screen redraws */
-  move(0, 0);
+  mutt_window_move_abs(0, 0);
   mutt_window_clrtobot();
 
   if (C_Help)
@@ -1085,7 +1082,7 @@ void mutt_menu_pop_current(struct Menu *menu)
   else
   {
     CurrentMenu = MENU_MAIN;
-    move(0, 0);
+    mutt_window_move_abs(0, 0);
     mutt_window_clrtobot();
   }
 }
index 688dda500878476f935a5ea9305e23dd7dc1a75b..f6f9ca6cef3d9cd9177d9c56dd85c4865bd66788 100644 (file)
@@ -401,3 +401,13 @@ int mutt_window_addstr(const char *str)
   return addstr(str);
 #endif
 }
+
+/**
+ * mutt_window_move_abs - Move the cursor to an absolute screen position
+ * @param row Screen row (0-based)
+ * @param col Screen column (0-based)
+ */
+void mutt_window_move_abs(int row, int col)
+{
+  move(row, col);
+}
index 1857b15d78274a551454f1b873374106a2f6fa70..81d2e94cd705f367f7f967a214196ff8cdfd0e54 100644 (file)
@@ -65,6 +65,7 @@ void mutt_window_clearline(struct MuttWindow *win, int row);
 void mutt_window_clrtobot (void);
 void mutt_window_clrtoeol (struct MuttWindow *win);
 int  mutt_window_move     (struct MuttWindow *win, int row, int col);
+void mutt_window_move_abs (int row, int col);
 int  mutt_window_mvaddstr (struct MuttWindow *win, int row, int col, const char *str);
 int  mutt_window_mvprintw (struct MuttWindow *win, int row, int col, const char *fmt, ...);
 
diff --git a/pager.c b/pager.c
index 5cc1e820eefbdbfc22fb8901a65e9d726636e667..bd0a680fcd044799f0eaaf8635d67dc2d59b1c28 100644 (file)
--- a/pager.c
+++ b/pager.c
@@ -1943,7 +1943,7 @@ static void pager_custom_redraw(struct Menu *pager_menu)
   {
     mutt_curses_set_color(MT_COLOR_NORMAL);
     /* clear() doesn't optimize screen redraws */
-    move(0, 0);
+    mutt_window_move_abs(0, 0);
     mutt_window_clrtobot();
 
     if (IsEmail(rd->extra) && Context && ((Context->mailbox->vcount + 1) < C_PagerIndexLines))
@@ -2341,7 +2341,7 @@ int mutt_pager(const char *banner, const char *fname, PagerFlags flags, struct P
     {
       if (braille_line != -1)
       {
-        move(braille_line + 1, 0);
+        mutt_window_move_abs(braille_line + 1, 0);
         braille_line = -1;
       }
     }
index dd0e90b770c390903333608f81554a7fd82c0c8b..ba35213792c254275c3f028f7ecc6ab65d22bea2 100644 (file)
--- a/sidebar.c
+++ b/sidebar.c
@@ -999,7 +999,7 @@ void mutt_sb_draw(void)
   }
 
   draw_sidebar(num_rows, num_cols, div_width);
-  move(y, x);
+  mutt_window_move_abs(y, x);
 }
 
 /**