diff --git a/src/mark.c b/src/mark.c index ce94293..83eaed1 100644 --- a/src/mark.c +++ b/src/mark.c @@ -1035,6 +1035,7 @@ processchar: LAY_CALL_UP(LRefreshAll(flayer, 0)); } ExitOverlayPage(); + WindowChanged(fore, 'P'); if (append_mode) LMsg(0, "Appended %d characters to buffer", newcopylen); @@ -1277,6 +1278,7 @@ MarkAbort() rem(markdata->x1, markdata->y1, markdata->cx, markdata->cy, redisp, (char *)0, yend); } ExitOverlayPage(); + WindowChanged(fore, 'P'); } diff --git a/src/process.c b/src/process.c index 2874e7e..0e835f0 100644 --- a/src/process.c +++ b/src/process.c @@ -2231,6 +2231,7 @@ int key; break; } MarkRoutine(); + WindowChanged(fore, 'P'); break; case RC_HISTORY: { diff --git a/src/screen.c b/src/screen.c index e8f4cac..10819c9 100644 --- a/src/screen.c +++ b/src/screen.c @@ -118,6 +118,8 @@ int VBellWait, MsgWait, MsgMinWait, SilenceWait; extern struct acluser *users; extern struct display *displays, *display; +extern struct LayFuncs MarkLf; + extern int visual_bell; #ifdef COPY_PASTE @@ -2804,6 +2806,16 @@ int rec; if (minusflg) qmflag = 1; break; + case 'P': + p--; + if (display && ev && ev != &D_hstatusev) /* Hack */ + { + /* Is the layer in the current canvas in copy mode? */ + struct canvas *cv = (struct canvas *)ev->data; + if (ev == &cv->c_captev && cv->c_layer->l_layfn == &MarkLf) + qmflag = 1; + } + break; case '>': truncpos = p - winmsg_buf; truncper = num > 100 ? 100 : num;