Win32 - invalid cast GdkPixmap to GdkWindow in gdk_event_translate



Hi Guys,
 
I have a fairly substantial Gtk application im working with that is experiencing some seemlingly randomly timed, but consistent in symptoms, crashes on Windows.
 
The application is run on the following platforms:
Linux Gtk 2.4
Linux Gtk 2.10
Solaris Gtk 2.4
Windows Gtk 2.4
 
The issue occus usually after the application has been running for a few hours, but has happed within 10-15 minues of starting up before. The warning below first printed out (not that I have elevated invalid cast to a CRITICAL in this build and dumped the stack on any CRITICALs to try and locate the issue):
 

** (application): CRITICAL **: invalid cast from `GdkPixmap' to `GdkWindow'

 

The stack trace for this is below (Windows Gtk 2.4.14):

 

Stacktrace:
#0  0x00360EDB in g_logv+0x3BB () at c:\temp\gtk+-2.4.14\glib-2.4.7\glib\gmessages.c:504
#1  0x0122E2DB in g_critical+0x1B () at c:\temp\gtk+-2.4.14\glib-2.4.7\glib\gmessages.h:164
#2  0x0122E26B in g_type_check_instance_cast+0xDB () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gtype.c:3169
#3  0x10028073 in gdk_event_translate+0x1A3 () at c:\temp\gtk+-2.4.14\gdk\win32\gdkevents-win32.c:2264
#4  0x10025F2F in inner_window_procedure+0x6F () at c:\temp\gtk+-2.4.14\gdk\win32\gdkevents-win32.c:280
#5  0x10025E5C in _gdk_win32_window_procedure+0x7C () at c:\temp\gtk+-2.4.14\gdk\win32\gdkevents-win32.c:316
#6  0x7739B6E3 in LoadCursorW+0x4CF5 ()
#7  0x7739B874 in LoadCursorW+0x4E86 ()
#8  0x7739C8B8 in GetMessageW+0x9F ()
#9  0x7739223B in LoadCursorA+0x929 ()
#10  0x7C828536 in KiUserCallbackDispatcher+0x2E ()
#11  0x77392390 in SetWindowLongW+0xD3 ()
#12  0x7738C334 in CreateWindowExA+0x33 ()
#13  0x661DB384in <unknown function>
#14  0x10040AAD in gdk_window_new_internal+0x65D () at c:\temp\gtk+-2.4.14\gdk\win32\gdkwindow-win32.c:693
#15  0x10040446 in gdk_window_new+0x16 () at c:\temp\gtk+-2.4.14\gdk\win32\gdkwindow-win32.c:758
#16  0x013211E1 in gtk_event_box_realize+0x131 () at c:\temp\gtk+-2.4.14\gtk\gtkeventbox.c:442
#17  0x012264BE in g_cclosure_marshal_VOID__VOID+0x9E () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gmarshal.c:78
#18  0x01213B6C in g_type_class_meta_marshal+0x4C () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gclosure.c:518
#19  0x01213860 in g_closure_invoke+0x130 () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gclosure.c:441
#20  0x012258AD in signal_emit_unlocked_R+0x3BD () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2369
#21  0x01224FEF in g_signal_emit_valist+0x72F () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2194
#22  0x0122537F in g_signal_emit+0x1F () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2238
#23  0x0147368B in gtk_widget_realize+0x14B () at c:\temp\gtk+-2.4.14\gtk\gtkwidget.c:2241
#24  0x01476F76 in gtk_widget_set_parent+0x346 () at c:\temp\gtk+-2.4.14\gtk\gtkwidget.c:4297
#25  0x01340D0C in gtk_fixed_put+0xCC () at c:\temp\gtk+-2.4.14\gtk\gtkfixed.c:196
#26  0x0043AF5D in AddToContainer+0x15D () at c:\application\control.cpp:3620
#27  0x004356AA in AddToContainer+0x2A () at c:\application\control.cpp:1503
#28  0x008587EB in ShowControl+0x1FB () at c:\application\control.cpp:173
#29  0x00A44B28 in ShowPControl+0x1B8 () at c:\application\panel.cpp:307
#30  0x00861B6D in ShowPControl+0x2D () at c:\application\app_fns.cpp:562
#31  0x0D8ED18B in UsrShowControl+0x8B ()
#32  0x0071C4A5 in UsrFunction+0x115 () at c:\application\usefns.cpp:42
#33  0x0045F719 in RunUsrFunction+0x89 () at c:\application\cmdhandler.cpp:7452
#34  0x0063199B in ParseCommand+0x61B () at c:\application\parsefns.cpp:2190
#35  0x00631A7E in ParseCommandOuter+0x1E () at c:\parsefns\parsefns.cpp:2217
#36  0x00942B0F in
#37  0x0098B806 in
#38  0x0094056C in
#39  0x0093E1D4 in
#40  0x0098C0FA in
#41  0x0093E120 in   .. omitted - not relevant ..
#42  0x0086198F in
#43  0x0D8E8D60 in
#44  0x0071C4BB in
#45  0x00649FBD in
#46  0x0085EE43 in
#47  0x00A43BBA in
#48  0x0085EED8 in
#49  0x00435C8B in cb_run_use_cmd+0xEB () at c:\application\control.cpp:1621
#50  0x00435CD0 in cb_entry_lose_focus+0x10 () at c:\application\control.cpp:1635
#51  0x0137CD25 in _gtk_marshal_BOOLEAN__BOXED+0xE5 () at c:\temp\gtk+-2.4.14\gtk\gtkmarshalers.c:84
#52  0x01213860 in g_closure_invoke+0x130 () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gclosure.c:441
#53  0x01225EF5 in signal_emit_unlocked_R+0xA05 () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2509
#54  0x0122507B in g_signal_emit_valist+0x7BB () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2204
#55  0x0122537F in g_signal_emit+0x1F () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2238
#56  0x014756F2 in gtk_widget_event_internal+0x212 () at c:\temp\gtk+-2.4.14\gtk\gtkwidget.c:3564
#57  0x014753A7 in gtk_widget_event+0xC7 () at c:\temp\gtk+-2.4.14\gtk\gtkwidget.c:3370
#58  0x014834C3 in do_focus_change+0xC3 () at c:\temp\gtk+-2.4.14\gtk\gtkwindow.c:4328
#59  0x0148323B in gtk_window_real_set_focus+0x15B () at c:\temp\gtk+-2.4.14\gtk\gtkwindow.c:4514
#60  0x012270C1 in g_cclosure_marshal_VOID__OBJECT+0xB1 () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gmarshal.c:638
#61  0x01213B6C in g_type_class_meta_marshal+0x4C () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gclosure.c:518
#62  0x01213860 in g_closure_invoke+0x130 () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gclosure.c:441
#63  0x01225D7F in signal_emit_unlocked_R+0x88F () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2477
#64  0x01224FEF in g_signal_emit_valist+0x72F () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2194
#65  0x0122537F in g_signal_emit+0x1F () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2238
#66  0x0147DF48 in _gtk_window_internal_set_focus+0x88 () at c:\temp\gtk+-2.4.14\gtk\gtkwindow.c:1196
#67  0x01476243 in gtk_widget_real_grab_focus+0x193 () at c:\temp\gtk+-2.4.14\gtk\gtkwidget.c:3923
#68  0x012264BE in g_cclosure_marshal_VOID__VOID+0x9E () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gmarshal.c:78
#69  0x01213B6C in g_type_class_meta_marshal+0x4C () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gclosure.c:518
#70  0x01213860 in g_closure_invoke+0x130 () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gclosure.c:441
#71  0x01225D7F in signal_emit_unlocked_R+0x88F () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2477
#72  0x01224FEF in g_signal_emit_valist+0x72F () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2194
#73  0x0122537F in g_signal_emit+0x1F () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2238
#74  0x01476080 in gtk_widget_grab_focus+0xA0 () at c:\temp\gtk+-2.4.14\gtk\gtkwidget.c:3842
#75  0x012FD359 in gtk_container_focus+0xB9 () at c:\temp\gtk+-2.4.14\gtk\gtkcontainer.c:1550
#76  0x0137CF3B in _gtk_marshal_BOOLEAN__ENUM+0xEB () at c:\temp\gtk+-2.4.14\gtk\gtkmarshalers.c:164
#77  0x01213B6C in g_type_class_meta_marshal+0x4C () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gclosure.c:518
#78  0x01213860 in g_closure_invoke+0x130 () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gclosure.c:441
#79  0x01225D7F in signal_emit_unlocked_R+0x88F () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2477
#80  0x0122507B in g_signal_emit_valist+0x7BB () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2204
#81  0x0122537F in g_signal_emit+0x1F () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2238
#82  0x01478C05 in gtk_widget_child_focus+0xF5 () at c:\temp\gtk+-2.4.14\gtk\gtkwidget.c:5407
#83  0x012FDFC0 in gtk_container_focus_move+0xD0 () at c:\temp\gtk+-2.4.14\gtk\gtkcontainer.c:2036
#84  0x012FD409 in gtk_container_focus+0x169 () at c:\temp\gtk+-2.4.14\gtk\gtkcontainer.c:1576
#85  0x0137CF3B in _gtk_marshal_BOOLEAN__ENUM+0xEB () at c:\temp\gtk+-2.4.14\gtk\gtkmarshalers.c:164
#86  0x01213B6C in g_type_class_meta_marshal+0x4C () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gclosure.c:518
#87  0x01213860 in g_closure_invoke+0x130 () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gclosure.c:441
#88  0x01225D7F in signal_emit_unlocked_R+0x88F () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2477
#89  0x0122507B in g_signal_emit_valist+0x7BB () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2204
#90  0x0122537F in g_signal_emit+0x1F () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2238
#91  0x01478C05 in gtk_widget_child_focus+0xF5 () at c:\temp\gtk+-2.4.14\gtk\gtkwidget.c:5407
#92  0x012FDFC0 in gtk_container_focus_move+0xD0 () at c:\temp\gtk+-2.4.14\gtk\gtkcontainer.c:2036
#93  0x012FD409 in gtk_container_focus+0x169 () at c:\temp\gtk+-2.4.14\gtk\gtkcontainer.c:1576
#94  0x0137CF3B in _gtk_marshal_BOOLEAN__ENUM+0xEB () at c:\temp\gtk+-2.4.14\gtk\gtkmarshalers.c:164
#95  0x01213B6C in g_type_class_meta_marshal+0x4C () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gclosure.c:518
#96  0x01213860 in g_closure_invoke+0x130 () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gclosure.c:441
#97  0x01225D7F in signal_emit_unlocked_R+0x88F () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2477
#98  0x0122507B in g_signal_emit_valist+0x7BB () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2204
#99  0x0122537F in g_signal_emit+0x1F () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2238
#100  0x01478C05 in gtk_widget_child_focus+0xF5 () at c:\temp\gtk+-2.4.14\gtk\gtkwidget.c:5407
#101  0x012FDF44 in gtk_container_focus_move+0x54 () at c:\temp\gtk+-2.4.14\gtk\gtkcontainer.c:2029
#102  0x012FD409 in gtk_container_focus+0x169 () at c:\temp\gtk+-2.4.14\gtk\gtkcontainer.c:1576
#103  0x0137CF3B in _gtk_marshal_BOOLEAN__ENUM+0xEB () at c:\temp\gtk+-2.4.14\gtk\gtkmarshalers.c:164
#104  0x01213B6C in g_type_class_meta_marshal+0x4C () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gclosure.c:518
#105  0x01213860 in g_closure_invoke+0x130 () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gclosure.c:441
#106  0x01225D7F in signal_emit_unlocked_R+0x88F () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2477
#107  0x0122507B in g_signal_emit_valist+0x7BB () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2204
#108  0x0122537F in g_signal_emit+0x1F () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2238
#109  0x01478C05 in gtk_widget_child_focus+0xF5 () at c:\temp\gtk+-2.4.14\gtk\gtkwidget.c:5407
#110  0x012FDF44 in gtk_container_focus_move+0x54 () at c:\temp\gtk+-2.4.14\gtk\gtkcontainer.c:2029
#111  0x012FD409 in gtk_container_focus+0x169 () at c:\temp\gtk+-2.4.14\gtk\gtkcontainer.c:1576
#112  0x0137CF3B in _gtk_marshal_BOOLEAN__ENUM+0xEB () at c:\temp\gtk+-2.4.14\gtk\gtkmarshalers.c:164
#113  0x01213B6C in g_type_class_meta_marshal+0x4C () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gclosure.c:518
#114  0x01213860 in g_closure_invoke+0x130 () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gclosure.c:441
#115  0x01225D7F in signal_emit_unlocked_R+0x88F () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2477
#116  0x0122507B in g_signal_emit_valist+0x7BB () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2204
#117  0x0122537F in g_signal_emit+0x1F () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2238
#118  0x01478C05 in gtk_widget_child_focus+0xF5 () at c:\temp\gtk+-2.4.14\gtk\gtkwidget.c:5407
#119  0x013C0AD7 in gtk_scrolled_window_focus+0xA7 () at c:\temp\gtk+-2.4.14\gtk\gtkscrolledwindow.c:1266
#120  0x0137CF3B in _gtk_marshal_BOOLEAN__ENUM+0xEB () at c:\temp\gtk+-2.4.14\gtk\gtkmarshalers.c:164
#121  0x01213B6C in g_type_class_meta_marshal+0x4C () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gclosure.c:518
#122  0x01213860 in g_closure_invoke+0x130 () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gclosure.c:441
#123  0x01225D7F in signal_emit_unlocked_R+0x88F () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2477
#124  0x0122507B in g_signal_emit_valist+0x7BB () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2204
#125  0x0122537F in g_signal_emit+0x1F () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2238
#126  0x01478C05 in gtk_widget_child_focus+0xF5 () at c:\temp\gtk+-2.4.14\gtk\gtkwidget.c:5407
#127  0x012FDF44 in gtk_container_focus_move+0x54 () at c:\temp\gtk+-2.4.14\gtk\gtkcontainer.c:2029
#128  0x012FD409 in gtk_container_focus+0x169 () at c:\temp\gtk+-2.4.14\gtk\gtkcontainer.c:1576
#129  0x0137CF3B in _gtk_marshal_BOOLEAN__ENUM+0xEB () at c:\temp\gtk+-2.4.14\gtk\gtkmarshalers.c:164
#130  0x01213B6C in g_type_class_meta_marshal+0x4C () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gclosure.c:518
#131  0x01213860 in g_closure_invoke+0x130 () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gclosure.c:441
#132  0x01225D7F in signal_emit_unlocked_R+0x88F () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2477
#133  0x0122507B in g_signal_emit_valist+0x7BB () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2204
#134  0x0122537F in g_signal_emit+0x1F () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2238
#135  0x01478C05 in gtk_widget_child_focus+0xF5 () at c:\temp\gtk+-2.4.14\gtk\gtkwidget.c:5407
#136  0x012FDF44 in gtk_container_focus_move+0x54 () at c:\temp\gtk+-2.4.14\gtk\gtkcontainer.c:2029
#137  0x012FD409 in gtk_container_focus+0x169 () at c:\temp\gtk+-2.4.14\gtk\gtkcontainer.c:1576
#138  0x0137CF3B in _gtk_marshal_BOOLEAN__ENUM+0xEB () at c:\temp\gtk+-2.4.14\gtk\gtkmarshalers.c:164
#139  0x01213B6C in g_type_class_meta_marshal+0x4C () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gclosure.c:518
#140  0x01213860 in g_closure_invoke+0x130 () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gclosure.c:441
#141  0x01225D7F in signal_emit_unlocked_R+0x88F () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2477
#142  0x0122507B in g_signal_emit_valist+0x7BB () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2204
#143  0x0122537F in g_signal_emit+0x1F () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2238
#144  0x01478C05 in gtk_widget_child_focus+0xF5 () at c:\temp\gtk+-2.4.14\gtk\gtkwidget.c:5407
#145  0x01483001 in gtk_window_focus+0x61 () at c:\temp\gtk+-2.4.14\gtk\gtkwindow.c:4444
#146  0x0137CF3B in _gtk_marshal_BOOLEAN__ENUM+0xEB () at c:\temp\gtk+-2.4.14\gtk\gtkmarshalers.c:164
#147  0x01213B6C in g_type_class_meta_marshal+0x4C () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gclosure.c:518
#148  0x01213860 in g_closure_invoke+0x130 () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gclosure.c:441
#149  0x01225D7F in signal_emit_unlocked_R+0x88F () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2477
#150  0x0122507B in g_signal_emit_valist+0x7BB () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2204
#151  0x0122537F in g_signal_emit+0x1F () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2238
#152  0x01478C05 in gtk_widget_child_focus+0xF5 () at c:\temp\gtk+-2.4.14\gtk\gtkwidget.c:5407
#153  0x01482D2F in gtk_window_move_focus+0x1F () at c:\temp\gtk+-2.4.14\gtk\gtkwindow.c:4289
#154  0x01226AC1 in g_cclosure_marshal_VOID__ENUM+0xB1 () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gmarshal.c:358
#155  0x01213B6C in g_type_class_meta_marshal+0x4C () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gclosure.c:518
#156  0x01213860 in g_closure_invoke+0x130 () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gclosure.c:441
#157  0x01225D7F in signal_emit_unlocked_R+0x88F () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2477
#158  0x012247B7 in g_signal_emitv+0x4B7 () at c:\temp\gtk+-2.4.14\glib-2.4.7\gobject\gsignal.c:2106
#159  0x012BE3B3 in gtk_binding_entry_activate+0x213 () at c:\temp\gtk+-2.4.14\gtk\gtkbindings.c:525
#160  0x012BFAAC in binding_match_activate+0x5C () at c:\temp\gtk+-2.4.14\gtk\gtkbindings.c:927
#161  0x012BFA12 in gtk_bindings_activate_list+0x1A2 () at c:\temp\gtk+-2.4.14\gtk\gtkbindings.c:1063
#162  0x012BFD1C in gtk_bindings_activate_event+0xFC () at c:\temp\gtk+-2.4.14\gtk\gtkbindings.c:1139
#163  0x0147525F in gtk_widget_real_key_press_event+0x1F () at c:\temp\gtk+-2.4.14\gtk\gtkwidget.c:3308

 

 

