This helps translators understand what are the placeholders in
the visible string.
+#. Translators: This will be presented as the text of a link to the documentation
+#. translators: Text used in link to privacy policy
+#: panels/color/cc-color-panel.c:2021
+#: panels/diagnostics/cc-diagnostics-panel.c:137
+msgid "Learn more"
+#. Translators: %s is a link to the documentation with the label "Learn more"
+#: panels/color/cc-color-panel.c:2023
+msgid "Each device needs an up to date color profile to be color managed. %s"
During destruction toolbar_devices is nullified, but
gtk_widget_in_destruction() does not perform a NULL-check, and we could
crash:
==22708== Invalid read of size 1
==22708== at 0x505CC0B: gtk_widget_in_destruction (gtkwidget.c:10643)
==22708== by 0x189553: gcm_prefs_list_box_row_selected_cb (cc-color-panel.c:1708)
==22708== by 0x4A61714: g_cclosure_marshal_VOID__OBJECTv (gmarshal.c:1910)
==22708== by 0x4A5E148: _g_closure_invoke_va (gclosure.c:895)
==22708== by 0x4A784F3: g_signal_emit_valist (gsignal.c:3462)
==22708== by 0x4A78722: g_signal_emit (gsignal.c:3612)
==22708== by 0x4F5B121: gtk_list_box_remove (gtklistbox.c:2420)
==22708== by 0x4F5B222: gtk_list_box_dispose (gtklistbox.c:439)
==22708== by 0x4A63338: g_object_unref (gobject.c:3891)
==22708== by 0x4EAA994: gtk_box_dispose (gtkbox.c:230)
==22708== by 0x4A63338: g_object_unref (gobject.c:3891)
==22708== by 0x4EAA994: gtk_box_dispose (gtkbox.c:230)
==22708== Address 0xfffffffffffffeb2 is not stack'd, malloc'd or (recently) free'd
See: https://bugs.launchpad.net/ubuntu/+source/gnome-control-center/+bug/2009913
GtkListBox's dispose function removes all rows, and
`gtk_list_box_remove ()` sends `row-selected`. In turn,
as we listen to row-selected, we end up calling
functions on our toolbar while it may be in the
process of disposing. This causes a crash.
This commit introduces an early return if the toolbar is
being destroyed.
Commit f1893b8e8 (color: Connect signals with g_signal_connect_object
in swapped form) changed the connect call to use G_CONNECT_SWAPPED, but
it did not change the order of the arguments for the
gcm_prefs_device_changed_cb function.
Fixes: #1082
Make the panel class provide a cancellable that will be cancelled when the panel
is destroyed. Panel implementations can use this and not have to mangage the
cancellable themselves. Consolidate cases where panels had multiple cancellables
that were all being used for this behaviour.
Correct a typoed variable name so that calibration works again, instead
of crashing.
GLib-GObject-WARNING **: 15:52:50.561: invalid cast from 'GtkBox' to 'GtkEntry'
When the asynchronous operation is finished in the Color
panel, the user may potentially have already changed to
another panel, making the CcColorPanel reference invalid.
In the callback, the first thing that is done is casting
(and type-checking) the CcColorPanel pointer, causing
a segmentation fault.
Fix that by only casting anything after checking the result
of the asynchronous call.
https://bugzilla.gnome.org/show_bug.cgi?id=786096
/proc/cmdline only exists on Linux and in this case used to check
whether we are running out of a LiveCD.
Signed-off-by: Richard Hughes <richard@hughsie.com>
If the user is calibrating on a LiveCD the final finished profile is written to
disk. This somehow needs to be transfered to the main system before it will work.
Two button are now provided, one to save the profile to disk, and one to upload
the profile to the Internet.