Changeset 221:dc5328912f3d

Show
Ignore:
Timestamp:
04/09/08 10:46:29 (5 months ago)
Author:
Frank Benoit <benoit@tionex.de>
branch:
default
Message:

Fix: Display timer if multiple instances in use.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • dwt/internal/gtk/OS.d

    r213 r221  
    12681268    mixin ForwardGtkOsCFunc!(.g_object_set_qdata); 
    12691269    mixin ForwardGtkOsCFunc!(.g_object_unref); 
     1270    mixin ForwardGtkOsCFunc!(.g_object_get_data); 
     1271    mixin ForwardGtkOsCFunc!(.g_object_set_data); 
    12701272    mixin ForwardGtkOsCFunc!(.g_quark_from_string); 
    12711273    mixin ForwardGtkOsCFunc!(.g_set_prgname); 
  • dwt/widgets/Display.d

    r218 r221  
    5050import tango.core.Thread; 
    5151import tango.io.Stdout; 
     52import tango.util.log.Trace; 
    5253 
    5354/** 
     
    40884089 
    40894090package int doWindowTimerAdd( CallbackData* cbdata, int delay, GtkWidget* widget ){ 
    4090     cbdata.display = this; 
    4091     cbdata.data = cast(void*)widget; 
    4092     return OS.gtk_timeout_add (delay, &windowTimerProcFunc, &cbdata); 
    4093 
    4094  
     4091    OS.g_object_set_data(cast(GObject*)widget, Display.classinfo.name.ptr, cast(void*)this); 
     4092    return OS.gtk_timeout_add (delay, &windowTimerProcFunc, widget); 
     4093
    40954094private static extern(C) int /*long*/ windowTimerProcFunc (void* user_data) { 
    40964095    version(LOG) Stderr.formatln( "Display {}:", __LINE__ ).flush; 
    4097     CallbackData* cbdata = cast(CallbackData*)user_data
    4098     return cbdata.display.windowTimerProc( cast(GtkWidget*)cbdata.data ); 
     4096    Display d = cast(Display) OS.g_object_get_data(cast(GObject*)user_data, Display.classinfo.name.ptr )
     4097    return d.windowTimerProc( cast(GtkWidget*)user_data ); 
    40994098} 
    41004099