On 06/12/2012 03:50 PM, Davor Cubranic wrote:
On 2012-06-07, at 12:05 PM, Philip Johnson wrote:

The X11 device driver does not provide the X window manager with an icon 
(_NET_WM_ICON) or, under some circumstances, with a class (WM_CLASS). This 
hinders usability under the new stable version of Ubuntu, which has a (new) 
user interface centered around icons.

[...]
  2) WM_CLASS (for reasons unclear to me, previously WM_CLASS was only set 
#ifndef USE_Xt)

A few comments in the bug database give a hint why this is conditional 
(http://bugs.r-project.org/bugzilla3/show_bug.cgi?id=14588):

(1) "resources are only handled in the Xt case" (comment #1)
(2) "Still no explanation as to why Xt is not used, and this should be conditional 
on that case." (comment #3)

True, however, as far as I could tell, these comments do not apply to the current code for the following reasons:

(1) ./configure --with-x requires that Xt be present
(2) devX11.c includes a line "#define USE_Xt 1" -- implying that Xt is *always* used if compiling for X11 (3) Xt* functions are only used in a single small block in the code, and no windows are created in that code -- and thus no X resources are EVER set. I *think* that the only purpose of this code is to test whether the window manager allows the user to specify window position and size. But these fields in XSizeHints are noted in the current man pages as "obsolete and left solely for compatibility reasons". (4) deleting all Xt code makes no discernable difference in the device driver behaviour on my (admittedly modern) linux distribution.


Now that GUI libraries typically don't rely on Xt any more (e.g., Gtk), but 
WM_CLASS (and possibly other resources) are still used by window managers, it 
arguably makes sense for the X11 driver to always set this property.

This is my argument in a nutshell. I understand there is a general reluctance to delete old code because it might still be used on an old system somewhere, but I think my proposed change would only be adding functionality, not removing it.

After I sent the patch, I discovered that the integration with the new Ubuntu interface works even better if WM_CLASS matches the name of the executable -- i.e. if the class were "R" rather than "R_x11". I don't want to spam this list, but I am happy to send a revised patch if asked.

Regards,
Philip

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to