Found the problem to be that GtkWidgetClass::hide is only called if the widget was visible, thus if the call order is:
1. show()
2. hide()
3. local_notify(local = 1)
the menubar remains shown, but if the call order is:
1. show()
2. local_notify(local = 1)
3. hide()
Found the problem to be that GtkWidgetClass: :hide is only called if the widget was visible, thus if the call order is:
1. show()
2. hide()
3. local_notify(local = 1)
the menubar remains shown, but if the call order is:
1. show()
2. local_notify(local = 1)
3. hide()
things work correctly.