[Rd] X11 device windows are spawned with empty WM_NAME property
Prof Brian Ripley
ripley at stats.ox.ac.uk
Fri Jun 17 15:32:58 CEST 2011
On Fri, 17 Jun 2011, peter dalgaard wrote:
>
> On Jun 17, 2011, at 01:53 , Drew Frank wrote:
>
>> Hello,
>>
>> I've noticed that X11 device windows (the ones that pop up when I plot
>> something on Linux) aren't assigned any WM_NAME property until after they've
>> been spawned. This causes problems for users of tiling window managers, who
>> may wish to use the WM_NAME property to decide whether to float or tile the
>> window.
That is what the window class property is for .... X11 windows can
(and R allows) have different names chosen by the user.
>> If I create a plot and then examine the window properties with xprop, I see
>> something like the following: WM_NAME(STRING) = "R Graphics: Device 2
>> (ACTIVE)". However, by instructing my window manager (xmonad) to float all
>> windows with a matching name, I can tell that when the window was created
>> its WM_NAME property was empty.
>>
>> Is this behavior intended? Would be it be reasonable to instead create
>> windows with a generic name like "R Graphics" prior to updating them with
>> the device number and active/inactive status?
Yes, no.
>> I'm not familiar with the R code base, but I found that creating a plot
>> results in a call to the function in_do_X11 in the file
>> src/modules/X11/devX11.c. In that function (around like 2869) there is code
In which version of R? The codebase for the development version is
quite different from that in the 2.13.x series ....
>> to parse out the window title from the SEXP args parameter, and it always
>> seems to parse out an empty string. If I manually assign title="R Graphics"
>> at that point, I am able to successfully float R plot windows based on their
>> WM_NAME. (line numbers based on SVN revision 56131)
>>
>> Is this actually an issue that needs fixing? Should I create a bug report
>> for this?
>
> A well-tested patch might be considered, but beware of the demons...
>
> Notice that you can actually set the title via X11(title="Foo's
> bar"). If you do that, it won't display the device number. So (a)
> you wouldn't want to destroy that feature, and (b) how does the code
> that inserts the "Device 2" bit know that it can do so? By checking
> for an empty title? (Yup).
>
> I notice that the initial title string could contain formatting
> characters, so possibly, what you really want to do is to default it
> to "R Graphics: Device %d"). Something of the sort is already
> happening with the quartz() device.
>
>> Thanks,
>> Drew
>>
>> [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>
> --
> Peter Dalgaard
> Center for Statistics, Copenhagen Business School
> Solbjerg Plads 3, 2000 Frederiksberg, Denmark
> Phone: (+45)38153501
> Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-devel
mailing list