aboutsummaryrefslogtreecommitdiff
path: root/gdb/tui
diff options
context:
space:
mode:
authorStephane Carrez <stcarrez@nerim.fr>2001-07-23 21:16:20 +0000
committerStephane Carrez <stcarrez@nerim.fr>2001-07-23 21:16:20 +0000
commitd75e970c9d3cfe3e20267cd336762a562f31f623 (patch)
treeb90d7fe2ab6f6439f0246ef70657945aafc91d77 /gdb/tui
parentc6f60bcd2c458714bd21da267719d55ba7e10736 (diff)
downloadgdb-d75e970c9d3cfe3e20267cd336762a562f31f623.zip
gdb-d75e970c9d3cfe3e20267cd336762a562f31f623.tar.gz
gdb-d75e970c9d3cfe3e20267cd336762a562f31f623.tar.bz2
* tuiIO.c (tui_cont_sig): Update cursor position on the screen to
leave it in the command window. (tui_redisplay_readline): Save cursor position to restore the cursor after we go back from background. * tuiData.h (TuiCommandInfo): Add start_line member.
Diffstat (limited to 'gdb/tui')
-rw-r--r--gdb/tui/tuiData.h1
-rw-r--r--gdb/tui/tuiIO.c22
2 files changed, 17 insertions, 6 deletions
diff --git a/gdb/tui/tuiData.h b/gdb/tui/tuiData.h
index 6fc4ca3..9edf000 100644
--- a/gdb/tui/tuiData.h
+++ b/gdb/tui/tuiData.h
@@ -252,6 +252,7 @@ typedef struct _TuiCommandInfo
{
int curLine; /* The current line position */
int curch; /* The current cursor position */
+ int start_line;
}
TuiCommandInfo, *TuiCommandInfoPtr;
diff --git a/gdb/tui/tuiIO.c b/gdb/tui/tuiIO.c
index a089929..ad8a53a 100644
--- a/gdb/tui/tuiIO.c
+++ b/gdb/tui/tuiIO.c
@@ -117,6 +117,7 @@ tui_puts (const char *string)
}
getyx (w, cmdWin->detail.commandInfo.curLine,
cmdWin->detail.commandInfo.curch);
+ cmdWin->detail.commandInfo.start_line = cmdWin->detail.commandInfo.curLine;
/* We could defer the following. */
wrefresh (w);
@@ -144,7 +145,7 @@ tui_redisplay_readline (void)
c_pos = -1;
c_line = -1;
w = cmdWin->generic.handle;
- start_line = cmdWin->detail.commandInfo.curLine;
+ start_line = cmdWin->detail.commandInfo.start_line;
wmove (w, start_line, 0);
prev_col = 0;
height = 1;
@@ -177,7 +178,7 @@ tui_redisplay_readline (void)
}
if (c == '\n')
{
- getyx (w, cmdWin->detail.commandInfo.curLine,
+ getyx (w, cmdWin->detail.commandInfo.start_line,
cmdWin->detail.commandInfo.curch);
}
getyx (w, line, col);
@@ -186,13 +187,16 @@ tui_redisplay_readline (void)
prev_col = col;
}
wclrtobot (w);
- getyx (w, cmdWin->detail.commandInfo.curLine,
+ getyx (w, cmdWin->detail.commandInfo.start_line,
cmdWin->detail.commandInfo.curch);
if (c_line >= 0)
- wmove (w, c_line, c_pos);
+ {
+ wmove (w, c_line, c_pos);
+ cmdWin->detail.commandInfo.curLine = c_line;
+ cmdWin->detail.commandInfo.curch = c_pos;
+ }
+ cmdWin->detail.commandInfo.start_line -= height - 1;
- cmdWin->detail.commandInfo.curLine -= height - 1;
-
wrefresh (w);
fflush(stdout);
}
@@ -307,6 +311,12 @@ tui_cont_sig (int sig)
/* Force a refresh of the screen. */
tuiRefreshAll ();
+
+ /* Update cursor position on the screen. */
+ wmove (cmdWin->generic.handle,
+ cmdWin->detail.commandInfo.start_line,
+ cmdWin->detail.commandInfo.curch);
+ wrefresh (cmdWin->generic.handle);
}
signal (sig, tui_cont_sig);
}