File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -87,28 +87,36 @@ var ScreensaverController = class {
8787 return this . #settings. get_boolean ( 'allow-keyboard-shortcuts' ) ;
8888 }
8989
90- lockScreen ( askForAwayMessage ) {
91- if ( Main . lockdownSettings . get_boolean ( 'disable-lock-screen' ) )
90+ lockScreen ( askForAwayMessage , callback = null ) {
91+ if ( Main . lockdownSettings . get_boolean ( 'disable-lock-screen' ) ) {
92+ if ( callback )
93+ callback ( this . #locked) ;
9294 return ;
95+ }
9396
9497 if ( askForAwayMessage && this . #settings. get_boolean ( 'ask-for-away-message' ) ) {
9598 let dialog = new AwayMessageDialog . AwayMessageDialog ( ( message ) => {
96- this . #doLock( message ) ;
99+ this . #doLock( message , callback ) ;
97100 } ) ;
98101 dialog . open ( ) ;
99102 return ;
100103 }
101104
102- this . #doLock( null ) ;
105+ this . #doLock( null , callback ) ;
103106 }
104107
105- #doLock( awayMessage ) {
108+ #doLock( awayMessage , callback ) {
106109 if ( this . #screenShield) {
107- this . #screenShield. lock ( false , awayMessage ) ;
110+ this . #screenShield. lock ( false , awayMessage , callback ) ;
108111 return ;
109112 }
110113
111- this . #screenSaverProxy. LockRemote ( awayMessage || "" ) ;
114+ this . #screenSaverProxy. LockRemote ( awayMessage || "" , ( result , error ) => {
115+ if ( error )
116+ global . logError ( `ScreensaverController: LockRemote failed: ${ error . message } ` ) ;
117+ if ( callback )
118+ callback ( ! error ) ;
119+ } ) ;
112120 }
113121
114122 hideKeyboard ( ) {
Original file line number Diff line number Diff line change @@ -358,9 +358,11 @@ var ScreenShield = GObject.registerClass({
358358 clipboard . set_text ( St . ClipboardType . CLIPBOARD , '' ) ;
359359 }
360360
361- lock ( immediate = false , awayMessage = null ) {
361+ lock ( immediate = false , awayMessage = null , callback = null ) {
362362 if ( this . isLocked ( ) || this . _activationPending ) {
363363 _log ( 'ScreenShield: Already locked or activation pending, ignoring lock request' ) ;
364+ if ( callback )
365+ callback ( this . isLocked ( ) ) ;
364366 return ;
365367 }
366368
@@ -374,10 +376,14 @@ var ScreenShield = GObject.registerClass({
374376 this . _stopLockDelay ( ) ;
375377 this . _setLocked ( ) ;
376378 }
379+ if ( callback )
380+ callback ( success ) ;
377381 } ) ;
378382 } else {
379383 this . _stopLockDelay ( ) ;
380384 this . _setLocked ( ) ;
385+ if ( callback )
386+ callback ( true ) ;
381387 }
382388 }
383389
You can’t perform that action at this time.
0 commit comments