From c010f11b90428ffb403b998386433c572b63be49 Mon Sep 17 00:00:00 2001 From: Cyrille Bagard Date: Sat, 11 Aug 2018 11:31:47 +0200 Subject: Taken into account that panel docking can evolve without main menus. --- src/gui/menus/view.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/gui/menus/view.c b/src/gui/menus/view.c index bf8976c..4591c0f 100644 --- a/src/gui/menus/view.c +++ b/src/gui/menus/view.c @@ -599,7 +599,21 @@ static void mcb_view_change_panel_docking(GtkCheckMenuItem *menuitem, GPanelItem { gboolean active; /* Etat de sélection du menu */ - active = gtk_check_menu_item_get_active(menuitem); + /** + * Comme l'accrochage et le décrochage d'un panneau peuvent se réaliser + * sans l'aide de ce menu (via les menus des stations d'accueil par exemple), + * on ne peut se baser sur l'état de ce menu, mis à jour uniquement à + * l'affichage, pour basculer lors de l'activation dudit menu via les raccourcis. + * + * L'appel suivant peut donc conduire à des erreurs, ie on réaccroche un + * panneau déjà accroché ou l'inverse : + * + * active = gtk_check_menu_item_get_active(menuitem); + * + * On préfèrera donc se baser sur l'état courant du panneau. + */ + + active = !g_panel_item_is_docked(item); if (active) g_panel_item_dock(item); -- cgit v0.11.2-87-g4458