GNOME Bugzilla – Bug 688811
wacom: g-s-d can enter an infinite recursion in gsettings callback on tablet-pc
Last modified: 2012-11-29 22:24:23 UTC
g-s-d can enter an infinite recursion on gsettings callback on a tablet-pc (where the monitor EDID is not Wacom) gsettings callback -> set_display() -> gsd_wacom_device_get_display_matrix() -> find_output() -> set_display_by_output() -> g_settings_set_value() -> will generate another gsettings callback ... Downstream bugs: https://bugzilla.redhat.com/show_bug.cgi?id=877153 https://bugzilla.redhat.com/show_bug.cgi?id=877191
Created attachment 229580 [details] [review] Proposed patch
Did you verify that we have a fallback in case the data filled into the GSettings is incorrect? We should probably add in libwacom to support more than "WAC" as the EDID too.
(In reply to comment #2) > Did you verify that we have a fallback in case the data filled into the > GSettings is incorrect? That's another problem not necessarily related to this issue. If the EDID in gsettings is invalid (or not found), then find_output_by_display() will return NULL. In such a case, two possibilities: 1. The tablet is a screen-tablet, we look for EDID="WAC,*,*", but this may fail as well (typical case of a Tablet-PC) 2. The tablet is a regular tablet, we do not search for a monitor if none is found. Either way, if all this fail, we end up mapping to the entire screen, this is what is done in gsd_wacom_device_get_display_monitor() This happens if some maps a device t oa monitor and then remove the monitor, or if someone unplugs the connector if his Cintiq, for example. > We should probably add in libwacom to support more than "WAC" as the EDID too. Agreed, that would allow for multiple screen tablets as well. I am sure one day or another we shall have people connecting a Cintiq to a tablet-PC (as those are to become more and more widespread with Windows 8, I believe). But again, that's another issue IMHO.
Pushed in gnome-3-6 and master