aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--ChangeLog9
-rw-r--r--main.c24
2 files changed, 24 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 54867fc..35401ad 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2001-12-25 Fumitoshi UKAI <ukai@debian.or.jp>
+
+ * [w3m-dev 02719] (based on [w3m-dev 02708] comments)
+ * resize_hook: set resized flag only
+ * main.c (MAIN): in key input loop, process resize
+ when resized flag is set
+
2001-12-24 Fumitoshi UKAI <ukai@debian.or.jp>
* [w3m-dev 02702] fix problem with emacs-w3m in [w3m-dev 02699]
@@ -1463,4 +1470,4 @@
* release-0-2-1
* import w3m-0.2.1
-$Id: ChangeLog,v 1.164 2001/12/23 16:30:10 ukai Exp $
+$Id: ChangeLog,v 1.165 2001/12/25 09:08:58 ukai Exp $
diff --git a/main.c b/main.c
index 0cc19c4..3925260 100644
--- a/main.c
+++ b/main.c
@@ -1,4 +1,4 @@
-/* $Id: main.c,v 1.43 2001/12/23 16:30:10 ukai Exp $ */
+/* $Id: main.c,v 1.44 2001/12/25 09:08:58 ukai Exp $ */
#define MAINPROGRAM
#include "fm.h"
#include <signal.h>
@@ -45,6 +45,10 @@ static Event alarm_event;
static MySignalHandler SigAlarm(SIGNAL_ARG);
#endif
+#ifdef SIGWINCH
+static int resized = 0;
+#endif
+
#ifdef USE_MARK
static char *MarkString = NULL;
#endif
@@ -896,9 +900,7 @@ MAIN(int argc, char **argv, char **envp)
setlinescols();
setupscreen();
#endif /* not SIGWINCH */
-#ifdef SIGCHLD
- signal(SIGCHLD, sig_chld);
-#endif
+
Currentbuf = Firstbuf;
displayBuffer(Currentbuf, B_NORMAL);
if (line_str) {
@@ -938,6 +940,15 @@ MAIN(int argc, char **argv, char **envp)
alarm(alarm_sec);
}
#endif
+#ifdef SIGWINCH
+ if (resized) {
+ resized = 0;
+ setlinescols();
+ setupscreen();
+ if (Currentbuf)
+ displayBuffer(Currentbuf, B_FORCE_REDRAW);
+ }
+#endif
c = getch();
#ifdef USE_ALARM
if (alarm_sec > 0) {
@@ -1166,10 +1177,7 @@ intTrap(SIGNAL_ARG)
MySignalHandler
resize_hook(SIGNAL_ARG)
{
- setlinescols();
- setupscreen();
- if (Currentbuf)
- displayBuffer(Currentbuf, B_FORCE_REDRAW);
+ resized = 1;
signal(SIGWINCH, resize_hook);
SIGNAL_RETURN;
}