An experimental fix for bug12048
This commit is contained in:
		@@ -134,6 +134,8 @@ class UIManager():
 | 
			
		||||
        self.et_xml = ET.fromstring(initial_xml)
 | 
			
		||||
        self.builder = None
 | 
			
		||||
        self.toolbar = None
 | 
			
		||||
        self.old_toolbar = None  # holds previous toolbar until Gtk is idle
 | 
			
		||||
        self.old_toolbar_items = None
 | 
			
		||||
        self.action_groups = []  # current list of action groups
 | 
			
		||||
        self.show_groups = []  # groups to show at the moment
 | 
			
		||||
        self.accel_dict = {}  # used to store accel overrides from file
 | 
			
		||||
@@ -242,6 +244,11 @@ class UIManager():
 | 
			
		||||
        # the following updates the toolbar from the new builder
 | 
			
		||||
        toolbar_parent = toolbar.get_parent()
 | 
			
		||||
        tb_show = toolbar.get_visible()
 | 
			
		||||
        if not self.old_toolbar:
 | 
			
		||||
            self.old_toolbar = toolbar
 | 
			
		||||
            self.old_toolbar_items = toolbar.get_children()
 | 
			
		||||
        else:
 | 
			
		||||
            print("Problem: multiple Toolbar updates before idle")
 | 
			
		||||
        toolbar_parent.remove(toolbar)
 | 
			
		||||
        toolbar = self.builder.get_object("ToolBar")  # new toolbar
 | 
			
		||||
        if config.get('interface.toolbar-text'):
 | 
			
		||||
@@ -251,8 +258,18 @@ class UIManager():
 | 
			
		||||
            toolbar.show_all()
 | 
			
		||||
        else:
 | 
			
		||||
            toolbar.hide()
 | 
			
		||||
        GLib.idle_add(self.delete_old_toolbar)
 | 
			
		||||
        #print('*** Update ui')
 | 
			
		||||
 | 
			
		||||
    def delete_old_toolbar(self):
 | 
			
		||||
        """ This is used to finish removal of the old toolbar after Gtk is
 | 
			
		||||
        idle.  To avoid an issue with the toolbar being removed before all
 | 
			
		||||
        references were removed.
 | 
			
		||||
        """
 | 
			
		||||
        self.old_toolbar = None
 | 
			
		||||
        self.old_toolbar_items = None
 | 
			
		||||
        return False
 | 
			
		||||
 | 
			
		||||
    def add_ui_from_string(self, changexml):
 | 
			
		||||
        """ This performs a merge operation on the xml elements that have
 | 
			
		||||
        matching 'id's between the current ui xml and change xml strings.
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user