@@ -363,59 +363,66 @@ export default class MyExtension extends Extension {
363363 }
364364
365365 enable ( ) {
366- this . _setting = this . getSettings ( )
367- this . _checkRequirements ( ) ;
368- this . _loginManager = LoginManager . getLoginManager ( ) ;
369- this . systemMenu = Main . panel . statusArea . quickSettings . _system ;
370-
371- this . _hibernateMenuItem = new PopupMenu . PopupMenuItem ( __ ( 'Hibernate' ) ) ;
372- this . _hibernateMenuItemId = this . _hibernateMenuItem . connect (
373- 'activate' ,
374- ( ) => this . _onHibernateClicked ( )
375- ) ;
376-
377- this . _hybridSleepMenuItem = new PopupMenu . PopupMenuItem (
378- __ ( 'Hybrid Sleep' )
379- ) ;
380- this . _hybridSleepMenuItemId = this . _hybridSleepMenuItem . connect (
381- 'activate' ,
382- ( ) => this . _onHybridSleepClicked ( )
383- ) ;
384-
385- this . _suspendThenHibernateMenuItem = new PopupMenu . PopupMenuItem (
386- __ ( 'Suspend then Hibernate' )
387- ) ;
388- this . _suspendThenHibernateMenuItemId = this . _suspendThenHibernateMenuItem . connect (
389- 'activate' ,
390- ( ) => this . _onSuspendThenHibernateClicked ( )
391- ) ;
392-
393- let afterSuspendPosition =
394- this . systemMenu . _systemItem . menu . numMenuItems - 5 ;
395-
396- this . systemMenu . _systemItem . menu . addMenuItem (
397- this . _hybridSleepMenuItem ,
398- afterSuspendPosition
399- ) ;
400- this . systemMenu . _systemItem . menu . addMenuItem (
401- this . _hibernateMenuItem ,
402- afterSuspendPosition
403- ) ;
404- this . systemMenu . _systemItem . menu . addMenuItem (
405- this . _suspendThenHibernateMenuItem ,
406- afterSuspendPosition
407- ) ;
408-
409- this . _menuOpenStateChangedId = this . systemMenu . _systemItem . menu . connect (
410- 'open-state-changed' ,
411- ( menu , open ) => {
412- if ( ! open ) return ;
413- this . _updateDefaults ( ) ;
414- this . _updateHaveHibernate ( ) ;
415- this . _updateHaveHybridSleep ( ) ;
416- this . _updateHaveSuspendThenHibernate ( ) ;
366+ var self = this ;
367+
368+ let poller = setInterval ( ( ) => {
369+ if ( Main . panel . statusArea . quickSettings . _system ) {
370+ self . _setting = self . getSettings ( )
371+ self . _checkRequirements ( ) ;
372+ self . _loginManager = LoginManager . getLoginManager ( ) ;
373+ self . systemMenu = Main . panel . statusArea . quickSettings . _system ;
374+ self . _hibernateMenuItem = new PopupMenu . PopupMenuItem ( __ ( 'Hibernate' ) ) ;
375+ self . _hibernateMenuItemId = self . _hibernateMenuItem . connect (
376+ 'activate' ,
377+ ( ) => self . _onHibernateClicked ( )
378+ ) ;
379+
380+ self . _hybridSleepMenuItem = new PopupMenu . PopupMenuItem (
381+ __ ( 'Hybrid Sleep' )
382+ ) ;
383+ self . _hybridSleepMenuItemId = self . _hybridSleepMenuItem . connect (
384+ 'activate' ,
385+ ( ) => self . _onHybridSleepClicked ( )
386+ ) ;
387+
388+ self . _suspendThenHibernateMenuItem = new PopupMenu . PopupMenuItem (
389+ __ ( 'Suspend then Hibernate' )
390+ ) ;
391+ self . _suspendThenHibernateMenuItemId = self . _suspendThenHibernateMenuItem . connect (
392+ 'activate' ,
393+ ( ) => self . _onSuspendThenHibernateClicked ( )
394+ ) ;
395+
396+ let afterSuspendPosition =
397+ self . systemMenu . _systemItem . menu . numMenuItems - 5 ;
398+
399+ self . systemMenu . _systemItem . menu . addMenuItem (
400+ self . _hybridSleepMenuItem ,
401+ afterSuspendPosition
402+ ) ;
403+ self . systemMenu . _systemItem . menu . addMenuItem (
404+ self . _hibernateMenuItem ,
405+ afterSuspendPosition
406+ ) ;
407+ self . systemMenu . _systemItem . menu . addMenuItem (
408+ self . _suspendThenHibernateMenuItem ,
409+ afterSuspendPosition
410+ ) ;
411+
412+ self . _menuOpenStateChangedId = self . systemMenu . _systemItem . menu . connect (
413+ 'open-state-changed' ,
414+ ( menu , open ) => {
415+ if ( ! open ) return ;
416+ self . _updateDefaults ( ) ;
417+ self . _updateHaveHibernate ( ) ;
418+ self . _updateHaveHybridSleep ( ) ;
419+ self . _updateHaveSuspendThenHibernate ( ) ;
420+ }
421+ ) ;
422+
423+ clearInterval ( poller ) ;
417424 }
418- ) ;
425+ } , 50 ) ;
419426 }
420427
421428 disable ( ) {
0 commit comments