The timezone map tries to highlight regions of the world that keep the
same time, approximating this by their non-daylight-savings UTC offset.
There's no reasonable API for this, and it goes wrong in various cases,
such as Irish Standard Time which is legally defined as the country's
summer time with a negative DST offset in winter.
Hardcoding this is unpleasant, but there doesn't seem to be a better
solution, and in any case there's already similar hardcoding implied by
the segmented map images in panels/datetime/data/timezone_*.png. I've
tried to make it practical to fix other similar disagreements between
the detected offset and the groupings implied by map images, though for
now I've conservatively fixed only the case I'm familiar with.
Fixes: #1341
The code that set it could only ever have worked by luck in some
timezones on some systems, and there's no API to obtain the information
we were trying to store in it. Nothing uses it, so there's no point
trying to fix it.
tzname_normal is also unused, but slightly useful for debugging, so
rename it to tzname but otherwise keep it in place.
==31571== 120 bytes in 8 blocks are definitely lost in loss record 17,034 of 19,290
==31571== at 0x484086F: malloc (vg_replace_malloc.c:380)
==31571== by 0x4AF77A8: g_malloc (gmem.c:106)
==31571== by 0x4D9816A: gtk_accelerator_name (gtkaccelgroup.c:1577)
==31571== by 0x4A82D1: setup_custom_shortcut (cc-keyboard-shortcut-editor.c:364)
==31571== by 0x4A92DF: cc_keyboard_shortcut_editor_key_press_event (cc-keyboard-shortcut-editor.c:745)
==31571== 288 bytes in 24 blocks are definitely lost in loss record 18,138 of 19,290
==31571== at 0x484086F: malloc (vg_replace_malloc.c:380)
==31571== by 0x4AF77A8: g_malloc (gmem.c:106)
==31571== by 0x4A4119: variant_get_key_combos (cc-keyboard-item.c:475)
==31571== by 0x4A41FD: settings_get_key_combos (cc-keyboard-item.c:498)
==31571== by 0x4A46BE: cc_keyboard_item_load_from_gsettings (cc-keyboard-item.c:574)
==31571== by 0x4A5BBB: append_section (cc-keyboard-manager.c:315)
==31571== by 0x4A605D: append_sections_from_file (cc-keyboard-manager.c:431)
==31571== by 0x4A6766: reload_sections (cc-keyboard-manager.c:568)
==31571== by 0x4A6D68: cc_keyboard_manager_load_shortcuts (cc-keyboard-manager.c:707)
==31571== by 0x4A2FA4: cc_keyboard_shortcut_dialog_init (cc-keyboard-shortcut-dialog.c:841)
==31571== by 0x4A7A288: g_type_create_instance (gtype.c:1929)
==31571== by 0x4A61CAC: g_object_new_internal (gobject.c:1945)
==25729== 1,058 (40 direct, 1,018 indirect) bytes in 1 blocks are definitely lost in loss record 20,104 of 20,657
==25729== at 0x484086F: malloc (vg_replace_malloc.c:380)
==25729== by 0x4AF77A8: g_malloc (gmem.c:106)
==25729== by 0x4B0F1E4: g_slice_alloc (gslice.c:1072)
==25729== by 0x4B09060: UnknownInlinedFun (gsequence.c:1609)
==25729== by 0x4B09060: g_sequence_insert_before (gsequence.c:527)
==25729== by 0x4ED2FE7: gtk_list_store_insert (gtkliststore.c:1271)
==25729== by 0x4A5DCE: append_section (cc-keyboard-manager.c:363)
==25729== by 0x4A605D: append_sections_from_file (cc-keyboard-manager.c:431)
==25729== by 0x4A6766: reload_sections (cc-keyboard-manager.c:568)
==25729== by 0x4A6D33: cc_keyboard_manager_load_shortcuts (cc-keyboard-manager.c:706)
==25729== by 0x4A2FA4: cc_keyboard_shortcut_dialog_init (cc-keyboard-shortcut-dialog.c:841)
==25729== by 0x4A7A288: g_type_create_instance (gtype.c:1929)
==25729== by 0x4A61CAC: g_object_new_internal (gobject.c:1945)
The add_device() check for g_udev_device_get_parent() was leaking (see
below). As this is actually used in create_device(), I'm passing it as
argument to avoid a second call to that function.
> 34,175 (1,080 direct, 33,095 indirect) bytes in 27 blocks are definitely lost in loss record 19,729 of 19,758
> at 0x4A7A337: g_type_create_instance (gtype.c:1907)
> by 0x4A61CAC: g_object_new_internal (gobject.c:1945)
> by 0x4A62C7C: g_object_new_with_properties (gobject.c:2114)
> by 0x4A63780: g_object_new (gobject.c:1785)
> by 0x5EA5A6A: _g_udev_device_new (gudevdevice.c:132)
> by 0x4B6D24: add_device (gsd-device-manager.c:447)
> by 0x4B6FBF: gsd_device_manager_init (gsd-device-manager.c:517)
> by 0x4A7A288: g_type_create_instance (gtype.c:1929)
> by 0x4A61CAC: g_object_new_internal (gobject.c:1945)
> by 0x4A62C7C: g_object_new_with_properties (gobject.c:2114)
> by 0x4A63780: g_object_new (gobject.c:1785)
> by 0x4B7075: gsd_device_manager_get (gsd-device-manager.c:533)
I was seeing this critical when opening the VPN details page:
(gnome-control-center:78888): nm-CRITICAL **: 16:26:21.689: ((src/libnm-client-impl/nm-device.c:1299)): assertion '<dropped>' failed
It probably broke in 551d72280b. The code
above and below expects self->device may be NULL, so let's add a
NULL check here.
Generated sources need to be generated before files that
use them can be built.
Add a separate dependency on them, and make the various
libraries under panels/common/ depend on these sources.
Boy this was hard.
To ease the pain of porting wireless-security to GTK4, add
a new WsFileChooserButton class that mimics the behavior of
a button that triggers a filechooser, as per the migration
guide suggests.
There were lots of GtkGrids, so the diff is particularly
horrendous. Sorry.
This needs serious testing before landing.
Many part of this commit were made by Carlos
Garnacho <carlosg@gnome.org>
WIP wacom: Port to GTK4
Lots of stuff missing and probably broken.
wacom: Port CcDrawingArea input to gestures
We have a handy GtkGestureStylus to use here, which avoids direct
handling of GdkEvents.
wacom: Update current stylus tracking to GtkGestureStylus
Use the ::proximity signal to notice when we are being hovered with
a tablet stylus, and look up the tool from there.
Fortunately for us GtkTreeView still operates pretty
much exactly like in GTK3. Other than that, it's a
dense junction of all that we've done so far to port
other panels.
This one is an interesting case. It was easier to simply switch
to AdwPreferencesPage than actually port all the GtkFrames in
there.
In addition to that, the mouse test page now uses a GtkPicture
instead of a GtkImage, and the GtkDrawingArea API changes are
reflected in the code.
This was quite a huge port, but fortunately it mostly involved
removing tons of deprecated widgets (without replacement; just
drop them) and adjusting packing properties.
This one was relatively easy, since most of the brokenness came
from using deprecated properties that can just be dropped, and
packaging that can also just be dropped.
- Remove visible=True properties from the UI file
- Use GtkPicture for the OS logo
- Drop gtk_dialog_run()
- Port gnome-control-center-print-renderer to GTK4
by using GdkSurface to create the GL context
This is only the bare minimum to make everything under panels/common
build. Since these widgets are used by the main window, port them
first.
CcTimeEntry was particularly hard to port. That's because GtkEntry
is a final class now. Overall, though, I'm happy with how it turned
out to be - much cleaner, less code, more obvious.
We'll start the transition by disabling all panels and tests, so that
we can go through them one by one, which should make the review process
significantly less painful.
Running the helper will launch gnome-control-center with a mocked Wacom
Cintiq tablet through umockdev when one isn't present or easily available.
The Cintiq was selected as it will trigger showing all the different
buttons Wacom tablets can make the panel spawn.