From paul at stat.auckland.ac.nz  Mon Jul 25 23:23:35 2016
From: paul at stat.auckland.ac.nz (Paul Murrell)
Date: Tue, 26 Jul 2016 09:23:35 +1200
Subject: [Rd] getGraphicsEvent() alternative for cairo graphics device?
In-Reply-To: <20160725191747.GB18530@ofb.net>
References: <CAN_GHySs42vK5U1xZYP8h7ZPdFyOcHnEZK4Sn91e7htv=7E54A@mail.gmail.com>
	<20160725191747.GB18530@ofb.net>
Message-ID: <57968357.2030509@stat.auckland.ac.nz>

Hi

Taking a look at those patches is now on my todo list, so I may be in 
touch with both of you at some point to request some testing.

Paul

On 26/07/16 07:17, frederik at ofb.net wrote:
> Dear Daniel Greenidge,
>
> To enable getGraphicsEvent on Cairo, you have two patches to choose
> from:
>
> https://bugs.r-project.org/bugzilla/show_bug.cgi?id=14364
> https://bugs.r-project.org/bugzilla/show_bug.cgi?id=16951
>
> The second one is by me, and the first one is from five years ago by
> Hugo Mildenberger.
>
> Both patches are very simple, they move some lines enabling
> getGrahpicsEvent outside of a if(!cairo) statement. My patch also adds
> the ability to execute code (e.g. for animation) while the interface
> is idle.
>
> Top guy Duncan Murdoch has expressed that he doesn't have time to work
> on applying these patches, and I haven't had any responses from the
> rest of the R Core Team. I was thinking that perhaps your best bet is
> to try to create a package called e.g. "X11-fixes" which people can
> use to get a better X11 library (there is also a bug waiting to be
> fixed from 2001:
> https://bugs.r-project.org/bugzilla/show_bug.cgi?id=16702).
>
> I don't know if CRAN would accept such a package, or if you'd have to
> distribute it via GitHub, but R has excellent tools to facilitate the
> distribution of code via packages. Whether the R kernel exports enough
> functions to allow a package to take over event handling, I'm not
> sure. I was intending to look more into the details of this
> possibility but haven't had time.
>
> Best wishes,
>
> Frederick
>
> On Mon, Jul 25, 2016 at 02:15:59PM -0400, Daniel Greenidge wrote:
>> Hi all,
>>
>> I'm writing an interactive plotting function for viewing fMRI
>> datasets. Currently, I get keypresses using
>> grDevices::getGraphicsEvent().
>>
>> Unfortunately getGraphicsEvent() only supports the X11(type="Xlib")
>> graphics device on Unix systems. The Xlib device doesn't support
>> buffering (i.e. dev.hold() and dev.flush()), so redrawing the plots
>> causes lots of flickering.
>>
>> Is there a way to get keypresses while using the cairo graphics
>> device? Alternatively, is there a way to prevent flickering with the
>> Xlib graphics device?
>>
>> Best,
>> Daniel Greenidge
>>
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

-- 
Dr Paul Murrell
Department of Statistics
The University of Auckland
Private Bag 92019
Auckland
New Zealand
64 9 3737599 x85392
paul at stat.auckland.ac.nz
http://www.stat.auckland.ac.nz/~paul/



[Rd] getGraphicsEvent() alternative for cairo graphics device?
Paul Murrell