On Thu, 30 Jul 2009 22:24:14 -0300 Thiago <bol...@gmail.com> said:

> On Thu, Jul 30, 2009 at 12:37 PM, Carsten Haitzler
> <ras...@rasterman.com>wrote:
> 
> > On Sat, 11 Jul 2009 15:35:56 -0300 Thiago <bol...@gmail.com> said:
> >
> > elm_widget_type_get() :) this checks if its a elm_widget smart type (if not
> > returns "") and if so... returns the type. this is really whats should be
> > added
> > to checks everywhere:
> >
> > if (elm_widget_type_get()[0]) {
> >  it's an elm widget!
> > }
> >
> 
> You're right! I'll fix it and send it again. I didn't notice that function
> xD
> 
> 
> >
> > nb - also you are assuming its an ecore_evas too to get the win too. so
> > basically you aleady re-implemented the magic stuff that evas does :)
> > (elm_widget_type_get() is using it).
> >
> 
> What about this last part:
> 
> EAPI Ecore_X_Window
>  elm_win_xwindow_get(const Evas_Object *obj)
>  {
> -   Elm_Win *win = (Elm_Win *)elm_widget_data_get(obj);
> -   if (!win) return 0;
> -   _elm_win_xwindow_get(win);
> -   return win->xwin;
> +   Ecore_X_Window xwin = 0;
> +   Ecore_Evas *ee = NULL;
> +
> +   ee = ecore_evas_ecore_evas_get(evas_object_evas_get(obj));
> +   if (ee) xwin = (Ecore_X_Window)ecore_evas_window_get(ee);
> +
> +   return xwin;
>  }
> 
> Is it ok?

that's also assuming an ecore_evas. in your case thats ok. normal case for elm
too. it should probably  handle non-x targets too - from memory, so i think its
ok.

> > > Hi guys,
> > >
> > > I'm currently working on an IM client plugin for Canola in GSoC. This is
> > my
> > > first proposed patch for enlightenment.
> > >
> > > The problem begun when I tried to embed a elm widget inside canola. Every
> > > time I created a widget, with a Edje smart object as parent, I got
> > > segfaults. So I started investigating why it happaned inside the binding.
> > > Nothing was wrong with it. Then I looked inside the code for elementary.
> > > There I found it. All widgets suppose their top father is an evas smart
> > > object containing a Elm_Win structure as the data field. Thats not true
> > in
> > > my case. So the patch changes the function elm_win_xwindow_get() inside
> > > elm_win.c in a way that it get the xwindow reference from the evas of the
> > > object, avoiding the corruption of data done by calling
> > > _elm_win_xwindow_get(). See code for more details. That fixed the first
> > > problem.
> > >
> > > But I kept getting segfaults when I used an entry widget, after I gave it
> > > the focus. Problem was _on_focus_hook() (elm_entry.c) calling
> > > elm_win_keyboard_mode_set(). This would also currupt a non-Elm_Win
> > structure
> > > pointed by data. So I proposed the creation of a magic field inside
> > Elm_Win
> > > to be tested before doing any operations that needs the smart object to
> > be
> > > attached to Elm_Win.
> > >
> > > The patch is working with tests and everything is working for me! I don't
> > > know if this is the best solution, but at least it is one.
> > >
> > > Waiting on comments!
> > >
> > > Thanks.
> > >
> > > --
> > > Thiago 'bolaum' Borges Abdnur
> > > ----------------------------------
> > > "Trust no one..."
> > > - Deep Throat (The X-Files)
> > >
> >
> >
> > --
> > ------------- Codito, ergo sum - "I code, therefore I am" --------------
> > The Rasterman (Carsten Haitzler)    ras...@rasterman.com
> >
> >
> 
> 
> -- 
> Thiago 'bolaum' Borges Abdnur
> ----------------------------------
> "Trust no one..."
> - Deep Throat (The X-Files)
> ------------------------------------------------------------------------------
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
> trial. Simplify your report design, integration and deployment - and focus on 
> what you do best, core application coding. Discover what's new with 
> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    ras...@rasterman.com


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to