From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Michael Albinus Newsgroups: gmane.emacs.devel Subject: Re: read-event and unexpected buffer changes Date: Mon, 27 May 2013 13:59:51 +0200 Message-ID: <87zjvgfxag.fsf@gmx.de> References: <87zjwigzg6.fsf@dex.adm.naquadah.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1369656015 12431 80.91.229.3 (27 May 2013 12:00:15 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 27 May 2013 12:00:15 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon May 27 14:00:14 2013 Return-path: Envelope-to: ged-emacs-devel@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 1Ugw61-0008DU-TZ for ged-emacs-devel@m.gmane.org; Mon, 27 May 2013 14:00:14 +0200 Original-Received: from localhost ([::1]:54352 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ugw61-0007iA-Jj for ged-emacs-devel@m.gmane.org; Mon, 27 May 2013 08:00:13 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:42743) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ugw5t-0007Xk-5b for emacs-devel@gnu.org; Mon, 27 May 2013 08:00:09 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ugw5m-0004cY-Vq for emacs-devel@gnu.org; Mon, 27 May 2013 08:00:05 -0400 Original-Received: from mout.gmx.net ([212.227.15.15]:56099) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ugw5m-0004cF-M8 for emacs-devel@gnu.org; Mon, 27 May 2013 07:59:58 -0400 Original-Received: from mailout-de.gmx.net ([10.1.76.31]) by mrigmx.server.lan (mrigmx001) with ESMTP (Nemesis) id 0Ljwk3-1U9nCH0wEz-00buuR for ; Mon, 27 May 2013 13:59:56 +0200 Original-Received: (qmail invoked by alias); 27 May 2013 11:59:55 -0000 Original-Received: from p5DCA371F.dip0.t-ipconnect.de (EHLO detlef.gmx.de) [93.202.55.31] by mail.gmx.net (mp031) with SMTP; 27 May 2013 13:59:55 +0200 X-Authenticated: #3708877 X-Provags-ID: V01U2FsdGVkX1+og9wuFlKoR59VX+v0Xw0eXBfFkYZR5x93Lzu1SP 4mw/+gZSAUWLvh In-Reply-To: <87zjwigzg6.fsf@dex.adm.naquadah.org> (Julien Danjou's message of "Sun, 28 Apr 2013 22:41:45 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) X-Y-GMX-Trusted: 0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-Received-From: 212.227.15.15 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:159828 Archived-At: Julien Danjou writes: > Hi there, Hi, > I'm using `erc-desktop-notifications' to get IRC messages sent with my > nickname over D-Bus using `notifications-notify'. This function calls > `dbus-call-method' which contains the following snippet at the end: > > (with-timeout ((if timeout (/ timeout 1000.0) 25)) > (while (eq (gethash key dbus-return-values-table :ignore) :ignore) > (let ((event (let (unread-command-events) (read-event nil nil 0.1)))) > (when (and event (not (ignore-errors (dbus-check-event event)))) > (setq unread-command-events > (append unread-command-events (list event))))))) > > This `read-event' call causes me trouble. Basically what happens, is > that it changes the ERC buffer in a very subtle way so that the last > line is then on top. > > Hint? Does the following patch suffices? --8<---------------cut here---------------start------------->8--- *** /home/albinmic/src/emacs/lisp/net/dbus.el.~112739~ 2013-05-27 13:51:51.844960427 +0200 --- /home/albinmic/src/emacs/lisp/net/dbus.el 2013-05-27 13:51:33.992671583 +0200 *************** *** 270,276 **** ;; default 25". Events which are not from D-Bus must be restored. (with-timeout ((if timeout (/ timeout 1000.0) 25)) (while (eq (gethash key dbus-return-values-table :ignore) :ignore) ! (let ((event (let (unread-command-events) (read-event nil nil 0.1)))) (when (and event (not (ignore-errors (dbus-check-event event)))) (setq unread-command-events (append unread-command-events (list event))))))) --- 270,277 ---- ;; default 25". Events which are not from D-Bus must be restored. (with-timeout ((if timeout (/ timeout 1000.0) 25)) (while (eq (gethash key dbus-return-values-table :ignore) :ignore) ! (let ((event (let ((inhibit-redisplay t) unread-command-events) ! (read-event nil nil 0.1)))) (when (and event (not (ignore-errors (dbus-check-event event)))) (setq unread-command-events (append unread-command-events (list event))))))) --8<---------------cut here---------------end--------------->8--- Best regards, Michael.