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