From: "Jan Djärv" <jan.h.d@swipnet.se>
To: Eli Zaretskii <eliz@gnu.org>
Cc: "Óscar Fuentes" <ofv@wanadoo.es>, emacs-devel@gnu.org
Subject: Re: Emacs and Gnome Canvas
Date: Thu, 15 Jul 2010 09:53:21 +0200 [thread overview]
Message-ID: <4C3EBE71.7090905@swipnet.se> (raw)
In-Reply-To: <4C3EBCDC.8050709@swipnet.se>
And besides this, you would have to have a GnomeCanvas per Emacs window.
Jan D.
Jan Djärv skrev 2010-07-15 09.46:
>
>
> Eli Zaretskii skrev 2010-07-15 08.55:
>>
>> . Canvas seems to need GTK+. What does this mean for platforms where
>> 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?
>
> Gtk+ is required, you would have to have a parallel display engine for all
> non-Gtk+ cases.
>>
>> . The Canvas redisplay runs from the GTK+ idle handlers. In Emacs,
>> the idle loop, in addition to triggering redisplay, also checks for
>> input from the keyboard and from subprocesses. Does this mean that
>> part of the input handling will need to be run by GTK+?
>
> Yes. Now we run the Gtk+ event loop (or actually not the loop, just a step)
> only when we know there is events pending. Again, parallel implementation for
> non-Gtk+. But normal redisplay for Gtk+ also happens in idle handlers. We are
> in the Gtk+ event loop often enough for this to happen often enough. Sometimes
> though (scroll bars mainly) we force redisplay in Gtk+. I assume you can do
> that for the Canvas also.
>
>>
>> . Canvas redisplay is caused by requests from the application to
>> update some "canvas item" when the underlying application's objects
>> 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 as
>> an inherent part of redisplay itself. These two very different
>> models will need to be reconciled in some reasonably efficient way.
>
> The changes that require redisplay would have to notify the Canvas that things
> changed. I think this style is more efficient.
>
> But I'm not sure it is the right way to go for Emacs unless Gtk+ can run on
> all platforms now. Even if it can, do we want Gtk+ look and feel on W32, OSX,
> Nextstep etc.? TTY is still a separate issue though.
>
> Jan D.
next prev parent reply other threads:[~2010-07-15 7:53 UTC|newest]
Thread overview: 118+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-13 19:02 Emacs, QT and Cairo Was: Re: Efforts to attract more users? Stephen Eilert
2010-07-13 19:29 ` Chong Yidong
2010-07-13 19:51 ` Chad Brown
2010-07-13 20:48 ` Jan Djärv
2010-07-13 22:30 ` Emacs, QT and Cairo Chad Brown
2010-07-14 1:39 ` Stephen J. Turnbull
2010-07-14 2:32 ` Óscar Fuentes
2010-07-14 7:29 ` Eli Zaretskii
2010-07-14 18:37 ` Chad Brown
2010-07-14 20:45 ` Eli Zaretskii
2010-07-14 21:24 ` Óscar Fuentes
2010-07-15 6:55 ` Emacs and Gnome Canvas (was: Emacs, QT and Cairo) Eli Zaretskii
2010-07-15 7:46 ` Emacs and Gnome Canvas Jan Djärv
2010-07-15 7:53 ` Jan Djärv [this message]
2010-07-15 8:36 ` joakim
2010-07-15 8:40 ` Eli Zaretskii
2010-07-15 8:50 ` Jan Djärv
2010-07-15 8:38 ` Eli Zaretskii
2010-07-15 8:48 ` Jan Djärv
2010-07-15 8:59 ` Eli Zaretskii
2010-07-15 9:29 ` Jan Djärv
2010-07-15 10:24 ` Eli Zaretskii
2010-07-15 10:54 ` Jan Djärv
2010-07-15 12:27 ` Eli Zaretskii
2010-07-15 14:18 ` Óscar Fuentes
2010-07-15 15:14 ` Eli Zaretskii
2010-07-16 6:33 ` Miles Bader
2010-07-15 16:00 ` Chong Yidong
2010-07-15 16:27 ` Óscar Fuentes
2010-07-15 17:06 ` Eli Zaretskii
2010-07-15 17:48 ` Óscar Fuentes
2010-07-15 18:06 ` Eli Zaretskii
2010-07-15 21:27 ` Óscar Fuentes
2010-07-16 8:17 ` Eli Zaretskii
2010-07-16 14:24 ` Óscar Fuentes
2010-07-16 15:19 ` Eli Zaretskii
2010-07-16 16:07 ` Óscar Fuentes
2010-07-16 18:43 ` Eli Zaretskii
2010-07-16 21:21 ` Óscar Fuentes
2010-07-16 23:44 ` Chad Brown
2010-07-17 0:08 ` Óscar Fuentes
2010-07-17 7:57 ` Eli Zaretskii
2010-07-17 8:34 ` Andreas Schwab
2010-07-17 9:10 ` Eli Zaretskii
2010-07-17 9:40 ` Andreas Schwab
2010-07-17 10:23 ` Eli Zaretskii
2010-07-17 13:49 ` Óscar Fuentes
2010-07-17 7:27 ` Eli Zaretskii
2010-07-17 13:42 ` Óscar Fuentes
2010-07-17 15:27 ` Eli Zaretskii
2010-07-17 21:53 ` Óscar Fuentes
2010-07-18 1:42 ` Miles Bader
2010-07-18 2:45 ` Óscar Fuentes
2010-07-18 8:06 ` Chad Brown
2010-07-18 14:43 ` Óscar Fuentes
2010-07-21 8:34 ` Stefan Monnier
2010-07-22 14:26 ` Stefan Monnier
2010-07-15 17:22 ` Chong Yidong
2010-07-15 18:02 ` Óscar Fuentes
2010-07-15 22:10 ` Stephen Eilert
2010-07-16 7:52 ` Eli Zaretskii
2010-07-16 2:14 ` YAMAMOTO Mitsuharu
2010-07-16 7:33 ` Jan Djärv
2010-07-16 9:52 ` Eli Zaretskii
2010-07-16 10:15 ` YAMAMOTO Mitsuharu
2010-07-16 10:39 ` Eli Zaretskii
2010-07-16 12:42 ` Jan Djärv
2010-07-17 3:50 ` YAMAMOTO Mitsuharu
2010-07-17 8:33 ` Jan Djärv
2010-07-17 8:38 ` YAMAMOTO Mitsuharu
2010-07-17 9:18 ` Jan Djärv
2010-07-17 9:25 ` YAMAMOTO Mitsuharu
2010-07-17 10:26 ` Jan Djärv
2010-07-18 3:51 ` YAMAMOTO Mitsuharu
2010-07-18 7:10 ` Jan Djärv
2010-07-18 7:45 ` YAMAMOTO Mitsuharu
2010-07-18 9:06 ` Jan Djärv
2010-07-19 0:50 ` YAMAMOTO Mitsuharu
2010-07-17 1:00 ` YAMAMOTO Mitsuharu
2010-07-17 1:40 ` YAMAMOTO Mitsuharu
2010-07-17 8:04 ` Eli Zaretskii
2010-07-17 8:25 ` YAMAMOTO Mitsuharu
2010-07-16 12:21 ` Jan Djärv
2010-07-16 10:01 ` YAMAMOTO Mitsuharu
2010-07-16 12:26 ` Jan Djärv
2010-07-16 14:05 ` Davis Herring
2010-07-16 17:38 ` Jan Djärv
2010-07-17 1:12 ` YAMAMOTO Mitsuharu
2010-07-17 7:14 ` Eli Zaretskii
2010-07-17 7:31 ` YAMAMOTO Mitsuharu
2010-07-17 8:12 ` Eli Zaretskii
2010-07-17 8:32 ` YAMAMOTO Mitsuharu
2010-07-15 14:24 ` Jan Djärv
2010-07-15 14:35 ` Eli Zaretskii
2010-07-15 15:16 ` Jan Djärv
2010-07-15 15:20 ` Eli Zaretskii
2010-07-15 17:14 ` Jan Djärv
2010-07-15 9:20 ` Andy Wingo
2010-07-15 18:41 ` Emacs and Gnome Canvas (was: Emacs, QT and Cairo) Dirk-Jan C. Binnema
2010-07-15 21:51 ` Emacs and Gnome Canvas Óscar Fuentes
2010-07-15 22:21 ` Bruce Stephens
2010-07-27 21:24 ` Emacs, QT and Cairo Stefan Monnier
2010-07-27 21:36 ` Chad Brown
2010-07-28 3:05 ` Eli Zaretskii
2010-07-14 8:59 ` Emacs, QT and Cairo Was: Re: Efforts to attract more users? YAMAMOTO Mitsuharu
2010-07-14 9:41 ` Emacs, QT and Cairo David Engster
2010-07-14 9:56 ` Jan Djärv
2010-07-14 13:50 ` Drew Adams
2010-07-14 14:14 ` David Engster
2010-07-14 14:28 ` joakim
2010-07-14 15:41 ` Emacs, QT and Cairo Was: Re: Efforts to attract more users? Chong Yidong
2010-07-14 16:17 ` joakim
2010-07-14 18:04 ` Jan Djärv
2010-07-15 23:15 ` Andrew W. Nosenko
2010-07-16 7:41 ` Jan Djärv
2010-07-16 10:24 ` Andrew W. Nosenko
2010-07-16 12:36 ` Jan Djärv
-- strict thread matches above, loose matches on Subject: below --
2010-07-17 19:02 Emacs and Gnome Canvas grischka
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4C3EBE71.7090905@swipnet.se \
--to=jan.h.d@swipnet.se \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=ofv@wanadoo.es \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.