Null pointer dereference in multi-monitor setup with onlyDisplayScreen enabled
Follow-up to #63 (comment 85197)
Reproducible when a window is on a monitor other than the first monitor for GDK, but this may not happen at plugin startup, only when reloading desktop files.
Core was generated by `/usr/local/lib/xfce4/panel/wrapper-2.0 /usr/local/lib/xfce4/panel/plugins/libdo'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x0000799f7b09b601 in GroupWindow::onActivate (this=0x0) at GroupWindow.cpp:116
116 gtk_widget_queue_draw(GTK_WIDGET(mGroupMenuItem->mItem));
[Current thread is 1 (Thread 0x799f7b411a00 (LWP 24715))]
(gdb) bt
#0 0x0000799f7b09b601 in GroupWindow::onActivate (this=0x0) at GroupWindow.cpp:116
#1 0x0000799f7b0a2540 in Wnck::setActiveWindow () at /usr/include/c++/13.2.1/bits/shared_ptr_base.h:1068
#2 0x0000799f7b09b84b in GroupWindow::updateState (this=0x55eca8e7b610) at GroupWindow.cpp:178
#3 0x0000799f7b09bc8a in GroupWindow::GroupWindow (this=0x55eca8e7b610, wnckWindow=<optimized out>) at GroupWindow.cpp:70
#4 0x0000799f7b09fc9e in std::_Construct<GroupWindow, _WnckWindow*&> (__p=0x55eca8e7b610) at /usr/include/c++/13.2.1/bits/stl_construct.h:109
#5 std::allocator_traits<std::allocator<void> >::construct<GroupWindow, _WnckWindow*&> (__p=0x55eca8e7b610) at /usr/include/c++/13.2.1/bits/alloc_traits.h:660
#6 std::_Sp_counted_ptr_inplace<GroupWindow, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<_WnckWindow*&> (__a=..., this=0x55eca8e7b600)
at /usr/include/c++/13.2.1/bits/shared_ptr_base.h:604
#7 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<GroupWindow, std::allocator<void>, _WnckWindow*&> (__a=..., __p=<optimized out>, this=<optimized out>)
at /usr/include/c++/13.2.1/bits/shared_ptr_base.h:971
#8 std::__shared_ptr<GroupWindow, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, _WnckWindow*&> (__tag=..., this=<optimized out>) at /usr/include/c++/13.2.1/bits/shared_ptr_base.h:1712
#9 std::shared_ptr<GroupWindow>::shared_ptr<std::allocator<void>, _WnckWindow*&> (__tag=..., this=<optimized out>) at /usr/include/c++/13.2.1/bits/shared_ptr.h:464
#10 std::make_shared<GroupWindow, _WnckWindow*&> () at /usr/include/c++/13.2.1/bits/shared_ptr.h:1010
#11 Dock::drawGroups () at Dock.cpp:105
#12 0x0000799f7cbe4730 in g_closure_invoke (closure=0x55eca8bc7510, return_value=0x0, n_param_values=1, param_values=0x7ffc80af24a0, invocation_hint=0x7ffc80af23f0) at ../glib/gobject/gclosure.c:834
#13 0x0000799f7cc13896 in signal_emit_unlocked_R.isra.0
(node=node@entry=0x7ffc80af2570, detail=detail@entry=0, instance=instance@entry=0x55eca8dd6270, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffc80af24a0)
at ../glib/gobject/gsignal.c:3879
#14 0x0000799f7cc047a2 in signal_emit_valist_unlocked (instance=instance@entry=0x55eca8dd6270, signal_id=signal_id@entry=253, detail=detail@entry=0, var_args=var_args@entry=0x7ffc80af26d0)
at ../glib/gobject/gsignal.c:3511
#15 0x0000799f7cc049d7 in g_signal_emit_valist (instance=0x55eca8dd6270, signal_id=253, detail=0, var_args=var_args@entry=0x7ffc80af26d0) at ../glib/gobject/gsignal.c:3254
#16 0x0000799f7cc04a94 in g_signal_emit (instance=<optimized out>, signal_id=signal_id@entry=253, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3574
#17 0x0000799f7cc70ad2 in g_context_specific_source_dispatch (source=0x55eca8bc73a0, callback=<optimized out>, user_data=<optimized out>) at ../glib/gio/gcontextspecificgroup.c:56
#18 0x0000799f7cae0179 in g_main_dispatch (context=0x55eca8bad4b0) at ../glib/glib/gmain.c:3344
#19 0x0000799f7cb3f39f in g_main_context_dispatch_unlocked (context=0x55eca8bad4b0) at ../glib/glib/gmain.c:4152
#20 g_main_context_iterate_unlocked.isra.0 (context=0x55eca8bad4b0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4217
#21 0x0000799f7cae0da7 in g_main_loop_run (loop=0x55eca8d68f10) at ../glib/glib/gmain.c:4419
#22 0x0000799f7cfed2bf in gtk_main () at ../gtk/gtk/gtkmain.c:1329
#23 0x000055eca725f14c in main (argc=<optimized out>, argv=<optimized out>) at main.c:376