From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Emacs and Gnome Canvas (was: Emacs, QT and Cairo) Date: Thu, 15 Jul 2010 09:55:53 +0300 Message-ID: <83hbk1grnq.fsf@gnu.org> References: <4C3CD120.4040905@swipnet.se> <5A91499A-0470-43FD-9F48-560CEAD3424C@mit.edu> <83wrsyr068.fsf@gnu.org> <83iq4hhjww.fsf@gnu.org> <87sk3lbvv0.fsf@telefonica.net> Reply-To: Eli Zaretskii NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: QUOTED-PRINTABLE X-Trace: dough.gmane.org 1279177106 32299 80.91.229.12 (15 Jul 2010 06:58:26 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Thu, 15 Jul 2010 06:58:26 +0000 (UTC) Cc: emacs-devel@gnu.org To: =?utf-8?Q?=C3=93scar_Fuentes?= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Jul 15 08:58:25 2010 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1OZIOe-0006ae-Si for ged-emacs-devel@m.gmane.org; Thu, 15 Jul 2010 08:58:17 +0200 Original-Received: from localhost ([127.0.0.1]:58017 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OZIOe-0003XH-4G for ged-emacs-devel@m.gmane.org; Thu, 15 Jul 2010 02:58:16 -0400 Original-Received: from [140.186.70.92] (port=57505 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OZIOX-0003WI-V7 for emacs-devel@gnu.org; Thu, 15 Jul 2010 02:58:10 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OZIOW-0003T2-JP for emacs-devel@gnu.org; Thu, 15 Jul 2010 02:58:09 -0400 Original-Received: from mtaout21.012.net.il ([80.179.55.169]:43677) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OZIOW-0003Sq-9i for emacs-devel@gnu.org; Thu, 15 Jul 2010 02:58:08 -0400 Original-Received: from conversion-daemon.a-mtaout21.012.net.il by a-mtaout21.012.net.il (HyperSendmail v2007.08) id <0L5L0090074Q9000@a-mtaout21.012.net.il> for emacs-devel@gnu.org; Thu, 15 Jul 2010 09:57:49 +0300 (IDT) Original-Received: from HOME-C4E4A596F7 ([77.127.120.144]) by a-mtaout21.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0L5L008L57CDOV20@a-mtaout21.012.net.il>; Thu, 15 Jul 2010 09:57:49 +0300 (IDT) In-reply-to: <87sk3lbvv0.fsf@telefonica.net> X-012-Sender: halo1@inter.net.il X-detected-operating-system: by eggs.gnu.org: Solaris 10 (beta) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:127325 Archived-At: > From: =C3=93scar Fuentes > Date: Wed, 14 Jul 2010 23:24:03 +0200 >=20 > I'm very interested on this. Which are those requirements that gnom= e's > canvas can not meet? To answer that, we need someone with good knowledge of both the requirements of the Emacs display engine and of the features and possibilities of the Gnome Canvas library. Do we have such an individual? This white paper: http://developer.gnome.org/doc/whitepapers/canvas/canvas.html gives some initial overview of Canvas, but a more in-depth descriptio= n is required to fully understand the impact of using Gnome Canvas as the Emacs display engine. A few initial thoughts from someone who is entirely ignorant about Canvas, based on that white paper (which coul= d be outdated, since it was written 11 years ago): . Canvas seems to need GTK+. What does this mean for platforms wher= e GTK+ is unavailable or not maintained? What about supporting the TTY? Do these issues mean we will need to keep the existing display engine in parallel with the Canvas-based one? . The Canvas redisplay runs from the GTK+ idle handlers. In Emacs, the idle loop, in addition to triggering redisplay, also checks fo= r input from the keyboard and from subprocesses. Does this mean tha= t part of the input handling will need to be run by GTK+? . Canvas redisplay is caused by requests from the application to update some "canvas item" when the underlying application's object= s are modified; these requests are then served when GTK+ idle handlers are run. Emacs display engine works differently: changes that require redisplay are not considered until redisplay is entered; the "requests" to update the display are implicitly recorded in the buffers and in the various related data structures (text properties and overlays, display strings, etc.), but not explicitly translated to display terms until redisplay time, and a= s an inherent part of redisplay itself. These two very different models will need to be reconciled in some reasonably efficient way= . > > I'm not sure I follow: are you looking for toolkits that can be u= sed > > to replace the Emacs display engine, i.e. those toolkits that sup= port > > everything Emacs needs and does today? >=20 > I think he is looking for something that *expands* what Emacs can d= o > today. To be able to expand Emacs you need first be able to do what Emacs does today.