Hi, could you try the following? When the main window is frozen, break from gdb
with Ctrl+C and replicate the commands
(gdb) p gui
$1 = {in_focus = 0, in_use = 1, starting = 0, shell_created = 1, dying = 0, dofork = 0, dragged_sb = -1, dragged_wp = 0x0, pointer_hidden = 0, col = 0, row = 0, cursor_col = 0, cursor_row = 0, cursor_is_valid = 1 '\001', num_cols = 117,
num_rows = 52, scroll_region_top = 0, scroll_region_bot = 51, scroll_region_left = 0, scroll_region_right = 116, highlight_mask = 2049, scrollbar_width = 16, scrollbar_height = 16, left_sbar_x = 0, right_sbar_x = 944,
force_redraw = 0, menu_is_active = 1 '\001', bottom_sbar = {ident = 2, wp = 0x0, type = 2, value = 0, size = 1, max = 1, top = 0, height = 0, width = 0, status_height = 0, id = 0x555555c81330, handler_id = 169}, which_scrollbars = {0,
1, 0}, prev_wrap = -1, char_width = 8, char_height = 19, char_ascent = 15, border_width = 2, border_offset = 2, norm_font = 0x555555bded10, font_can_bold = 1, wide_font = 0x0, back_pixel = 16777215, norm_pixel = 0,
def_back_pixel = 16777215, def_norm_pixel = 0, blank_pointer = 0x555555cc8a10, geom = 0x0, mainwin = 0x555555ae8bd0, formwin = 0x555555bdd800, drawarea = 0x555555bdde80, menubar = 0x555555b51b00, toolbar = 0x555555b2b550,
fgcolor = 0x555555a09330, bgcolor = 0x555555c0a330, spcolor = 0x555555b19cf0, surface = 0x555555c79210, text_context = 0x555555ae1080, ascii_font = 0x555555c3cf90, ascii_glyphs = 0x555555be07b0, tabline = 0x555555b14920,
accel_group = 0x555555b0a1e0, filedlg = 0x0, browse_fname = 0x0, event_time = 21321295, ligatures_map = '\000' <repeats 255 times>, rsrc_input_method = 0x0, rsrc_preedit_type_name = 0x0}
(gdb) p (const char *)g_type_name_from_instance (gui.mainwin)
$2 = 0x7ffff7a89e9e "GtkWindow"
(gdb) set $gdk_win = (GdkWindow*)gtk_widget_get_window (gui.mainwin)
(gdb) p (const char *)g_type_name_from_instance ($gdk_win)
$3 = 0x7ffff7f94c58 "GdkX11Window"
(gdb) p *$gdk_win
$4 = {parent_instance = {g_type_instance = {g_class = Python Exception <class 'gdb.error'>: No type named TypeNode.
}, ref_count = 17, qdata = 0x555555b9fe40}, impl = 0x555555b276a0, parent = 0x555555a59c90, transient_for = 0x0, visual = 0x555555a58610, user_data = 0x555555ae8bd0, x = 0, y = 69,
event_mask = 4456210, window_type = 1 '\001', depth = 24 '\030', resize_count = 0 '\000', toplevel_window_type = -1 '\377', filters = 0x0, children = 0x555555b95340 = {0x555555b952e0, 0x555555c0b600, 0x555555bad0a0, 0x555555b1ac00,
0x555555cca8d0}, children_list_node = {data=0x555555bee5b0, next=0x555555a68b80, prev=0x0}, native_children = 0x0, background = 0x555555b64520, current_paint = {surface = 0x0, region = 0x0, flushed_region = 0x0,
need_blend_region = 0x0, surface_needs_composite = 0, use_gl = 0}, gl_paint_context = 0x0, update_area = 0x0, update_freeze_count = 0, active_update_area = 0x0, old_updated_area = {0x555555c54fd0, 0x555555c493b0},
old_state = (GDK_WINDOW_STATE_FOCUSED | GDK_WINDOW_STATE_TOP_RESIZABLE | GDK_WINDOW_STATE_RIGHT_RESIZABLE | GDK_WINDOW_STATE_BOTTOM_RESIZABLE | GDK_WINDOW_STATE_LEFT_RESIZABLE),
state = (GDK_WINDOW_STATE_TOP_RESIZABLE | GDK_WINDOW_STATE_RIGHT_RESIZABLE | GDK_WINDOW_STATE_BOTTOM_RESIZABLE | GDK_WINDOW_STATE_LEFT_RESIZABLE), synthesized_crossing_event_id = 0, alpha = 255 '\377', fullscreen_mode = 0 '\000',
input_only = 0, pass_through = 0, modal_hint = 0, composited = 0, has_alpha_background = 0, destroyed = 0, accept_focus = 1, focus_on_map = 1, shaped = 0, support_multidevice = 0, effective_visibility = 0, visibility = 0,
native_visibility = 0, viewable = 1, applied_shape = 0, in_update = 0, geometry_dirty = 0, event_compression = 1, frame_clock_events_paused = 0, impl_window = 0x555555bee5b0, update_and_descendants_freeze_count = 0, abs_x = 0,
abs_y = 0, width = 960, height = 1011, shadow_top = 0, shadow_left = 0, shadow_right = 0, shadow_bottom = 0, num_offscreen_children = 0, clip_region = 0x555555c386a0, cursor = 0x0, device_cursor = 0x555555b28850Python Exception <class 'gdb.error'>: There is no member named keys.
, shape = 0x0,
input_shape = 0x0, devices_inside = 0x0, device_events = 0x0, source_event_masks = 0x0, device_added_handler_id = 0, device_changed_handler_id = 0, frame_clock = 0x555555b4a330, invalidate_handler = 0x0, drawing_context = 0x0,
opaque_region = 0x555555b1a550}
(gdb) p *(GdkX11Window*)$gdk_win
$5 = {parent = {parent_instance = {g_type_instance = {g_class = Python Exception <class 'gdb.error'>: No type named TypeNode.
}, ref_count = 17, qdata = 0x555555b9fe40}, impl = 0x555555b276a0, parent = 0x555555a59c90, transient_for = 0x0, visual = 0x555555a58610, user_data = 0x555555ae8bd0, x = 0,
y = 69, event_mask = 4456210, window_type = 1 '\001', depth = 24 '\030', resize_count = 0 '\000', toplevel_window_type = -1 '\377', filters = 0x0, children = 0x555555b95340 = {0x555555b952e0, 0x555555c0b600, 0x555555bad0a0,
0x555555b1ac00, 0x555555cca8d0}, children_list_node = {data=0x555555bee5b0, next=0x555555a68b80, prev=0x0}, native_children = 0x0, background = 0x555555b64520, current_paint = {surface = 0x0, region = 0x0, flushed_region = 0x0,
need_blend_region = 0x0, surface_needs_composite = 0, use_gl = 0}, gl_paint_context = 0x0, update_area = 0x0, update_freeze_count = 0, active_update_area = 0x0, old_updated_area = {0x555555c54fd0, 0x555555c493b0},
old_state = (GDK_WINDOW_STATE_FOCUSED | GDK_WINDOW_STATE_TOP_RESIZABLE | GDK_WINDOW_STATE_RIGHT_RESIZABLE | GDK_WINDOW_STATE_BOTTOM_RESIZABLE | GDK_WINDOW_STATE_LEFT_RESIZABLE),
state = (GDK_WINDOW_STATE_TOP_RESIZABLE | GDK_WINDOW_STATE_RIGHT_RESIZABLE | GDK_WINDOW_STATE_BOTTOM_RESIZABLE | GDK_WINDOW_STATE_LEFT_RESIZABLE), synthesized_crossing_event_id = 0, alpha = 255 '\377', fullscreen_mode = 0 '\000',
input_only = 0, pass_through = 0, modal_hint = 0, composited = 0, has_alpha_background = 0, destroyed = 0, accept_focus = 1, focus_on_map = 1, shaped = 0, support_multidevice = 0, effective_visibility = 0, visibility = 0,
native_visibility = 0, viewable = 1, applied_shape = 0, in_update = 0, geometry_dirty = 0, event_compression = 1, frame_clock_events_paused = 0, impl_window = 0x555555bee5b0, update_and_descendants_freeze_count = 0, abs_x = 0,
abs_y = 0, width = 960, height = 1011, shadow_top = 0, shadow_left = 0, shadow_right = 0, shadow_bottom = 0, num_offscreen_children = 0, clip_region = 0x555555c386a0, cursor = 0x0, device_cursor = 0x555555b28850Python Exception <class 'gdb.error'>: There is no member named keys.
, shape = 0x0,
input_shape = 0x0, devices_inside = 0x0, device_events = 0x0, source_event_masks = 0x0, device_added_handler_id = 0, device_changed_handler_id = 0, frame_clock = 0x555555b4a330, invalidate_handler = 0x0, drawing_context = 0x0,
opaque_region = 0x555555b1a550}}
(gdb) set $impl = $gdk_win->impl
(gdb) p *$impl
$6 = {parent = {g_type_instance = {g_class = Python Exception <class 'gdb.error'>: No type named TypeNode.
}, ref_count = 12, qdata = 0x0}}
(gdb) p (const char *)g_type_name_from_instance ($impl)
$7 = 0x7ffff7f94c65 "GdkWindowImplX11"
(gdb) p *(GdkWindowImplX11*)$impl
$8 = {parent_instance = {parent = {g_type_instance = {g_class = Python Exception <class 'gdb.error'>: No type named TypeNode.
}, ref_count = 12, qdata = 0x0}}, wrapper = 0x555555bee5b0, xid = 10485763, toplevel = 0x555555a6faa0, cursor = 0x0, device_cursor = 0x555555c2e530Python Exception <class 'gdb.error'>: There is no member named keys.
, no_bg = 0,
override_redirect = 0, frame_clock_connected = 1, frame_sync_enabled = 1, tracking_damage = 0, window_scale = 1, unscaled_width = 960, unscaled_height = 1011, cairo_surface = 0x555555a7e930, damage = 0}
(gdb) set $frameclock = gdk_window_get_frame_clock ($gdk_win)
(gdb) p (const char *)g_type_name_from_instance ($frameclock)
$9 = 0x7ffff7f84ae0 "GdkFrameClockIdle"
(gdb) p *$frameclock
$10 = {parent_instance = {g_type_instance = {g_class = Python Exception <class 'gdb.error'>: No type named TypeNode.
}, ref_count = 12, qdata = 0x0}, priv = 0x555555b4a2a0}
(gdb) p *$frameclock->priv
$11 = {frame_counter = 186, n_timings = 16, current = 10, timings = {0x7fffe40034c0, 0x555555c829d0, 0x555555b7fe70, 0x555555b07ef0, 0x7fffe40073f0, 0x555555dc7b70, 0x555555aee1f0, 0x555555b73c20, 0x7fffe40030f0, 0x555555af1700,
0x555555bace50, 0x555555c1dff0, 0x555555b8a920, 0x555555afdd60, 0x555555af9940, 0x555555bdec10}}
(gdb) p *(GdkFrameClockIdle*)$frameclock
$12 = {parent_instance = {parent_instance = {g_type_instance = {g_class = Python Exception <class 'gdb.error'>: No type named TypeNode.
}, ref_count = 12, qdata = 0x0}, priv = 0x555555b4a2a0}, priv = 0x555555b4a230}
(gdb) p *((GdkFrameClockIdle*)$frameclock)->priv
$13 = {frame_time = 21322610350, smoothed_frame_time_base = 21322610350, smoothed_frame_time_period = 16667, smoothed_frame_time_reported = 21322610350, smoothed_frame_time_phase = 0, min_next_frame_time = 0,
smooth_phase_state = SMOOTH_PHASE_STATE_VALID, sleep_serial = 471, freeze_time = 0, flush_idle_id = 0, paint_idle_id = 0, freeze_count = 0, updating_count = 0, requested = GDK_FRAME_CLOCK_PHASE_NONE,
phase = GDK_FRAME_CLOCK_PHASE_NONE, in_paint_idle = 0, paint_is_thaw = 1}
(gdb)