When running on something other than a VM or a tablet, which have
hard-coded actions when the power button is pressed, offer to configure
the power button to either suspend (default), hibernate, or do nothing.
https://bugzilla.gnome.org/show_bug.cgi?id=757880
Since the first entry in the Touchpad section causes the sensitive
of the items below to change, those items are in a diferent ListBox.
To make it look like it is all the same ListBox, we arbitrarily add
a separator between the first item and the items below.
https://bugzilla.gnome.org/show_bug.cgi?id=756863
Fixes the situation where you unplug a touchpad device which
supports two-finger-scrolling and plug in another one with
edge-scrolling only, we would have two switches. These entries
are mutually exclusive.
https://bugzilla.gnome.org/show_bug.cgi?id=756863
If you don't have any printers, the panel used to look rather bare.
There was also a "No printers available" label, which was confusing,
and the insensitive list might be hard to understand.
https://bugzilla.gnome.org/show_bug.cgi?id=690351
This fixes:
==5944== 64,392 bytes in 4,223 blocks are definitely lost in loss record 16,020 of 16,045
==5944== at 0x4C28C50: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==5944== by 0x1445EFCC: g_malloc (gmem.c:94)
==5944== by 0x1445F2AE: g_malloc_n (gmem.c:330)
==5944== by 0x144981DC: g_variant_get_strv (gvariant.c:1572)
==5944== by 0x48FA45: settings_get_binding (cc-keyboard-item.c:369)
==5944== by 0x48FA9D: binding_changed (cc-keyboard-item.c:384)
==5944== by 0x141C3E2F: g_cclosure_marshal_VOID__STRINGv (gmarshal.c:1794)
==5944== by 0x141BFBE3: _g_closure_invoke_va (gclosure.c:864)
==5944== by 0x141DA3E7: g_signal_emit_valist (gsignal.c:3292)
==5944== by 0x141DB55F: g_signal_emit (gsignal.c:3439)
==5944== by 0x13EDC81D: g_settings_real_change_event (gsettings.c:386)
https://bugzilla.gnome.org/show_bug.cgi?id=756762
This fixes:
==5944== 2,304 bytes in 5 blocks are definitely lost in loss record 15,724 of 16,045
==5944== at 0x4C2AB9D: realloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==5944== by 0x1445F0B8: g_realloc (gmem.c:159)
==5944== by 0x144217CF: g_array_maybe_expand (garray.c:779)
==5944== by 0x14420C9F: g_array_append_vals (garray.c:418)
==5944== by 0x48ACFA: append_sections_from_file (keyboard-shortcuts.c:558)
==5944== by 0x48B4EE: reload_sections (keyboard-shortcuts.c:737)
==5944== by 0x48EA22: keyboard_shortcuts_init (keyboard-shortcuts.c:2109)
==5944== by 0x489236: cc_keyboard_panel_constructor (cc-keyboard-panel.c:133)
==5944== by 0x141C7C3F: g_object_new_with_custom_constructor (gobject.c:1697)
==5944== by 0x141C7E71: g_object_new_internal (gobject.c:1777)
==5944== by 0x141C8ADA: g_object_new_valist (gobject.c:2038)
==5944== by 0x141C7A85: g_object_new (gobject.c:1622)
==5944== by 0x4547DF: cc_panel_loader_load_by_name (cc-panel-loader.c:213)
==5944== by 0x44DFCB: activate_panel (cc-window.c:157)
==5944== by 0x4504D6: cc_window_set_active_panel_from_id (cc-window.c:1036)
==5944== by 0x44E6A6: item_activated_cb (cc-window.c:280)
https://bugzilla.gnome.org/show_bug.cgi?id=756762
==5944== 90 (16 direct, 74 indirect) bytes in 1 blocks are definitely lost in loss record 11,855 of 16,045
==5944== at 0x4C28C50: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==5944== by 0x1445EFCC: g_malloc (gmem.c:94)
==5944== by 0x1445F2AE: g_malloc_n (gmem.c:330)
==5944== by 0x144982EC: g_variant_dup_strv (gvariant.c:1621)
==5944== by 0x13EDF251: g_settings_get_strv (gsettings.c:2070)
==5944== by 0x48D56E: find_free_settings_path (keyboard-shortcuts.c:1651)
==5944== by 0x48D663: add_custom_shortcut (keyboard-shortcuts.c:1682)
==5944== by 0x48DB04: add_button_clicked (keyboard-shortcuts.c:1788)
https://bugzilla.gnome.org/show_bug.cgi?id=756762
It contains a strdup'ed string, but it's overwritten without being freed
first from cc_keyboard_item_load_from_gsettings_path() and
cc_keyboard_item_load_from_gsettings().
This fixes:
==5944== 976 bytes in 64 blocks are definitely lost in loss record 15,439 of 16,045
==5944== at 0x4C28C50: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==5944== by 0x1445EFCC: g_malloc (gmem.c:94)
==5944== by 0x1445F2AE: g_malloc_n (gmem.c:330)
==5944== by 0x144981DC: g_variant_get_strv (gvariant.c:1572)
==5944== by 0x48FA45: settings_get_binding (cc-keyboard-item.c:369)
==5944== by 0x48FDDD: cc_keyboard_item_load_from_gsettings (cc-keyboard-item.c:438)
==5944== by 0x489EB7: append_section (keyboard-shortcuts.c:249)
==5944== by 0x48ADF6: append_sections_from_file (keyboard-shortcuts.c:578)
==5944== by 0x48B4EE: reload_sections (keyboard-shortcuts.c:737)
==5944== by 0x48EA22: keyboard_shortcuts_init (keyboard-shortcuts.c:2109)
==5944== by 0x489236: cc_keyboard_panel_constructor (cc-keyboard-panel.c:133)
==5944== by 0x141C7C3F: g_object_new_with_custom_constructor (gobject.c:1697)
==5944== by 0x141C7E71: g_object_new_internal (gobject.c:1777)
==5944== by 0x141C8ADA: g_object_new_valist (gobject.c:2038)
==5944== by 0x141C7A85: g_object_new (gobject.c:1622)
==5944== by 0x4547DF: cc_panel_loader_load_by_name (cc-panel-loader.c:213)
==5944== by 0x44DFCB: activate_panel (cc-window.c:157)
==5944== by 0x4504D6: cc_window_set_active_panel_from_id (cc-window.c:1036)
https://bugzilla.gnome.org/show_bug.cgi?id=756762
This fixes this leak:
==21491== 384 (40 direct, 344 indirect) bytes in 1 blocks are definitely lost in loss record 18,518 of 19,643
==21491== at 0x8792D3A: g_type_create_instance (gtype.c:1848)
==21491== by 0x8779AC5: g_object_new_internal (gobject.c:1774)
==21491== by 0x8779FD4: g_object_newv (gobject.c:1921)
==21491== by 0x8779676: g_object_new (gobject.c:1614)
==21491== by 0x747DFFC: gtk_list_store_new (gtkliststore.c:424)
==21491== by 0x49C781: goa_panel_add_account_dialog_init (cc-online-accounts-add-account-dialog.c:300)
==21491== by 0x8792E7D: g_type_create_instance (gtype.c:1870)
==21491== by 0x8779AC5: g_object_new_internal (gobject.c:1774)
==21491== by 0x877A71A: g_object_new_valist (gobject.c:2033)
==21491== by 0x87796C5: g_object_new (gobject.c:1617)
==21491== by 0x49CC26: goa_panel_add_account_dialog_new (cc-online-accounts-add-account-dialog.c:380)
==21491== by 0x49B162: get_all_providers_cb (cc-online-accounts-panel.c:701)
==21491== by 0x8426107: g_simple_async_result_complete (gsimpleasyncresult.c:801)
==21491== by 0x8426153: complete_in_idle_cb (gsimpleasyncresult.c:813)
==21491== by 0x8A0C470: g_idle_dispatch (gmain.c:5397)
==21491== by 0x8A09AB8: g_main_dispatch (gmain.c:3122)
==21491== by 0x8A0A8FC: g_main_context_dispatch (gmain.c:3737)
==21491== by 0x8A0AAE0: g_main_context_iterate (gmain.c:3808)
==21491== by 0x8A0ABA4: g_main_context_iteration (gmain.c:3869)
==21491== by 0x846EE55: g_application_run (gapplication.c:2311)
==21491== by 0x44CA4B: main (main.c:57)
https://bugzilla.gnome.org/show_bug.cgi?id=756762
On panel construction, we trigger asynchronous creation of a GDBusProxy
for the IIO sensors daemon and one for the Screen g-s-d interface.
Since there's no guarantee we'll have the screen proxy ready by the time
the IIO proxy is constructed, guard for (priv->screen_proxy != NULL), or
we'll hit a critical.
https://bugzilla.gnome.org/show_bug.cgi?id=754735
Going back when the back row just gets selected breaks keyboard
navigation. This behavior got introduced by mistake in commit
f28e06a4. Instead, let's just do the add button sensitiveness logic
here. The back row still works when activated.
https://bugzilla.gnome.org/show_bug.cgi?id=754524