Changeset 11215


Ignore:
Timestamp:
Sep 17, 2010, 2:27:03 AM (11 years ago)
Author:
charles
Message:

(trunk gtk) #3554 "alternate speed (turtle) button does not update when toggled via RPC" -- fixed.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gtk/main.c

    r11182 r11215  
    447447        }
    448448
    449         case TR_RPC_SESSION_CHANGED:
    450             tr_sessionGetSettings( session, pref_get_all( ) );
     449        case TR_RPC_SESSION_CHANGED: {
     450            int i;
     451            tr_benc tmp;
     452            tr_benc * newval;
     453            tr_benc * oldvals = pref_get_all( );
     454            const char * key;
     455            tr_bencInitDict( &tmp, 100 );
     456            tr_sessionGetSettings( session, &tmp );
     457            for( i=0; tr_bencDictChild( &tmp, i, &key, &newval ); ++i )
     458            {
     459                tr_bool changed;
     460                tr_benc * oldval = tr_bencDictFind( oldvals, key );
     461                if( !oldval )
     462                    changed = TRUE;
     463                else {
     464                    char * a = tr_bencToStr( oldval, TR_FMT_BENC, NULL );
     465                    char * b = tr_bencToStr( newval, TR_FMT_BENC, NULL );
     466                    changed = strcmp( a, b ) != 0;
     467                    tr_free( b );
     468                    tr_free( a );
     469                }
     470
     471                if( changed )
     472                    prefschanged( cbdata->core, key, cbdata );
     473            }
     474            tr_sessionGetSettings( session, oldvals );
     475            tr_bencFree( &tmp );
    451476            break;
     477        }
    452478
    453479        case TR_RPC_TORRENT_CHANGED:
Note: See TracChangeset for help on using the changeset viewer.