Infinite focus loop (and window blinking) when opening a second image in multi-window mode MWM
Environment/Versions
- GIMP version: master
- Package: self-build
- Operating System: Linux / X11
Description of the bug
In Multi-Window mode, when opening a second image with shortcuts, I get some weird never-ending window blinking and the second image never appears.
Note: I have a fix for this bug, but since it was a complicated one and that I am unsure if my patch is ideal, I prefer to keep a trace so that someone can come back to it later if needed.
Reproduction
Is the bug reproducible? Always with some images (don't know why, the but is not image-type related)
Reproduction steps:
- Be in MWM
- Open a first image with Ctrl-1
- Open a second image with Ctrl-2 (note: the issue doesn't happen if I open the image through menus)
Expected result: a new image window appears with the second image and has focus flickering forever.
Actual result: the existing image window starts blinking and never stops blinking, the second image never appears.
You can actually break the never-ending focus flickering by breaking the focus, e.g. by clicking on a window, or by switching windows (e.g. alt-tab). This small screencast shows this issue happening with one image opened, then opening a second one with Ctrl-2, then the focus flicking happening only broken because I switched windows (only when I do this, the second window appeared, though it appeared below the existing window unexpectedly, which is why you don't see it in the screencast):
Screencast_from_2024-08-25_23-31-35
Additional information
After investigating in a debugger and adding a break to gimp_dock_window_image_changed
, I realized that the issue seems to be that we get focus events "fighting" each other for the new (still not drawn) and the existing image window.
At first, we see some expected image change, to the newly created image, and therefore giving focus to the new display shell:
First traces
gdb) bt
#0 gimp_dock_window_image_changed (dock_window=0x440e840, image=0x40c9790, context=0x43effa0) at ../../../../../../../dev/src/gimp/app/widgets/gimpdockwindow.c:998
#1 0x00007ffff7ea34ea in g_closure_invoke (closure=0x454dce0, return_value=0x0, n_param_values=2, param_values=0x7fffffffabb0, invocation_hint=0x7fffffffab30) at ../gobject/gclosure.c:832
#2 0x00007ffff7ed1e16 in signal_emit_unlocked_R.isra.0
(node=node@entry=0xccca10, detail=detail@entry=0, instance=instance@entry=0x43effa0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffabb0) at ../gobject/gsignal.c:3812
#3 0x00007ffff7ec2cbd in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffad70) at ../gobject/gsignal.c:3565
#4 0x00007ffff7ec2f33 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../gobject/gsignal.c:3622
#5 0x00007ffff7ea34ea in g_closure_invoke (closure=0x455adc0, return_value=0x0, n_param_values=2, param_values=0x7fffffffaff0, invocation_hint=0x7fffffffaf70) at ../gobject/gclosure.c:832
#6 0x00007ffff7ed1e16 in signal_emit_unlocked_R.isra.0
(node=node@entry=0xccca10, detail=detail@entry=0, instance=instance@entry=0xdf4af0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffaff0) at ../gobject/gsignal.c:3812
#7 0x00007ffff7ec2cbd in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffb1b0) at ../gobject/gsignal.c:3565
#8 0x00007ffff7ec2f33 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../gobject/gsignal.c:3622
#9 0x00000000004b936f in gimp_context_real_set_display (context=0xdf4af0, display=<optimized out>) at ../../../../../../../dev/src/gimp/app/core/gimpcontext.c:2131
#10 0x000000000084f9ea in gimp_image_window_switch_page (notebook=<optimized out>, page=<optimized out>, page_num=<optimized out>, window=0x4014eb0) at ../../../../../../../dev/src/gimp/app/display/gimpimagewindow.c:2120
#11 0x00007ffff7ea34ea in g_closure_invoke (closure=0x5fb5080, return_value=0x0, n_param_values=3, param_values=0x7fffffffb490, invocation_hint=0x7fffffffb410) at ../gobject/gclosure.c:832
#12 0x00007ffff7ed1e16 in signal_emit_unlocked_R.isra.0
(node=node@entry=0xc8d7c0, detail=detail@entry=0, instance=instance@entry=0x5fae020, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffb490) at ../gobject/gsignal.c:3812
#13 0x00007ffff7ec2cbd in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffb660) at ../gobject/gsignal.c:3565
#14 0x00007ffff7ec2f33 in g_signal_emit (instance=instance@entry=0x5fae020, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3622
#15 0x00007ffff6a1a341 in gtk_notebook_switch_page (page=<optimized out>, notebook=<optimized out>) at ../../../../../../../dev/src/gtk/gtk/gtknotebook.c:6265
#16 gtk_notebook_real_insert_page (notebook=0x5fae020, child=0x5fb4000, tab_label=0x611c160, menu_label=<optimized out>, position=<optimized out>) at ../../../../../../../dev/src/gtk/gtk/gtknotebook.c:4884
#17 0x000000000084f01d in gimp_image_window_add_shell (window=window@entry=0x4014eb0, shell=shell@entry=0x5fb4000) at ../../../../../../../dev/src/gimp/app/display/gimpimagewindow.c:1324
#18 0x00000000008361d4 in gimp_display_new (gimp=gimp@entry=0xd00800, image=image@entry=0x40c9790, unit=unit@entry=0xd50030, scale=scale@entry=1, popup_manager=0x2f7e0b0, dialog_factory=0x11db990, monitor=monitor@entry=0xb10270)
at ../../../../../../../dev/src/gimp/app/display/gimpdisplay.c:429
#19 0x00000000006ac341 in gui_display_create (gimp=0xd00800, image=0x40c9790, unit=0xd50030, scale=1, monitor=<optimized out>) at ../../../../../../../dev/src/gimp/app/gui/gui-vtable.c:419
#20 0x000000000056d097 in file_open_with_proc_and_display (gimp=gimp@entry=0xd00800, context=<optimized out>, progress=progress@entry=0x0, file=file@entry=0x2f86710, as_new=as_new@entry=0, file_proc=<optimized out>,
file_proc@entry=0x0, monitor=0xb10270, status=0x7fffffffb924, error=0x7fffffffb928) at ../../../../../../../dev/src/gimp/app/file/file-open.c:564
#21 0x000000000056d286 in file_open_with_display
(gimp=gimp@entry=0xd00800, context=<optimized out>, progress=progress@entry=0x0, file=file@entry=0x2f86710, as_new=as_new@entry=0, monitor=monitor@entry=0xb10270, status=0x7fffffffb924, error=0x7fffffffb928)
at ../../../../../../../dev/src/gimp/app/file/file-open.c:496
#22 0x00000000007e41e9 in file_open_recent_cmd_callback (action=<optimized out>, value=<optimized out>, data=<optimized out>) at ../../../../../../../dev/src/gimp/app/actions/file-commands.c:202
#23 0x00007ffff7ea34ea in g_closure_invoke (closure=0x3680650, return_value=0x0, n_param_values=2, param_values=0x7fffffffbb10, invocation_hint=0x7fffffffba90) at ../gobject/gclosure.c:832
#24 0x00007ffff7ed1e16 in signal_emit_unlocked_R.isra.0
(node=node@entry=0x2f0c600, detail=detail@entry=0, instance=instance@entry=0x2fbbe60, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffbb10) at ../gobject/gsignal.c:3812
#25 0x00007ffff7ec2cbd in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffbcd0) at ../gobject/gsignal.c:3565
#26 0x00007ffff7ec2f33 in g_signal_emit (instance=instance@entry=0x2fbbe60, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3622
#27 0x0000000000721784 in gimp_action_emit_activate (action=0x2fbbe60, value=0x2f7c510) at ../../../../../../../dev/src/gimp/app/widgets/gimpaction.c:252
#28 0x0000000000753507 in gimp_enum_action_activate (action=0x2fbbe60, parameter=<optimized out>) at ../../../../../../../dev/src/gimp/app/widgets/gimpenumaction.c:186
#29 0x00007ffff68be52a in gtk_application_accels_activate (accels=<optimized out>, action_group=action_group@entry=0x381f280, key=50, modifier=GDK_CONTROL_MASK) at ../../../../../../../dev/src/gtk/gtk/gtkapplicationaccels.c:448
#30 0x00007ffff6b53b1d in gtk_window_activate_key (window=window@entry=0xf33080, event=event@entry=0x40ca8f0) at ../../../../../../../dev/src/gtk/gtk/gtkwindow.c:12117
#31 0x000000000079c1a3 in gimp_window_key_press_event (widget=0xf33080, event=event@entry=0x40ca8f0) at ../../../../../../../dev/src/gimp/app/widgets/gimpwindow.c:218
#32 0x00007ffff6892864 in _gtk_marshal_BOOLEAN__BOXEDv (closure=0xc7f020, return_value=0x7fffffffc020, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0xc7f050)
at gtk/gtkmarshalers.c:130
#33 0x00007ffff7ec2dba in _g_closure_invoke_va (param_types=0xc7f050, n_params=<optimized out>, args=0x7fffffffc0d0, instance=0xf33080, return_value=0x7fffffffc020, closure=0xc7f020) at ../gobject/gclosure.c:895
#34 g_signal_emit_valist (instance=0xf33080, signal_id=102, detail=0, var_args=var_args@entry=0x7fffffffc0d0) at ../gobject/gsignal.c:3472
#35 0x00007ffff7ec2f33 in g_signal_emit (instance=instance@entry=0xf33080, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3622
#36 0x00007ffff6b2e3a4 in gtk_widget_event_internal (widget=0xf33080, event=0x40ca8f0) at ../../../../../../../dev/src/gtk/gtk/gtkwidget.c:7812
#37 0x00007ffff69ee99f in propagate_event (widget=0xf33080, event=0x40ca8f0, captured=<optimized out>, topmost=0x0) at ../../../../../../../dev/src/gtk/gtk/gtkmain.c:2681
#38 0x00007ffff69f0326 in gtk_main_do_event (event=0x40ca8f0) at ../../../../../../../dev/src/gtk/gtk/gtkmain.c:1921
#39 gtk_main_do_event (event=<optimized out>) at ../../../../../../../dev/src/gtk/gtk/gtkmain.c:1691
#40 0x00007ffff71021c5 in _gdk_event_emit (event=event@entry=0x40ca8f0) at ../../../../../../../dev/src/gtk/gdk/gdkevents.c:73
#41 0x00007ffff7151742 in gdk_event_source_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at ../../../../../../../dev/src/gtk/gdk/x11/gdkeventsource.c:367
#42 0x00007ffff79e04fc in g_main_dispatch (context=0xb438f0) at ../glib/gmain.c:3460
#43 g_main_context_dispatch (context=0xb438f0) at ../glib/gmain.c:4200
#44 0x00007ffff7a3e6b8 in g_main_context_iterate.isra.0 (context=0xb438f0, block=1, dispatch=1, self=<optimized out>) at ../glib/gmain.c:4276
#45 0x00007ffff79ddb83 in g_main_context_iteration (context=context@entry=0xb438f0, may_block=may_block@entry=1) at ../glib/gmain.c:4343
#46 0x00007ffff774701d in g_application_run (application=application@entry=0xde28f0, argc=argc@entry=0, argv=argv@entry=0x0) at ../gio/gapplication.c:2573
#47 0x000000000066c4ca in app_run
(full_prog_name=0xb27b10 "/home/jehan/.local/share/crossroad/artifacts/native/gimp/gimp/app/gimp-2.99", filenames=<optimized out>, alternate_system_gimprc=alternate_system_gimprc@entry=0x0, alternate_gimprc=alternate_gimprc@entry=0x0, session_name=<optimized out>, batch_interpreter=<optimized out>, batch_commands=0x0, quit=0, as_new=0, no_interface=0, no_data=<optimized out>, no_fonts=<optimized out>, no_splash=0, be_verbose=0, use_shm=1, use_cpu_accel=1, console_messages=0, use_debug_handler=0, show_playground=1, show_debug_menu=1, stack_trace_mode=GIMP_STACK_TRACE_QUERY, pdb_compat_mode=<optimized out>, backtrace_file=0xb0c320 "/home/jehan/.config/GIMP/2.99/CrashLog/gimp-crash-1724619517.txt")
at ../../../../../../../dev/src/gimp/app/app.c:317
#48 0x00000000004abde5 in main (argc=<optimized out>, argv=<optimized out>) at ../../../../../../../dev/src/gimp/app/main.c:786
Then there are some traces which change back to the previous image. But these are still OK:
Second traces
(gdb) bt
#0 gimp_dock_window_image_changed (dock_window=0x440e840, image=0x58be580, context=0x43effa0) at ../../../../../../../dev/src/gimp/app/widgets/gimpdockwindow.c:998
#1 0x00007ffff7ea34ea in g_closure_invoke (closure=0x454dce0, return_value=0x0, n_param_values=2, param_values=0x7fffffffb010, invocation_hint=0x7fffffffaf90) at ../gobject/gclosure.c:832
#2 0x00007ffff7ed1e16 in signal_emit_unlocked_R.isra.0
(node=node@entry=0xccca10, detail=detail@entry=0, instance=instance@entry=0x43effa0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffb010) at ../gobject/gsignal.c:3812
#3 0x00007ffff7ec2cbd in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffb1d0) at ../gobject/gsignal.c:3565
#4 0x00007ffff7ec2f33 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../gobject/gsignal.c:3622
#5 0x00007ffff7ea34ea in g_closure_invoke (closure=0x455adc0, return_value=0x0, n_param_values=2, param_values=0x7fffffffb450, invocation_hint=0x7fffffffb3d0) at ../gobject/gclosure.c:832
#6 0x00007ffff7ed1e16 in signal_emit_unlocked_R.isra.0
(node=node@entry=0xccca10, detail=detail@entry=0, instance=instance@entry=0xdf4af0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffb450) at ../gobject/gsignal.c:3812
#7 0x00007ffff7ec2cbd in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffb610) at ../gobject/gsignal.c:3565
#8 0x00007ffff7ec2f33 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../gobject/gsignal.c:3622
#9 0x00000000004b936f in gimp_context_real_set_display (context=0xdf4af0, display=<optimized out>) at ../../../../../../../dev/src/gimp/app/core/gimpcontext.c:2131
#10 0x0000000000884e97 in gimp_display_shell_events (widget=widget@entry=0x422a450, event=event@entry=0x5a041a0, shell=shell@entry=0x38593d0) at ../../../../../../../dev/src/gimp/app/display/gimpdisplayshell-tool-events.c:261
#11 0x0000000000884fec in gimp_display_shell_canvas_tool_events (canvas=canvas@entry=0x422a450, event=0x5a041a0, shell=shell@entry=0x38593d0) at ../../../../../../../dev/src/gimp/app/display/gimpdisplayshell-tool-events.c:342
#12 0x00007ffff689275b in _gtk_marshal_BOOLEAN__BOXED (closure=0x422f300, return_value=0x7fffffffbb40, n_param_values=<optimized out>, param_values=0x7fffffffbba0, invocation_hint=<optimized out>, marshal_data=<optimized out>)
at gtk/gtkmarshalers.c:84
#13 0x00007ffff7ea34ea in g_closure_invoke (closure=0x422f300, return_value=0x7fffffffbb40, n_param_values=2, param_values=0x7fffffffbba0, invocation_hint=0x7fffffffbb20) at ../gobject/gclosure.c:832
#14 0x00007ffff7ed1e16 in signal_emit_unlocked_R.isra.0
(node=<optimized out>, detail=detail@entry=0, instance=instance@entry=0x422a450, emission_return=emission_return@entry=0x7fffffffbcb0, instance_and_params=instance_and_params@entry=0x7fffffffbba0) at ../gobject/gsignal.c:3812
#15 0x00007ffff7ec27e2 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffbd60) at ../gobject/gsignal.c:3575
#16 0x00007ffff7ec2f33 in g_signal_emit (instance=instance@entry=0x422a450, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3622
#17 0x00007ffff6b2e3a4 in gtk_widget_event_internal (widget=widget@entry=0x422a450, event=event@entry=0x5a041a0) at ../../../../../../../dev/src/gtk/gtk/gtkwidget.c:7812
#18 0x00007ffff6b30a6d in gtk_widget_event_internal (event=0x5a041a0, widget=0x422a450) at ../../../../../../../dev/src/gtk/gtk/gtkwidget.c:7383
#19 0x00007ffff6b4f73b in gtk_window_propagate_key_event (window=window@entry=0xf33080, event=event@entry=0x5a041a0) at ../../../../../../../dev/src/gtk/gtk/gtkwindow.c:8259
#20 0x00007ffff6b4f7a1 in gtk_window_key_release_event (widget=0xf33080, event=0x5a041a0) at ../../../../../../../dev/src/gtk/gtk/gtkwindow.c:8310
#21 0x00007ffff6892864 in _gtk_marshal_BOOLEAN__BOXEDv (closure=0xc7f140, return_value=0x7fffffffc020, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0xc7f170)
at gtk/gtkmarshalers.c:130
#22 0x00007ffff7ec2dba in _g_closure_invoke_va (param_types=0xc7f170, n_params=<optimized out>, args=0x7fffffffc0d0, instance=0xf33080, return_value=0x7fffffffc020, closure=0xc7f140) at ../gobject/gclosure.c:895
#23 g_signal_emit_valist (instance=0xf33080, signal_id=103, detail=0, var_args=var_args@entry=0x7fffffffc0d0) at ../gobject/gsignal.c:3472
#24 0x00007ffff7ec2f33 in g_signal_emit (instance=instance@entry=0xf33080, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3622
#25 0x00007ffff6b2e3a4 in gtk_widget_event_internal (widget=0xf33080, event=0x5a041a0) at ../../../../../../../dev/src/gtk/gtk/gtkwidget.c:7812
#26 0x00007ffff69ee99f in propagate_event (widget=0xf33080, event=0x5a041a0, captured=<optimized out>, topmost=0x0) at ../../../../../../../dev/src/gtk/gtk/gtkmain.c:2681
#27 0x00007ffff69f0326 in gtk_main_do_event (event=0x5a041a0) at ../../../../../../../dev/src/gtk/gtk/gtkmain.c:1921
#28 gtk_main_do_event (event=<optimized out>) at ../../../../../../../dev/src/gtk/gtk/gtkmain.c:1691
#29 0x00007ffff71021c5 in _gdk_event_emit (event=event@entry=0x5a041a0) at ../../../../../../../dev/src/gtk/gdk/gdkevents.c:73
#30 0x00007ffff7151742 in gdk_event_source_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at ../../../../../../../dev/src/gtk/gdk/x11/gdkeventsource.c:367
#31 0x00007ffff79e04fc in g_main_dispatch (context=0xb438f0) at ../glib/gmain.c:3460
#32 g_main_context_dispatch (context=0xb438f0) at ../glib/gmain.c:4200
#33 0x00007ffff7a3e6b8 in g_main_context_iterate.isra.0 (context=0xb438f0, block=1, dispatch=1, self=<optimized out>) at ../glib/gmain.c:4276
#34 0x00007ffff79ddb83 in g_main_context_iteration (context=context@entry=0xb438f0, may_block=may_block@entry=1) at ../glib/gmain.c:4343
#35 0x00007ffff774701d in g_application_run (application=application@entry=0xde28f0, argc=argc@entry=0, argv=argv@entry=0x0) at ../gio/gapplication.c:2573
#36 0x000000000066c4ca in app_run
(full_prog_name=0xb27b10 "/home/jehan/.local/share/crossroad/artifacts/native/gimp/gimp/app/gimp-2.99", filenames=<optimized out>, alternate_system_gimprc=alternate_system_gimprc@entry=0x0, alternate_gimprc=alternate_gimprc@entry=0x0, session_name=<optimized out>, batch_interpreter=<optimized out>, batch_commands=0x0, quit=0, as_new=0, no_interface=0, no_data=<optimized out>, no_fonts=<optimized out>, no_splash=0, be_verbose=0, use_shm=1, use_cpu_accel=1, console_messages=0, use_debug_handler=0, show_playground=1, show_debug_menu=1, stack_trace_mode=GIMP_STACK_TRACE_QUERY, pdb_compat_mode=<optimized out>, backtrace_file=0xb0c320 "/home/jehan/.config/GIMP/2.99/CrashLog/gimp-crash-1724619517.txt")
at ../../../../../../../dev/src/gimp/app/app.c:317
#37 0x00000000004abde5 in main (argc=<optimized out>, argv=<optimized out>) at ../../../../../../../dev/src/gimp/app/main.c:786
This is where things get ugly. I see these never-ending focus event handling traces. They repeat forever, with the only difference that at one point, they give focus to the newly created display window, then to the previous display window, then back to the new, and so on. Forever.
Never-ending traces
(gdb) bt
#0 gimp_dock_window_image_changed (dock_window=0x440e840, image=0x40c9790, context=0x43effa0) at ../../../../../../../dev/src/gimp/app/widgets/gimpdockwindow.c:998
#1 0x00007ffff7ea34ea in g_closure_invoke (closure=0x454dce0, return_value=0x0, n_param_values=2, param_values=0x7fffffffae20, invocation_hint=0x7fffffffada0) at ../gobject/gclosure.c:832
#2 0x00007ffff7ed1e16 in signal_emit_unlocked_R.isra.0
(node=node@entry=0xccca10, detail=detail@entry=0, instance=instance@entry=0x43effa0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffae20) at ../gobject/gsignal.c:3812
#3 0x00007ffff7ec2cbd in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffafe0) at ../gobject/gsignal.c:3565
#4 0x00007ffff7ec2f33 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../gobject/gsignal.c:3622
#5 0x00007ffff7ea34ea in g_closure_invoke (closure=0x455adc0, return_value=0x0, n_param_values=2, param_values=0x7fffffffb260, invocation_hint=0x7fffffffb1e0) at ../gobject/gclosure.c:832
#6 0x00007ffff7ed1e16 in signal_emit_unlocked_R.isra.0
(node=node@entry=0xccca10, detail=detail@entry=0, instance=instance@entry=0xdf4af0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffb260) at ../gobject/gsignal.c:3812
#7 0x00007ffff7ec2cbd in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffb420) at ../gobject/gsignal.c:3565
#8 0x00007ffff7ec2f33 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../gobject/gsignal.c:3622
#9 0x00000000004b936f in gimp_context_real_set_display (context=0xdf4af0, display=<optimized out>) at ../../../../../../../dev/src/gimp/app/core/gimpcontext.c:2131
#10 0x0000000000884e97 in gimp_display_shell_events (widget=widget@entry=0x5fc0e80, event=event@entry=0x5fb2730, shell=shell@entry=0x5fb4000) at ../../../../../../../dev/src/gimp/app/display/gimpdisplayshell-tool-events.c:261
#11 0x0000000000884fec in gimp_display_shell_canvas_tool_events (canvas=canvas@entry=0x5fc0e80, event=0x5fb2730, shell=shell@entry=0x5fb4000) at ../../../../../../../dev/src/gimp/app/display/gimpdisplayshell-tool-events.c:342
#12 0x00007ffff689275b in _gtk_marshal_BOOLEAN__BOXED (closure=0x5fc4630, return_value=0x7fffffffb950, n_param_values=<optimized out>, param_values=0x7fffffffb9b0, invocation_hint=<optimized out>, marshal_data=<optimized out>)
at gtk/gtkmarshalers.c:84
#13 0x00007ffff7ea34ea in g_closure_invoke (closure=0x5fc4630, return_value=0x7fffffffb950, n_param_values=2, param_values=0x7fffffffb9b0, invocation_hint=0x7fffffffb930) at ../gobject/gclosure.c:832
#14 0x00007ffff7ed1e16 in signal_emit_unlocked_R.isra.0
(node=<optimized out>, detail=detail@entry=0, instance=instance@entry=0x5fc0e80, emission_return=emission_return@entry=0x7fffffffbac0, instance_and_params=instance_and_params@entry=0x7fffffffb9b0) at ../gobject/gsignal.c:3812
#15 0x00007ffff7ec27e2 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffbb70) at ../gobject/gsignal.c:3575
#16 0x00007ffff7ec2f33 in g_signal_emit (instance=instance@entry=0x5fc0e80, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3622
#17 0x00007ffff6b2e3a4 in gtk_widget_event_internal (widget=widget@entry=0x5fc0e80, event=event@entry=0x5fb2730) at ../../../../../../../dev/src/gtk/gtk/gtkwidget.c:7812
#18 0x00007ffff6b30a6d in gtk_widget_event_internal (event=0x5fb2730, widget=0x5fc0e80) at ../../../../../../../dev/src/gtk/gtk/gtkwidget.c:7383
#19 0x00007ffff6b3f4e3 in gtk_widget_send_focus_change (widget=widget@entry=0x5fc0e80, event=event@entry=0x5fb2730) at ../../../../../../../dev/src/gtk/gtk/gtkwidget.c:16244
#20 0x00007ffff6b4459b in do_focus_change (widget=0x5fc0e80, in=1) at ../../../../../../../dev/src/gtk/gtk/gtkwindow.c:8487
#21 0x00007ffff6b53c8d in _gtk_window_set_is_active (is_active=1, window=0x4014eb0) at ../../../../../../../dev/src/gtk/gtk/gtkwindow.c:12180
#22 _gtk_window_set_is_active (window=0x4014eb0, is_active=1) at ../../../../../../../dev/src/gtk/gtk/gtkwindow.c:12166
#23 0x00007ffff6b541fa in gtk_window_focus_in_event (event=<optimized out>, widget=0x4014eb0) at ../../../../../../../dev/src/gtk/gtk/gtkwindow.c:8540
#24 gtk_window_focus_in_event (widget=widget@entry=0x4014eb0, event=<optimized out>) at ../../../../../../../dev/src/gtk/gtk/gtkwindow.c:8527
#25 0x00007ffff689275b in _gtk_marshal_BOOLEAN__BOXED (closure=0xc7fc70, return_value=0x7fffffffbef0, n_param_values=<optimized out>, param_values=0x7fffffffbf50, invocation_hint=<optimized out>, marshal_data=<optimized out>)
at gtk/gtkmarshalers.c:84
#26 0x00007ffff7ea34ea in g_closure_invoke (closure=0xc7fc70, return_value=0x7fffffffbef0, n_param_values=2, param_values=0x7fffffffbf50, invocation_hint=0x7fffffffbed0) at ../gobject/gclosure.c:832
#27 0x00007ffff7ed2315 in signal_emit_unlocked_R.isra.0
(node=<optimized out>, detail=detail@entry=0, instance=instance@entry=0x4014eb0, emission_return=emission_return@entry=0x7fffffffc060, instance_and_params=instance_and_params@entry=0x7fffffffbf50) at ../gobject/gsignal.c:3851
#28 0x00007ffff7ec27e2 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffc110) at ../gobject/gsignal.c:3575
#29 0x00007ffff7ec2f33 in g_signal_emit (instance=instance@entry=0x4014eb0, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3622
#30 0x00007ffff6b2e3a4 in gtk_widget_event_internal (widget=widget@entry=0x4014eb0, event=event@entry=0x610f720) at ../../../../../../../dev/src/gtk/gtk/gtkwidget.c:7812
#31 0x00007ffff6b30a6d in gtk_widget_event_internal (event=0x610f720, widget=0x4014eb0) at ../../../../../../../dev/src/gtk/gtk/gtkwidget.c:7383
#32 0x00007ffff69f03fd in gtk_main_do_event (event=0x610f720) at ../../../../../../../dev/src/gtk/gtk/gtkmain.c:1861
#33 gtk_main_do_event (event=<optimized out>) at ../../../../../../../dev/src/gtk/gtk/gtkmain.c:1691
#34 0x00007ffff71021c5 in _gdk_event_emit (event=event@entry=0x610f720) at ../../../../../../../dev/src/gtk/gdk/gdkevents.c:73
#35 0x00007ffff7151742 in gdk_event_source_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at ../../../../../../../dev/src/gtk/gdk/x11/gdkeventsource.c:367
#36 0x00007ffff79e04fc in g_main_dispatch (context=0xb438f0) at ../glib/gmain.c:3460
#37 g_main_context_dispatch (context=0xb438f0) at ../glib/gmain.c:4200
#38 0x00007ffff7a3e6b8 in g_main_context_iterate.isra.0 (context=0xb438f0, block=1, dispatch=1, self=<optimized out>) at ../glib/gmain.c:4276
#39 0x00007ffff79ddb83 in g_main_context_iteration (context=context@entry=0xb438f0, may_block=may_block@entry=1) at ../glib/gmain.c:4343
#40 0x00007ffff774701d in g_application_run (application=application@entry=0xde28f0, argc=argc@entry=0, argv=argv@entry=0x0) at ../gio/gapplication.c:2573
#41 0x000000000066c4ca in app_run
(full_prog_name=0xb27b10 "/home/jehan/.local/share/crossroad/artifacts/native/gimp/gimp/app/gimp-2.99", filenames=<optimized out>, alternate_system_gimprc=alternate_system_gimprc@entry=0x0, alternate_gimprc=alternate_gimprc@entry=0x0, session_name=<optimized out>, batch_interpreter=<optimized out>, batch_commands=0x0, quit=0, as_new=0, no_interface=0, no_data=<optimized out>, no_fonts=<optimized out>, no_splash=0, be_verbose=0, use_shm=1, use_cpu_accel=1, console_messages=0, use_debug_handler=0, show_playground=1, show_debug_menu=1, stack_trace_mode=GIMP_STACK_TRACE_QUERY, pdb_compat_mode=<optimized out>, backtrace_file=0xb0c320 "/home/jehan/.config/GIMP/2.99/CrashLog/gimp-crash-1724619517.txt")
at ../../../../../../../dev/src/gimp/app/app.c:317
#42 0x00000000004abde5 in main (argc=<optimized out>, argv=<optimized out>) at ../../../../../../../dev/src/gimp/app/main.c:786