[Xfce4-commits] [apps/xfce4-screensaver] 01/01: Fix lock after delay setting

noreply at xfce.org noreply at xfce.org
Thu Nov 15 03:11:57 CET 2018


This is an automated email from the git hooks/post-receive script.

b   l   u   e   s   a   b   r   e       p   u   s   h   e   d       a       c   o   m   m   i   t       t   o       b   r   a   n   c   h       m   a   s   t   e   r   
   in repository apps/xfce4-screensaver.

commit 09812b707fa5b8c1555cd5e3f318fd01135343e1
Author: Sean Davis <smd.seandavis at gmail.com>
Date:   Wed Nov 14 21:11:53 2018 -0500

    Fix lock after delay setting
---
 README.md           |  1 -
 src/gs-manager.c    | 11 +++++++++--
 src/gs-window-x11.c | 12 ++++++++++--
 src/gs-window.h     |  2 ++
 4 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/README.md b/README.md
index 44eecaf..ee20287 100644
--- a/README.md
+++ b/README.md
@@ -23,7 +23,6 @@ Features
 Known Issues
 ============
 
- - Time before locking after the screensaver, /lock-delay, is currently ignored. Instead, the screen is immediately locked.
  - Allow embedding a keyboard into the window, /embedded-keyboard-enabled, may be non-functional. Onboard crashes when embedded.
  - Allow the session status message to be displayed, /status-message-enabled, is currently ignored. The status message is always displayed when received.
 
diff --git a/src/gs-manager.c b/src/gs-manager.c
index c3b5cb4..1bbdd86 100644
--- a/src/gs-manager.c
+++ b/src/gs-manager.c
@@ -384,13 +384,19 @@ gs_manager_get_lock_active (GSManager *manager,
 void
 gs_manager_set_lock_active (GSManager *manager,
                             gboolean   lock_active) {
+    GSList *l;
+
     g_return_if_fail (GS_IS_MANAGER (manager));
 
     gs_debug ("Setting lock active: %d", lock_active);
 
-    if (manager->priv->lock_active != lock_active) {
+    if (manager->priv->lock_active != lock_active) {    
         manager->priv->lock_active = lock_active;
     }
+
+    for (l = manager->priv->windows; l; l = l->next) {
+        gs_window_set_lock_active(l->data, lock_active);
+    }
 }
 
 void
@@ -1648,10 +1654,11 @@ gs_manager_deactivate (GSManager *manager) {
     /* reset state */
     manager->priv->active = FALSE;
     manager->priv->activate_time = 0;
-    manager->priv->lock_active = FALSE;
     manager->priv->dialog_up = FALSE;
     manager->priv->fading = FALSE;
 
+    gs_manager_set_lock_active (manager, FALSE);
+
     return TRUE;
 }
 
diff --git a/src/gs-window-x11.c b/src/gs-window-x11.c
index 9dfeb91..c4c409a 100644
--- a/src/gs-window-x11.c
+++ b/src/gs-window-x11.c
@@ -71,6 +71,7 @@ struct GSWindowPrivate {
     guint            keyboard_enabled : 1;
 
     guint64          logout_timeout;
+    gboolean         lock_active;
     char            *logout_command;
     char            *keyboard_command;
     char            *status_message;
@@ -1614,9 +1615,8 @@ gs_window_request_unlock (GSWindow *window) {
         return;
     }
 
-    if (!window->priv->lock_enabled) {
+    if (!window->priv->lock_active) {
         add_emit_deactivated_idle (window);
-
         return;
     }
 
@@ -1628,6 +1628,14 @@ gs_window_request_unlock (GSWindow *window) {
 }
 
 void
+gs_window_set_lock_active (GSWindow *window,
+                           gboolean  active) {
+    g_return_if_fail (GS_IS_WINDOW (window));
+
+    window->priv->lock_active = active;
+}
+
+void
 gs_window_cancel_unlock_request (GSWindow  *window) {
     /* FIXME: This is a bit of a hammer approach...
      * Maybe we should send a delete-event to the plug?
diff --git a/src/gs-window.h b/src/gs-window.h
index 644640b..0612f2c 100644
--- a/src/gs-window.h
+++ b/src/gs-window.h
@@ -79,6 +79,8 @@ void        gs_window_set_user_switch_enabled (GSWindow        *window,
                                                gboolean         user_switch_enabled);
 void        gs_window_set_logout_timeout      (GSWindow        *window,
                                                glong            timeout);
+void        gs_window_set_lock_active         (GSWindow        *window,
+                                               gboolean         active);
 void        gs_window_set_logout_command      (GSWindow        *window,
                                                const char      *command);
 void        gs_window_set_status_message      (GSWindow        *window,

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list