From f18c4fbbaf14f56aad9468d8d92cb00d66f873f8 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Mon, 20 Oct 2008 16:22:33 +0000 Subject: [PATCH] (gtk) #1355: transmission blocks hibernation when torrents are paused --- gtk/tr-core.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/gtk/tr-core.c b/gtk/tr-core.c index df92cb0d9..e962ed96e 100644 --- a/gtk/tr-core.c +++ b/gtk/tr-core.c @@ -1179,14 +1179,16 @@ maybeInhibitHibernation( TrCore * core ) { gboolean inhibit = pref_flag_get( PREF_KEY_INHIBIT_HIBERNATION ); - if( inhibit ) - { - /* don't inhibit if we've got active torrents */ + /* always allow hibernation when all the torrents are paused */ + if( inhibit ) { + gboolean active = FALSE; tr_handle * session = tr_core_handle( core ); tr_torrent * tor = NULL; - while( ( tor = tr_torrentNext( session, tor ) ) ) - if( tr_torrentGetStatus( tor ) != TR_STATUS_STOPPED ) - inhibit = FALSE; + while(( tor = tr_torrentNext( session, tor ))) + if(( active = ( tr_torrentGetStatus( tor ) != TR_STATUS_STOPPED ))) + break; + if( !active ) + inhibit = FALSE; } tr_core_set_hibernation_allowed( core, !inhibit );