| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -4,6 +4,7 @@ const AccountsService = imports.gi.AccountsService;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const Clutter = imports.gi.Clutter;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const Gio = imports.gi.Gio;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const GLib = imports.gi.GLib;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const Pango = imports.gi.Pango;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const Shell = imports.gi.Shell;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const St = imports.gi.St;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const GObject = imports.gi.GObject;
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -163,18 +164,15 @@ var Indicator = class extends PanelMenu.SystemIndicator {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    _updateSwitchUserSubMenu() {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        this._switchUserSubMenu.label.text = this._user.get_real_name();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        let clutterText = this._switchUserSubMenu.label.clutter_text;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        let realName = this._user.get_real_name();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // XXX -- for some reason, the ClutterText's width changes
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // rapidly unless we force a relayout of the actor. Probably
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // a size cache issue or something. Moving this to be a layout
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // manager would be a much better idea.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        clutterText.get_allocation_box();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        let layout = clutterText.get_layout();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        if (layout.is_ellipsized())
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // In theory, GNOME allows creating users with names up to 255
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // characters, but such long names look terribly bad, so limit
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // to 100 and it should fit the vast majority of screen sizes.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        if (realName.length > 100)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            this._switchUserSubMenu.label.text = this._user.get_user_name();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            this._switchUserSubMenu.label.text = realName;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        let iconFile = this._user.get_icon_file();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        if (iconFile && !GLib.file_test(iconFile, GLib.FileTest.EXISTS))
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -211,6 +209,7 @@ var Indicator = class extends PanelMenu.SystemIndicator {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        this._switchUserSubMenu = new PopupMenu.PopupSubMenuMenuItem('', true);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        this._switchUserSubMenu.icon.style_class = 'system-switch-user-submenu-icon';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        this._switchUserSubMenu.label.clutter_text.ellipsize = Pango.EllipsizeMode.END;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // Since the label of the switch user submenu depends on the width of
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        // the popup menu, and we can't easily connect on allocation-changed
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				 
 |