mirror of
https://github.com/transmission/transmission
synced 2025-02-01 03:43:43 +00:00
(trunk gtk) #3554 "alternate speed (turtle) button does not update when toggled via RPC" -- fixed.
This commit is contained in:
parent
2d1348c2f7
commit
efd71c05ab
1 changed files with 28 additions and 2 deletions
30
gtk/main.c
30
gtk/main.c
|
@ -446,9 +446,35 @@ onRPCChanged( tr_session * session,
|
|||
break;
|
||||
}
|
||||
|
||||
case TR_RPC_SESSION_CHANGED:
|
||||
tr_sessionGetSettings( session, pref_get_all( ) );
|
||||
case TR_RPC_SESSION_CHANGED: {
|
||||
int i;
|
||||
tr_benc tmp;
|
||||
tr_benc * newval;
|
||||
tr_benc * oldvals = pref_get_all( );
|
||||
const char * key;
|
||||
tr_bencInitDict( &tmp, 100 );
|
||||
tr_sessionGetSettings( session, &tmp );
|
||||
for( i=0; tr_bencDictChild( &tmp, i, &key, &newval ); ++i )
|
||||
{
|
||||
tr_bool changed;
|
||||
tr_benc * oldval = tr_bencDictFind( oldvals, key );
|
||||
if( !oldval )
|
||||
changed = TRUE;
|
||||
else {
|
||||
char * a = tr_bencToStr( oldval, TR_FMT_BENC, NULL );
|
||||
char * b = tr_bencToStr( newval, TR_FMT_BENC, NULL );
|
||||
changed = strcmp( a, b ) != 0;
|
||||
tr_free( b );
|
||||
tr_free( a );
|
||||
}
|
||||
|
||||
if( changed )
|
||||
prefschanged( cbdata->core, key, cbdata );
|
||||
}
|
||||
tr_sessionGetSettings( session, oldvals );
|
||||
tr_bencFree( &tmp );
|
||||
break;
|
||||
}
|
||||
|
||||
case TR_RPC_TORRENT_CHANGED:
|
||||
case TR_RPC_TORRENT_MOVED:
|
||||
|
|
Loading…
Reference in a new issue