wacom: adapt to GnomeRR API changes

GnomeRR now returns the EDID IDs as strings directly, so we don't
need to convert them to compare to the settings. Also, we don't
need to filter disconnected outputs, it's done by mutter now.

https://bugzilla.gnome.org/show_bug.cgi?id=705573
This commit is contained in:
Giovanni Campagna 2013-08-08 14:22:41 +02:00 committed by Giovanni Campagna
parent 150466cdb6
commit 77c72eb8ce

View file

@ -523,35 +523,26 @@ find_output_by_edid (GnomeRRScreen *rr_screen, const gchar *vendor, const gchar
rr_outputs = gnome_rr_screen_list_outputs (rr_screen);
for (i = 0; rr_outputs[i] != NULL; i++) {
gchar *o_vendor_s;
gchar *o_product_s;
int o_product;
gchar *o_serial_s;
int o_serial;
gchar *o_vendor;
gchar *o_product;
gchar *o_serial;
gboolean match;
if (!gnome_rr_output_is_connected (rr_outputs[i]))
continue;
if (!gnome_rr_output_get_ids_from_edid (rr_outputs[i],
&o_vendor_s,
gnome_rr_output_get_ids_from_edid (rr_outputs[i],
&o_vendor,
&o_product,
&o_serial))
continue;
o_product_s = g_strdup_printf ("%d", o_product);
o_serial_s = g_strdup_printf ("%d", o_serial);
&o_serial);
g_debug ("Checking for match between '%s','%s','%s' and '%s','%s','%s'", \
vendor, product, serial, o_vendor_s, o_product_s, o_serial_s);
vendor, product, serial, o_vendor, o_product, o_serial);
match = (vendor == NULL || g_strcmp0 (vendor, o_vendor_s) == 0) && \
(product == NULL || g_strcmp0 (product, o_product_s) == 0) && \
(serial == NULL || g_strcmp0 (serial, o_serial_s) == 0);
match = (vendor == NULL || g_strcmp0 (vendor, o_vendor) == 0) && \
(product == NULL || g_strcmp0 (product, o_product) == 0) && \
(serial == NULL || g_strcmp0 (serial, o_serial) == 0);
g_free (o_vendor_s);
g_free (o_product_s);
g_free (o_serial_s);
g_free (o_vendor);
g_free (o_product);
g_free (o_serial);
if (match) {
retval = rr_outputs[i];
@ -575,9 +566,6 @@ find_builtin_output (GnomeRRScreen *rr_screen)
rr_outputs = gnome_rr_screen_list_outputs (rr_screen);
for (i = 0; rr_outputs[i] != NULL; i++) {
if (!gnome_rr_output_is_connected (rr_outputs[i]))
continue;
if (gnome_rr_output_is_builtin_display(rr_outputs[i])) {
retval = rr_outputs[i];
break;
@ -701,8 +689,7 @@ set_display_by_output (GsdWacomDevice *device,
GVariant *c_array;
GVariant *n_array;
gsize nvalues;
gchar *o_vendor_s, *o_product_s, *o_serial_s;
int o_product, o_serial;
gchar *o_vendor, *o_product, *o_serial;
const gchar *values[3];
tablet = gsd_wacom_device_get_settings (device);
@ -713,28 +700,26 @@ set_display_by_output (GsdWacomDevice *device,
return;
}
if (rr_output == NULL ||
!gnome_rr_output_get_ids_from_edid (rr_output,
&o_vendor_s,
&o_product,
&o_serial)) {
o_vendor_s = g_strdup ("");
o_product_s = g_strdup ("");
o_serial_s = g_strdup ("");
if (rr_output == NULL) {
o_vendor = g_strdup ("");
o_product = g_strdup ("");
o_serial = g_strdup ("");
} else {
o_product_s = g_strdup_printf ("%d", o_product);
o_serial_s = g_strdup_printf ("%d", o_serial);
gnome_rr_output_get_ids_from_edid (rr_output,
&o_vendor,
&o_product,
&o_serial);
}
values[0] = o_vendor_s;
values[1] = o_product_s;
values[2] = o_serial_s;
values[0] = o_vendor;
values[1] = o_product;
values[2] = o_serial;
n_array = g_variant_new_strv ((const gchar * const *) &values, 3);
g_settings_set_value (tablet, "display", n_array);
g_free (o_vendor_s);
g_free (o_product_s);
g_free (o_serial_s);
g_free (o_vendor);
g_free (o_product);
g_free (o_serial);
}
static GsdWacomRotation