Below is the source code section for gdk_event_translate with the SLOC marked to show where the invalid type cast occurred:

 

 g_object_ref (window);

  /* window's refcount has now been increased, so code below should
   * not just return from this function, but instead goto done (or
   * break out of the big switch). To protect against forgetting this,
   * #define return to a syntax error...
   */
#define return GOTO_DONE_INSTEAD
 
  if (!GDK_WINDOW_DESTROYED (window) && ((GdkWindowObject *) window)->filters)  <-----
    {
      /* Apply per-window filters */

      GdkFilterReturn result =
 apply_filters (display, window, msg, ((GdkWindowObject *) window)->filters);

      if (result == GDK_FILTER_REMOVE)
 {
   return_val = FALSE;
   goto done;
 }
      else if (result == GDK_FILTER_TRANSLATE)
 {
   return_val = TRUE;
   goto done;
 }
    }

 

 

We are considering the obvious option of moving to a newer version of Gtk on windows in the hope that will fix the issue, but to be prefectly honest, we have found it difficult to get a version for windows that doesnt contain a show stopping bug. Our approach there has been to repair the bugs and submit patches once everything is up to speed, but in the meantime, we still have some resources to continue looking at this issue as the preferred solution.

 

We have had issues with the use of focus-out handlers before but have always been able to find the offending code/programmer through valgrind on linux. This problem, obviously eludes our focus-out handler search.

 

Would anyone be able to provide some insight into where we could focus our efforts ?

 

Could the use of GtkFixed and its realize-on-pack operation cause some sort of race condition here ?

 

Thanks for looking



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]