diff options
Diffstat (limited to 'src/screensaver.cpp')
-rw-r--r-- | src/screensaver.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/screensaver.cpp b/src/screensaver.cpp index 75e6ba5..053dd99 100644 --- a/src/screensaver.cpp +++ b/src/screensaver.cpp @@ -175,16 +175,22 @@ bool isLocked() if (!init()) return false; char *v = nullptr; - Window window = find_screensaver_window( display, &v ); + static Window window = 0; + if ( !window ) + find_screensaver_window( display, &v ); if( !window ) return false; - if( !v || !*v ) + if( !v || !*v ) { + window = 0; return false; + } XClassHint hint; memset( &hint, 0, sizeof( hint ) ); XGetClassHint( display, window, &hint ); - if( !hint.res_class ) + if( !hint.res_class ) { + window = 0; return false; + } Atom type; int format; |