From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: martin rudalics Newsgroups: gmane.emacs.bugs Subject: bug#12600: 24.2.50; linum-mode: line numbers in fringe do not refresh when resizing frame Date: Sun, 14 Oct 2012 20:33:39 +0200 Message-ID: <507B0583.50704@gmx.at> References: <50720A4F.2010200@gmail.com> <83391p5sjc.fsf@gnu.org> <50729A38.8000800@gmx.at> <83haq53qy8.fsf@gnu.org> <5073F029.4040201@gmx.at> <83y5jfziey.fsf@gnu.org> <50754C80.7010809@gmx.at> <83ehl6z5y0.fsf@gnu.org> <50767172.4060807@gmx.at> <83a9vtkkvl.fsf@gnu.org> <5077C771.1000208@gmx.at> <837gqw843w.fsf@gnu.org> <5077E47D.4080300@gmx.at> <50783A85.1080808@gmx.at> <83626e7nse.fsf@gnu.org> <507939B2.8070709@gmx.at> <83wqyu5ynn.fsf@gnu.org> <5079A8B0.7050000@gmx.at> <83obk65joa.fsf@gnu.org> <507A921B.1060807@gmx.at> <838vb95kbi.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1350239648 20096 80.91.229.3 (14 Oct 2012 18:34:08 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 14 Oct 2012 18:34:08 +0000 (UTC) Cc: 12600@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Oct 14 20:34:14 2012 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1TNT0u-0003pT-6E for geb-bug-gnu-emacs@m.gmane.org; Sun, 14 Oct 2012 20:34:12 +0200 Original-Received: from localhost ([::1]:46604 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TNT0n-00036A-Gp for geb-bug-gnu-emacs@m.gmane.org; Sun, 14 Oct 2012 14:34:05 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:47010) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TNT0k-00035C-7O for bug-gnu-emacs@gnu.org; Sun, 14 Oct 2012 14:34:03 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TNT0i-0002AC-GY for bug-gnu-emacs@gnu.org; Sun, 14 Oct 2012 14:34:02 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:33831) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TNT0i-0002A7-Co for bug-gnu-emacs@gnu.org; Sun, 14 Oct 2012 14:34:00 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1TNT1i-0004Ks-4B for bug-gnu-emacs@gnu.org; Sun, 14 Oct 2012 14:35:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: martin rudalics Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 14 Oct 2012 18:35:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 12600 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 12600-submit@debbugs.gnu.org id=B12600.135023970016659 (code B ref 12600); Sun, 14 Oct 2012 18:35:02 +0000 Original-Received: (at 12600) by debbugs.gnu.org; 14 Oct 2012 18:35:00 +0000 Original-Received: from localhost ([127.0.0.1]:44082 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TNT1g-0004Ke-Ag for submit@debbugs.gnu.org; Sun, 14 Oct 2012 14:35:00 -0400 Original-Received: from mailout-de.gmx.net ([213.165.64.23]:50421) by debbugs.gnu.org with smtp (Exim 4.72) (envelope-from ) id 1TNT1d-0004KR-RX for 12600@debbugs.gnu.org; Sun, 14 Oct 2012 14:34:59 -0400 Original-Received: (qmail invoked by alias); 14 Oct 2012 18:33:48 -0000 Original-Received: from 62-47-48-254.adsl.highway.telekom.at (EHLO [62.47.48.254]) [62.47.48.254] by mail.gmx.net (mp027) with SMTP; 14 Oct 2012 20:33:48 +0200 X-Authenticated: #14592706 X-Provags-ID: V01U2FsdGVkX19t/6hl2+Ntm/AfmRx6SENLq9UeG4MAGHi8uYuUHF 7vK62DvHzMt4Vc In-Reply-To: <838vb95kbi.fsf@gnu.org> X-Y-GMX-Trusted: 0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:65603 Archived-At: > How do you know whether the window's buffer was modified, under your > suggestion? Won't we need some record of "the last buffer state when > this window was displayed"? E.g., how do we know that point moved > since last full redisplay of the window? If we do not know whether point moved in a buffer since its last redisplay, we probably can't optimize anything at all. But we already got MODIFF, CHARS_MODIFF, and OVERLAY_MODIFF. What are these good for if we always have to redisplay a window showing a buffer whose point could have moved since the last redisplay? But apparently try_cursor_movement handles this if I understand your text below correctly. So why are you asking this? >> (2) Redraw if the window itself has been modified. > > You mean, its dimensions or start-point? Or something else? That it shows another buffer. The window code is not able to discriminate anything else but these three. >> (3) Don't redraw the window otherwise. This would cover the case where >> `point' was moved in a buffer not shown in this window or another >> window was scrolled. >> >> This would replace checking of windows_or_buffers_changed with a >> finer-grained has "this window or its buffer changed". But after a >> cursory look at redisplay_window I doubt that such a change would be >> feasible. And I have no idea to which extent (3) is already covered by >> try_window_id. > > The normal "do-nothing" route is to call try_cursor_movement, So try_cursor_movement cares about the no buffer change, no overlay change, no window change, no font change, ... only point movement case. > then > "goto done". try_window_id is called only if there's some change that > requires redisplaying some of the text, not just moving the cursor. That's what I meant earlier where you replied by asking "how do we know that point moved". The various MODIFFs should tell me whether the buffer changed. Some other settings tell me whether some font or the cursor type changed. And window_modified tells me whether something in the window changed that requires to execute try_window_id. If none of these changed, the window can stay alone. All this would work only if point movement has been handled already. This would mean that try_cursor_movement had instead of && !windows_or_buffers_changed check && !w->window_modified and the respective MODIFF conjuncts for w's buffer. BTW, couldn't we instead of && !(!NILP (Vtransient_mark_mode) && !NILP (BVAR (current_buffer, mark_active))) use the more human && (NILP (Vtransient_mark_mode) || NILP (BVAR (current_buffer, mark_active))) here? martin