Changeset 8757


Ignore:
Timestamp:
Jun 29, 2009, 5:22:35 PM (13 years ago)
Author:
charles
Message:

(trunk gtk) #2251: gtk client should use GDK-safe versions of g_idle_add() and g_timeout_add*()

Location:
trunk/gtk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/gtk/makemeta-ui.c

    r8279 r8757  
    2424#include "tracker-list.h"
    2525#include "util.h"
    26 
    27 #define UPDATE_INTERVAL_MSEC 200
    2826
    2927#define UI_KEY "ui"
     
    231229                                                                     private_check ) ) );
    232230
    233     tag = g_timeout_add ( UPDATE_INTERVAL_MSEC, refresh_cb, ui );
     231    tag = gtr_timeout_add_seconds( 1, refresh_cb, ui );
    234232    g_object_set_data_full ( G_OBJECT( d ), "tag", GUINT_TO_POINTER(
    235233                                 tag ), remove_tag );
  • trunk/gtk/tr-core.c

    r8736 r8757  
    13731373#endif
    13741374    g_byte_array_append( bytes, (const uint8_t*)response, response_len );
    1375     g_idle_add( readResponseIdle, bytes );
     1375    gtr_idle_add( readResponseIdle, bytes );
    13761376}
    13771377
  • trunk/gtk/tr-prefs.c

    r8755 r8757  
    147147        g_object_set_data_full( o, IDLE_DATA, data, spin_idle_data_free );
    148148        g_object_ref( G_OBJECT( o ) );
    149         g_timeout_add( 100, spun_cb_idle, w );
     149        gtr_timeout_add_seconds( 1, spun_cb_idle, w );
    150150    }
    151151    g_timer_start( data->last_change );
  • trunk/gtk/tr-torrent.c

    r8122 r8757  
    168168{
    169169    if( ( completeness != TR_LEECH ) && ( tr_torrentStat( tor )->sizeWhenDone != 0 ) )
    170         g_idle_add( notifyInMainThread, user_data );
     170        gtr_idle_add( notifyInMainThread, user_data );
    171171}
    172172
  • trunk/gtk/tr-window.c

    r8751 r8757  
    607607onAltSpeedToggled( tr_session * s UNUSED, tr_bool isEnabled UNUSED, tr_bool byUser UNUSED, void * p )
    608608{
    609     g_idle_add( onAltSpeedToggledIdle, p );
     609    gtr_idle_add( onAltSpeedToggledIdle, p );
    610610}
    611611
  • trunk/gtk/util.c

    r8736 r8757  
    668668***/
    669669
    670 guint
    671 gtr_timeout_add_seconds( guint seconds, GSourceFunc function, gpointer data )
    672 {
    673 #if GLIB_CHECK_VERSION( 2,14,0 )
    674     return g_timeout_add_seconds( seconds, function, data );
    675 #else
    676     return g_timeout_add( seconds*1000, function, data );
    677 #endif
    678 }
    679 
    680670void
    681671gtr_widget_set_tooltip_text( GtkWidget * w, const char * tip )
     
    701691#endif
    702692}
     693
     694/***
     695****
     696***/
     697
     698#if !GTK_CHECK_VERSION( 2,12,0 )
     699struct gtr_func_data
     700{
     701    GSourceFunc function;
     702    gpointer data;
     703};
     704
     705static gboolean
     706gtr_thread_func( gpointer data )
     707{
     708    struct gtr_func_data * idle_data = data;
     709    gboolean more;
     710
     711    gdk_threads_enter( );
     712    more = idle_data->function( idle_data->data );
     713    gdk_threads_leave( );
     714
     715    if( !more )
     716        g_free( data );
     717
     718    return more;
     719}
     720#endif
     721
     722void
     723gtr_idle_add( GSourceFunc function, gpointer data )
     724{
     725#if GTK_CHECK_VERSION( 2,12,0 )
     726    gdk_threads_add_idle( func, data );
     727#else
     728    struct gtr_func_data * d = g_new( struct gtr_func_data, 1 );
     729    d->function = function;
     730    d->data = data;
     731    g_idle_add( gtr_thread_func, d );
     732#endif
     733}
     734
     735guint
     736gtr_timeout_add_seconds( guint seconds, GSourceFunc function, gpointer data )
     737{
     738#if GTK_CHECK_VERSION( 2,14,0 )
     739    return gdk_threads_add_timeout_seconds( seconds, function, data );
     740#elif GTK_CHECK_VERSION( 2,12,0 )
     741    return gdk_threads_add_timeout( seconds*1000, function, data );
     742#else
     743    struct gtr_func_data * d = g_new( struct gtr_func_data, 1 );
     744    d->function = function;
     745    d->data = data;
     746    return g_timeout_add( seconds*1000, gtr_thread_func, d );
     747#endif
     748}
  • trunk/gtk/util.h

    r8724 r8757  
    9595#ifdef GTK_MAJOR_VERSION
    9696
     97guint       gtr_timeout_add_seconds( guint       seconds,
     98                                     GSourceFunc function,
     99                                     gpointer    data );
     100
     101void        gtr_idle_add( GSourceFunc  func,
     102                          gpointer     data );
     103
    97104void        gtr_toolbar_set_orientation( GtkToolbar      * toolbar,
    98105                                         GtkOrientation    orientation );
     
    102109GtkWidget * gtr_button_new_from_stock( const char * stock,
    103110                                       const char * mnemonic );
    104 
    105 guint       gtr_timeout_add_seconds( guint       seconds,
    106                                      GSourceFunc function,
    107                                      gpointer    data );
    108111
    109112void        addTorrentErrorDialog( GtkWidget *  window_or_child,
Note: See TracChangeset for help on using the changeset viewer.