Possible crash when activating group after closing its active window
The crash occurs if `mTopWindowIndex` is out of bounds. Steps to reproduce: * Open mousepad * Open a second mousepad window (it becomes active) * Focus the first window and minimize it (the second mousepad window becomes active again) * Close the second mousepad window * Activate mousepad group in docklike At this stage, `mTopWindowIndex == 1` whereas there is only one window in the group -> crash. ``` Program terminated with signal SIGSEGV, Segmentation fault. #0 Xfw::activate (groupWindow=0x1, timestamp=28346052) at ../src/Xfw.cpp:144 144 XfwWorkspace* workspace = xfw_window_get_workspace(groupWindow->mXfwWindow); [Current thread is 1 (Thread 0x70ae08bc5a40 (LWP 76015))] (gdb) bt #0 Xfw::activate (groupWindow=0x1, timestamp=28346052) at ../src/Xfw.cpp:144 #1 0x000070ae0b06fce3 in GroupWindow::activate (this=<optimized out>, timestamp=<optimized out>) at ../src/GroupWindow.cpp:83 #2 0x000070ae0b06c016 in Group::activate (this=0x5efa5089eed0, timestamp=<optimized out>) at ../src/Group.cpp:257 #3 0x000070ae0b06c130 in operator() (__closure=0x0, widget=0x5efa508a0140, event=<optimized out>, me=<optimized out>) at ../src/Group.cpp:97 #4 _FUN () at ../src/Group.cpp:97 #5 0x000070ae0a8b8815 in _gtk_marshal_BOOLEAN__BOXED (closure=0x5efa508a1e50, return_value=0x7fff4c2750c0, param_values=0x7fff4c275150, marshal_data=<optimized out>, invocation_hint=<optimized out>, n_param_values=<optimized out>) at gtk/gtkmarshalers.c:84 #6 0x000070ae0a3e2812 in g_closure_invoke (closure=0x5efa508a1e50, return_value=0x7fff4c2750c0, n_param_values=2, param_values=0x7fff4c275150, invocation_hint=0x7fff4c2750a0) at ../glib/gobject/gclosure.c:833 #7 0x000070ae0a412f85 in signal_emit_unlocked_R.isra.0 (node=node@entry=0x7fff4c275260, detail=detail@entry=0, instance=instance@entry=0x5efa508a0140, emission_return=emission_return@entry=0x7fff4c2752e0, instance_and_params=instance_and_params@entry=0x7fff4c275150) at ../glib/gobject/gsignal.c:3902 #8 0x000070ae0a40348f in signal_emit_valist_unlocked (instance=instance@entry=0x5efa508a0140, signal_id=signal_id@entry=80, detail=detail@entry=0, var_args=var_args@entry=0x7fff4c2753d0) at ../glib/gobject/gsignal.c:3547 #9 0x000070ae0a403f72 in g_signal_emit_valist (instance=0x5efa508a0140, signal_id=80, detail=0, var_args=var_args@entry=0x7fff4c2753d0) at ../glib/gobject/gsignal.c:3277 #10 0x000070ae0a404034 in g_signal_emit (instance=instance@entry=0x5efa508a0140, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3597 #11 0x000070ae0ab9a8ed in gtk_widget_event_internal.part.0.lto_priv.0 (widget=0x5efa508a0140, event=0x5efa50ac9e00) at ../gtk/gtk/gtkwidget.c:7822 #12 0x000070ae0aa269e5 in propagate_event_up (widget=0x5efa508a0140, event=<optimized out>, topmost=<optimized out>) at ../gtk/gtk/gtkmain.c:2588 #13 propagate_event (widget=widget@entry=0x5efa508a0140, event=event@entry=0x5efa50ac9e00, captured=captured@entry=0, topmost=topmost@entry=0x0) at ../gtk/gtk/gtkmain.c:2691 #14 0x000070ae0aa26b31 in gtk_propagate_event (widget=0x5efa508a0140, event=0x5efa50ac9e00) at ../gtk/gtk/gtkmain.c:2725 #15 0x000070ae0aa277bb in gtk_main_do_event (event=<optimized out>) at ../gtk/gtk/gtkmain.c:1921 #16 gtk_main_do_event (event=<optimized out>) at ../gtk/gtk/gtkmain.c:1691 #17 0x000070ae0ae2f457 in _gdk_event_emit (event=0x5efa50ac9e00) at ../gtk/gdk/gdkevents.c:73 #18 _gdk_event_emit (event=0x5efa50ac9e00) at ../gtk/gdk/gdkevents.c:67 #19 0x000070ae0ae8dfe0 in gdk_event_source_dispatch.lto_priv () at ../gtk/gdk/x11/gdkeventsource.c:354 #20 0x000070ae0af52104 in g_main_dispatch (context=0x5efa50380820) at ../glib/glib/gmain.c:3398 #21 0x000070ae0afb5d57 in g_main_context_dispatch_unlocked (context=0x5efa50380820) at ../glib/glib/gmain.c:4249 #22 g_main_context_iterate_unlocked.isra.0 (context=0x5efa50380820, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4314 #23 0x000070ae0af52de7 in g_main_loop_run (loop=0x5efa5061b650) at ../glib/glib/gmain.c:4516 #24 0x000070ae0aa24dff in gtk_main () at ../gtk/gtk/gtkmain.c:1329 #25 0x00005efa4814d1d5 in main (argc=<optimized out>, argv=<optimized out>) at ../wrapper/main.c:366 ```
issue