Simon's patch is in, both in trunk and gtk-2-10 branch.

regards

Attilio

Mike Emmel wrote:
> Attillio this looks reasonable and I know I'm just writing but I did
> look at it week before last I think when it first came through.
> 
> Can you apply it.  I have one week to  port a HTML engine so I'm a tad 
> busy.
> 
> I'm sorry a few good patches rolled in last week and I tried to get to
> where I could apply them.
> 
> 
> On 7/9/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>> Attilio Fiandrotti wrote:
>> > I just tested Simon's patch on gtk+ 2-10 branch and DFB 1.0 and it
>> > actually fixes memory leaks which oterwise would occourr when
>> destroying
>> > windows. The patch seems also to be stable: i had along GIMP session
>> and
>> > experienced no crashes. Because DirectFB >= 1.0 is needed for the
>> patch
>> > to work, i added the #ifdef's you find in this > mail's attachment
>> > (it's Simon's original patch with #ifdef's aded where needed).
>> > I think this patch should be applied also to gtk+ trunk, of course.
>>
>> Sorry for bothering you again with this issue, but there is one thing
>> I'm
>> currently not sure about: before we call
>> gdk_directfb_event_windows_remove()
>> in _gdk_windowing_window_destroy() and detach from the event buffer, the
>> CoreWindow must already have been destroyed (otherwise we seem to lose
>> the
>> DWET_DESTROYED message that triggers the call of
>> gdk_window_destroy_notify().
>>
>> Here is the _gdk_windowing_window_destroy() function (see comments):
>>
>> void
>> _gdk_windowing_window_destroy (GdkWindow *window,
>>                                gboolean   recursing,
>>                                gboolean   foreign_destroy)
>> {
>>   GdkWindowObject       *private;
>>   GdkWindowImplDirectFB *impl;
>>
>>   g_return_if_fail (GDK_IS_WINDOW (window));
>>
>>   private = GDK_WINDOW_OBJECT (window);
>>   impl = GDK_WINDOW_IMPL_DIRECTFB (private->impl);
>>
>>   _gdk_selection_window_destroyed (window);
>>
>> /// With my last patch, we call it here ///
>> //  gdk_directfb_event_windows_remove (window);
>>
>>   if (window == _gdk_directfb_pointer_grab_window)
>>     gdk_pointer_ungrab (GDK_CURRENT_TIME);
>>   if (window == _gdk_directfb_keyboard_grab_window)
>>     gdk_keyboard_ungrab (GDK_CURRENT_TIME);
>>
>>   if (window == gdk_directfb_focused_window)
>>     gdk_directfb_change_focus (NULL);
>>
>>
>>   if (impl->drawable.surface) {
>>     GdkDrawableImplDirectFB *dimpl = GDK_DRAWABLE_IMPL_DIRECTFB
>> (private->impl);
>>     if(dimpl->cairo_surface) {
>>       cairo_surface_destroy(dimpl->cairo_surface);
>>       dimpl->cairo_surface= NULL;
>>     }
>>     impl->drawable.surface->Release (impl->drawable.surface);
>>     impl->drawable.surface = NULL;
>>   }
>>
>>   if (!recursing && !foreign_destroy && impl->window ) {
>>         impl->window->SetOpacity (impl->window,0);
>>         impl->window->Close(impl->window);
>>
>> /// Or would it be better to first destroy the window and call it here?
>> ///
>>         impl->window->Destroy(impl->window);
>>         gdk_directfb_event_windows_remove (window);
>>
>>         impl->window->Release(impl->window);
>>         impl->window = NULL;
>>   }
>> }
>>
>> What do you think?
>>
>> Best regards
>>
>> Simon
>>
>> _______________________________________________
>> directfb-dev mailing list
>> [email protected]
>> http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev
>>
> 


_______________________________________________
directfb-dev mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to