[E-devel] [Patch] signal "scroll,anim,stop" in els_scroller

2011-08-23 Thread Jaehwan Kim

Commit msg : fix the bug which the signal "scroll,anim,stop" is not called 
sometimes.

Hello,
Sometimes The signal "scroll,anim,stop" is not called in scroller.
If the bounce_x_animation or the bounce_y_animator ends during momentum 
animation,
the function _smart_anim_stop cannot be called. but all animation end including 
momentum animation.
Please check the attached patch file.

Thanks.
Jaehwan Kim.

scroller.patch
Description: Binary data
--
EMC VNX: the world's simplest storage, starting under $10K
The only unified storage solution that offers unified management 
Up to 160% more powerful than alternatives and 25% more efficient. 
Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] [PATCH] add elm_entry_input_panel_layout_set API

2011-08-23 Thread Jihoon Kim
Hi, EFL developers.

elm_entry_input_panel_layout_set API is high level API to call
ecore_imf_context_input_panel_layout_set (through edje).
This API will be used to set layout of input panel (such as URL, Email,
Number layout...) by application programmer.

Would you please review this patch?
Please let me know if I have to do more.

Thank you.

Index: src/lib/edje_private.h
===
--- src/lib/edje_private.h  (revision 62732)
+++ src/lib/edje_private.h  (working copy)
@@ -1834,7 +1834,9 @@ Eina_Bool _edje_entry_cursor_is_visible_format_get
 const char *_edje_entry_cursor_content_get(Edje_Real_Part *rp, Edje_Cursor 
cur);
 void _edje_entry_cursor_pos_set(Edje_Real_Part *rp, Edje_Cursor cur, int pos);
 int _edje_entry_cursor_pos_get(Edje_Real_Part *rp, Edje_Cursor cur);
-
+void _edje_entry_input_panel_layout_set(Edje_Real_Part *rp, 
Edje_Input_Panel_Layout layout);
+Edje_Input_Panel_Layout _edje_entry_input_panel_layout_get(Edje_Real_Part *rp);
+
 void _edje_external_init();
 void _edje_external_shutdown();
 Evas_Object *_edje_external_type_add(const char *type_name, Evas *evas, 
Evas_Object *parent, const Eina_List *params, const char *part_name);
Index: src/lib/edje_util.c
===
--- src/lib/edje_util.c (revision 62732)
+++ src/lib/edje_util.c (working copy)
@@ -1724,6 +1724,39 @@ edje_object_part_text_cursor_pos_get(const Evas_Ob
 }
 
 EAPI void
+edje_object_part_text_input_panel_layout_set(const Evas_Object *obj, const 
char *part, Edje_Input_Panel_Layout layout)
+{
+   Edje *ed;
+   Edje_Real_Part *rp;
+
+   ed = _edje_fetch(obj);
+   if ((!ed) || (!part)) return;
+   rp = _edje_real_part_recursive_get(ed, part);
+   if (!rp) return;
+   if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
+ {
+return _edje_entry_input_panel_layout_set(rp, layout);
+ }
+}
+
+EAPI Edje_Input_Panel_Layout
+edje_object_part_text_input_panel_layout_get(const Evas_Object *obj, const 
char *part)
+{
+   Edje *ed;
+   Edje_Real_Part *rp;
+
+   ed = _edje_fetch(obj);
+   if ((!ed) || (!part)) return EDJE_INPUT_PANEL_LAYOUT_INVALID;
+   rp = _edje_real_part_recursive_get(ed, part);
+   if (!rp) return EINA_FALSE;
+   if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
+ {
+return _edje_entry_input_panel_layout_get(rp);
+ }
+   return EDJE_INPUT_PANEL_LAYOUT_INVALID;
+}
+
+EAPI void
 edje_object_text_insert_filter_callback_add(Evas_Object *obj, const char 
*part, Edje_Text_Filter_Cb func, void *data)
 {
Edje *ed;
Index: src/lib/Edje.h
===
--- src/lib/Edje.h  (revision 62732)
+++ src/lib/Edje.h  (working copy)
@@ -775,6 +775,18 @@ typedef enum _Edje_External_Param_Flags
 EDJE_EXTERNAL_PARAM_FLAGS_STATE) 
/**< Convenience flag that sets property as GET, SET and STATE. */
 } Edje_External_Param_Flags;
 
+typedef enum
+{
+   EDJE_INPUT_PANEL_LAYOUT_NORMAL,  /**< Default layout */
+   EDJE_INPUT_PANEL_LAYOUT_NUMBER,  /**< Number layout */
+   EDJE_INPUT_PANEL_LAYOUT_EMAIL,   /**< Email layout */
+   EDJE_INPUT_PANEL_LAYOUT_URL, /**< URL layout */
+   EDJE_INPUT_PANEL_LAYOUT_PHONENUMBER, /**< Phone Number layout */
+   EDJE_INPUT_PANEL_LAYOUT_IP,  /**< IP layout */
+   EDJE_INPUT_PANEL_LAYOUT_MONTH,   /**< Month layout */
+   EDJE_INPUT_PANEL_LAYOUT_NUMBERONLY,  /**< Number Only layout */
+   EDJE_INPUT_PANEL_LAYOUT_INVALID
+} Edje_Input_Panel_Layout;
 
 /**
  * @brief Converts type identifier to string nicer representation.
@@ -2742,6 +2754,27 @@ EAPI void edje_object_part_text_cursor
 EAPI int  edje_object_part_text_cursor_pos_get  (const 
Evas_Object *obj, const char *part, Edje_Cursor cur);
 
 /**
+ * @brief Set the layout of the input panel.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param layout layout type
+ */
+EAPI void edje_object_part_text_input_panel_layout_set (const 
Evas_Object *obj, const char *part, Edje_Input_Panel_Layout layout);
+
+/**
+ * @brief Get the layout of the input panel.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ *
+ * @return Layout type of the input panel
+ *
+ * @see edje_object_part_text_input_panel_layout_set
+ */
+EAPI Edje_Input_Panel_Layout edje_object_part_text_input_panel_layout_get 
(const Evas_Object *obj, const char *part);
+
+/**
  * Add a filter function for newly inserted text.
  *
  * Whenever text is inserted (not the same as set) into the given @p part,
Index: src/lib/edje_entry.c
===
--- src/lib/edje_entry.c(revision 62732)
+++ src/lib/edje_entry.c(working copy)
@@ -2646,6 +2646,30 @@ _edje_entry_cursor_pos_get(Edje_Real_Part *rp, Edj
ret

Re: [E-devel] E SVN: billiob trunk/e/src/bin

2011-08-23 Thread The Rasterman
On Thu, 18 Aug 2011 12:11:08 -0700 "Enlightenment SVN"
 said:

you know... this is most annoying to keep seeing a folder called "1" appear on
the desktop. the reason we did Desktop-1 and soon before was.. so you would
actually have separate folders per screen and u didnt see these folders. if you
are going to do this then you have to add logtic for special case hiding of
these dirs on the desktop, either that or go back to how it how it was
before or make them dot-files so they get hidden by default everywhere.

> Log:
> e: fix efm path map on desktop
> 
> Author:   billiob
> Date: 2011-08-18 12:11:07 -0700 (Thu, 18 Aug 2011)
> New Revision: 62571
> Trac: http://trac.enlightenment.org/e/changeset/62571
> 
> Modified:
>   trunk/e/src/bin/e_fm.c 
> 
> Modified: trunk/e/src/bin/e_fm.c
> ===
> --- trunk/e/src/bin/e_fm.c2011-08-18 16:59:51 UTC (rev 62570)
> +++ trunk/e/src/bin/e_fm.c2011-08-18 19:11:07 UTC (rev 62571)
> @@ -3241,7 +3241,7 @@
>   }
> else
>   {
> -if (e_user_homedir_snprintf(buf, sizeof(buf), "%s-%s", _
> ("Desktop"), path) >= sizeof(buf))
> +if (e_user_homedir_snprintf(buf, sizeof(buf), "%s/%s", _
> ("Desktop"), path) >= sizeof(buf)) return NULL;
>   }
> ecore_file_mkpath(buf);
> 
> 
> --
> Get a FREE DOWNLOAD! and learn more about uberSVN rich system, 
> user administration capabilities and model configuration. Take 
> the hassle out of deploying and managing Subversion and the 
> tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2
> ___
> enlightenment-svn mailing list
> enlightenment-...@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-svn
> 


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


--
EMC VNX: the world's simplest storage, starting under $10K
The only unified storage solution that offers unified management 
Up to 160% more powerful than alternatives and 25% more efficient. 
Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] E SVN: jeffdameth trunk/e/src/bin

2011-08-23 Thread Thomas Gstädtner
On Tue, Aug 23, 2011 at 17:11, P Purkayastha  wrote:
>
>
> On Monday, August 22, 2011 7:12:47 PM UTC+8, David Seikel wrote:
>>
>> On Mon, 22 Aug 2011 13:05:57 +0200 Brian 'morlenxus' Miculcy
>>  wrote:
>>
>> > On 08/22/2011 12:39 PM, hannes@gmail.com wrote:
>> > > On Mon, Aug 22, 2011 at 12:11 PM, Brian 'morlenxus' Miculcy
>> > >   wrote:
>> > >> I don't like it, and i don't think it's an improvement:
>> > >>
>> > > Problem with the menu before was that there were 3 submenu levels to
>> > > get to common window options like maximize. Now all window options
>> > > are
>> > So, you think common people go to the window menu to change the
>> > maximize state? I would guess that they use the window button for
>> > that...
>>
>> Actually that was my pet peeve about the last menu reorg.  I maximise
>> borderless windows all the time.  So yes, I had to dig deep in the
>> menus to get to that.
>>
>> Why am I maximising borderless windows?  Coz I lost the fight to have
>> fullscreen windows work my way.  Now I just go through a process of
>> turning on or off all the things I need to get MY style fullscreen
>> windows.  Pffft
>>
>> I did not think the previous window menu reorg was an improvement.
>>
>
> If I may add as a user, I too find the maximize option in the shorter menu
> very hard to get to. I primarily use maximize horizontal or maximize
> vertical, since I still want to see the content of some window underneath or
> beside the maximized window. Because this was always quite difficult to
> reach, I hacked into e.cfg and changed the signal bindings for the maximize
> button on the window. Left click -> max, Right click -> Max horizontal,
> Middle click -> max vertical.
>
> Overall, I think it is quite difficult to satisfy everyone. I do like the
> fact that Always on Top and Move  readily accessible in the shorter menu,
> and I do use those. But then the shorter menu also has some disadvantages,
> as i mentioned above. Also, someone else might not have any use for Sticky
> or Always on Top (I don't usually use Sticky).
>

Imho, the best solution would be to replace the "standard" buttons
(minimize, maximize, close) by a kind of expanding shelf inside the
border, where every window setting can be placed as a icon.
This way everyone could reach his most used features by a single
click, while the menu could be logical while keeping its complexity (I
think morlenxus has done a good job with the new menu).

Though this certainly would be a lot of work and _I_ sure am not up to
it, so I just throw it in the room :)
At least this would satisfy each and everyone.

--
Get a FREE DOWNLOAD! and learn more about uberSVN rich system, 
user administration capabilities and model configuration. Take 
the hassle out of deploying and managing Subversion and the 
tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] E SVN: jeffdameth trunk/e/src/bin

2011-08-23 Thread P Purkayastha


On Monday, August 22, 2011 7:12:47 PM UTC+8, David Seikel wrote:
>
> On Mon, 22 Aug 2011 13:05:57 +0200 Brian 'morlenxus' Miculcy
>  wrote:
>
> > On 08/22/2011 12:39 PM, hannes@gmail.com wrote:
> > > On Mon, Aug 22, 2011 at 12:11 PM, Brian 'morlenxus' Miculcy
> > >   wrote:  
> > >> I don't like it, and i don't think it's an improvement:
> > >>  
> > > Problem with the menu before was that there were 3 submenu levels to
> > > get to common window options like maximize. Now all window options
> > > are  
> > So, you think common people go to the window menu to change the
> > maximize state? I would guess that they use the window button for
> > that...
>
> Actually that was my pet peeve about the last menu reorg.  I maximise
> borderless windows all the time.  So yes, I had to dig deep in the
> menus to get to that.
>
> Why am I maximising borderless windows?  Coz I lost the fight to have
> fullscreen windows work my way.  Now I just go through a process of
> turning on or off all the things I need to get MY style fullscreen
> windows.  Pffft
>
> I did not think the previous window menu reorg was an improvement.
>

If I may add as a user, I too find the maximize option in the shorter menu 
very hard to get to. I primarily use maximize horizontal or maximize 
vertical, since I still want to see the content of some window underneath or 
beside the maximized window. Because this was always quite difficult to 
reach, I hacked into e.cfg and changed the signal bindings for the maximize 
button on the window. Left click -> max, Right click -> Max horizontal, 
Middle click -> max vertical.

Overall, I think it is quite difficult to satisfy everyone. I do like the 
fact that Always on Top and Move  readily accessible in the shorter menu, 
and I do use those. But then the shorter menu also has some disadvantages, 
as i mentioned above. Also, someone else might not have any use for Sticky 
or Always on Top (I don't usually use Sticky).
--
Get a FREE DOWNLOAD! and learn more about uberSVN rich system, 
user administration capabilities and model configuration. Take 
the hassle out of deploying and managing Subversion and the 
tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] E SVN: raster trunk/elementary/src/lib

2011-08-23 Thread Daniel Juyung Seo
hilight -> highlight
http://en.wiktionary.org/wiki/hilight

I won't touch elm_access while raster is heavily working on it.
So fix it!

Daniel Juyung Seo (SeoZ)


On Tue, Aug 23, 2011 at 5:46 PM, Enlightenment SVN
 wrote:
> Log:
> make access hilight follow object around and vanish it target is
>  hidden or deleted.
>
>
>
> Author:       raster
> Date:         2011-08-23 01:46:01 -0700 (Tue, 23 Aug 2011)
> New Revision: 62714
> Trac:         http://trac.enlightenment.org/e/changeset/62714
>
> Modified:
>  trunk/elementary/src/lib/elm_access.c trunk/elementary/src/lib/elm_widget.h
>
> Modified: trunk/elementary/src/lib/elm_access.c
> ===
> --- trunk/elementary/src/lib/elm_access.c       2011-08-23 07:44:49 UTC (rev 
> 62713)
> +++ trunk/elementary/src/lib/elm_access.c       2011-08-23 08:46:01 UTC (rev 
> 62714)
> @@ -101,7 +101,7 @@
>  {
>    Elm_Access_Info *ac = evas_object_data_get(data, "_elm_access");
>    if (!ac) return;
> -   _elm_access_object_unhilight(data);
> +//   _elm_access_object_unhilight(data);
>    if (ac->delay_timer)
>      {
>         ecore_timer_del(ac->delay_timer);
> @@ -135,6 +135,44 @@
>    printf("read done\n");
>  }
>
> +static void
> +_access_obj_hilight_del_cb(void *data __UNUSED__, Evas *e, Evas_Object *obj 
> __UNUSED__, void *event_info __UNUSED__)
> +{
> +   _elm_access_object_hilight_disable(e);
> +}
> +
> +static void
> +_access_obj_hilight_hide_cb(void *data __UNUSED__, Evas *e, Evas_Object *obj 
> __UNUSED__, void *event_info __UNUSED__)
> +{
> +   _elm_access_object_hilight_disable(e);
> +}
> +
> +static void
> +_access_obj_hilight_move_cb(void *data __UNUSED__, Evas *e __UNUSED__, 
> Evas_Object *obj, void *event_info __UNUSED__)
> +{
> +   Evas_Coord x, y;
> +   Evas_Object *o;
> +
> +   o = evas_object_name_find(evas_object_evas_get(obj), "_elm_access_disp");
> +   if (!o) return;
> +   evas_object_geometry_get(obj, &x, &y, NULL, NULL);
> +   evas_object_move(o, x, y);
> +}
> +
> +static void
> +_access_obj_hilight_resize_cb(void *data __UNUSED__, Evas *e __UNUSED__, 
> Evas_Object *obj, void *event_info __UNUSED__)
> +{
> +   Evas_Coord w, h;
> +   Evas_Object *o;
> +
> +   o = evas_object_name_find(evas_object_evas_get(obj), "_elm_access_disp");
> +   if (!o) return;
> +   evas_object_geometry_get(obj, NULL, NULL, &w, &h);
> +   evas_object_resize(o, w, h);
> +}
> +
> +
> +
>  //-//
>
>  EAPI void
> @@ -252,6 +290,7 @@
>  _elm_access_object_hilight(Evas_Object *obj)
>  {
>    Evas_Object *o;
> +   Evas_Coord x, y, w, h;
>
>    o = evas_object_name_find(evas_object_evas_get(obj), "_elm_access_disp");
>    if (!o)
> @@ -266,27 +305,31 @@
>         if (ptarget)
>           {
>              evas_object_data_del(o, "_elm_access_target");
> -             // FIXME: delete move/resize/del callbacks from ptarget
> +             evas_object_event_callback_del_full(ptarget, EVAS_CALLBACK_DEL,
> +                                                 _access_obj_hilight_del_cb, 
> NULL);
> +             evas_object_event_callback_del_full(ptarget, EVAS_CALLBACK_HIDE,
> +                                                 
> _access_obj_hilight_hide_cb, NULL);
> +             evas_object_event_callback_del_full(ptarget, EVAS_CALLBACK_MOVE,
> +                                                 
> _access_obj_hilight_move_cb, NULL);
> +             evas_object_event_callback_del_full(ptarget, 
> EVAS_CALLBACK_RESIZE,
> +                                                 
> _access_obj_hilight_resize_cb, NULL);
>           }
>      }
>    evas_object_data_set(o, "_elm_access_target", obj);
> -   // FIXME: track obj pos/size until hilight removed
>    _elm_theme_object_set(obj, o, "access", "base", "default");
> +   evas_object_event_callback_add(obj, EVAS_CALLBACK_DEL,
> +                                  _access_obj_hilight_del_cb, NULL);
> +   evas_object_event_callback_add(obj, EVAS_CALLBACK_HIDE,
> +                                  _access_obj_hilight_hide_cb, NULL);
> +   evas_object_event_callback_add(obj, EVAS_CALLBACK_MOVE,
> +                                  _access_obj_hilight_move_cb, NULL);
> +   evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE,
> +                                  _access_obj_hilight_resize_cb, NULL);
>    evas_object_raise(o);
> -
> -     {
> -        Evas_Coord x, y, w, h;
> -        evas_object_geometry_get(obj, &x, &y, &w, &h);
> -        evas_object_move(o, x, y);
> -        evas_object_resize(o, w, h);
> -     }
> -
> +   evas_object_geometry_get(obj, &x, &y, &w, &h);
> +   evas_object_move(o, x, y);
> +   evas_object_resize(o, w, h);
>    evas_object_show(o);
> -   // if hilight obj doesnt exist - create and attach to window
> -   // make sure its on a high layer
> -   // show it and emit signal
> -   // if exists, move and resize to obj object location
> -   // ** try use dragables to specify pos+size??
>  }
>

Re: [E-devel] [Patch] elc_ctxpopup, add transition

2011-08-23 Thread cnook
Dear Hermet, Hi!

I have refined previous patch based on your opinion. Please refer to bellow
comments and attached patch
*
1. how about changing the signal names to ones more explicitly ?
"elm,state,show,up"
"elm,state,show,down"
"elm,state,show,right"
"elm,state,show,left"
I guess hide could be added also later.*
-> Names are changed as you mentioned.

*2. _transition_adjust
I don't like that name. Since those signals are not only for transitions but
also any other actions.
How about just _show_signal_emit ?*
-> Also changed

*3. edje_object_signal_emit(wd->base, "elm,state,show", "elm"); in the
_ctxpopup_show function
looks useless call. doesnt' it?*
-> edje_object_signal_emit(); should be there. The clip part does not come
properly without this.


Sincerely,
Shinwoo Kim.

2011/8/22 cnook 

> Dear All, Hello!
>
> The transition effect is added to the ctxpopup when it comes.
> Please review the attached patch. Thanks always!
>
> Sincerely,
> Shinwoo Kim.
>
Index: src/lib/elc_ctxpopup.c
===
--- src/lib/elc_ctxpopup.c	(revision 62716)
+++ src/lib/elc_ctxpopup.c	(working copy)
@@ -539,6 +539,33 @@
 }
 
 static void
+_show_signal_emit(Evas_Object *obj, Elm_Ctxpopup_Direction dir)
+{
+   Widget_Data *wd;
+
+   wd = elm_widget_data_get(obj);
+   if (!wd || wd->visible) return;
+
+   switch (dir)
+ {
+case ELM_CTXPOPUP_DIRECTION_UP:
+   edje_object_signal_emit(wd->base, "elm,state,show,up", "elm");
+   break;
+case ELM_CTXPOPUP_DIRECTION_LEFT:
+   edje_object_signal_emit(wd->base, "elm,state,show,left", "elm");
+   break;
+case ELM_CTXPOPUP_DIRECTION_RIGHT:
+   edje_object_signal_emit(wd->base, "elm,state,show,right", "elm");
+   break;
+case ELM_CTXPOPUP_DIRECTION_DOWN:
+   edje_object_signal_emit(wd->base, "elm,state,show,down", "elm");
+   break;
+default:
+   break;
+ }
+}
+
+static void
 _sizing_eval(Evas_Object *obj)
 {
Widget_Data *wd;
@@ -580,6 +607,7 @@
 
//Base
wd->dir = _calc_base_geometry(obj, &rect);
+   _show_signal_emit(obj, wd->dir);
_update_arrow(obj, wd->dir);
_shift_base_by_arrow(wd->arrow, wd->dir, &rect);
 
@@ -805,6 +833,7 @@
evas_object_show(wd->arrow);
 
edje_object_signal_emit(wd->bg, "elm,state,show", "elm");
+   edje_object_signal_emit(wd->base, "elm,state,show", "elm");
 
_sizing_eval(obj);
 }
Index: data/themes/widgets/ctxpopup.edc
===
--- data/themes/widgets/ctxpopup.edc	(revision 62716)
+++ data/themes/widgets/ctxpopup.edc	(working copy)
@@ -437,6 +437,7 @@
   part { name: "arrow_area_left";
  type: RECT;
  mouse_events: 0;
+ clip_to: "ctxpopup_clip";
  description { state: "default" 0.0;
 visible: 0;
 min: 20 0;
@@ -454,6 +455,7 @@
   part { name: "arrow_area_right";
  type: RECT;
  mouse_events: 0;
+ clip_to: "ctxpopup_clip";
  description { state: "default" 0.0;
 visible: 0;
 min: 20 0;
@@ -471,6 +473,7 @@
   part { name: "arrow_area_up";
  type: RECT;
  mouse_events: 0;
+ clip_to: "ctxpopup_clip";
  description { state: "default" 0.0;
 visible: 0;
 min: 0 20;
@@ -488,6 +491,7 @@
   part { name: "arrow_area_down";
  type: RECT;
  mouse_events: 0;
+ clip_to: "ctxpopup_clip";
  description { state: "default" 0.0;
 visible: 0;
 min: 0 20;
@@ -506,6 +510,7 @@
  type: SWALLOW;
  mouse_events: 0;
  scale: 1;
+ clip_to: "ctxpopup_clip";
  dragable {
 x: 1 1 0;
 y: 1 1 0;
@@ -521,6 +526,7 @@
  type: SWALLOW;
  mouse_events: 0;
  scale: 1;
+ clip_to: "ctxpopup_clip";
  dragable {
 x: 1 1 0;
 y: 1 1 0;
@@ -536,6 +542,7 @@
  type: SWALLOW;
  mouse_events: 0;
  scale: 1;
+ clip_to: "ctxpopup_clip";
  dragable {
 x: 1 1 0;
 y: 1 1 0;
@@ -551,6 +558,7 @@
  type: SWALLOW;
  mouse_events: 0;
  scale: 1;
+ clip_to: "ctxpopup_clip";
  dragable {
 x: 1 1 0;
 y: 1 1 0;
@@ -564,6 +572,7 @@
   }
   part { name: "base";
  scale: 1;
+ clip_to: "ctxpopup_clip";
  description { state: "default" 0.0;
 rel1.offset: -3 -3;
 rel2.offset: 3 3;
@@ -574,6 +583,7 @@
   }
   part { name: "over1";
  scale: 1;
+ clip_to: "ctxpopup_clip";
  description { state: "default" 0.0;
 rel1.to: "base";
 rel2.to: "base";
@@ -585,6 +595,7 @@
   }
   part { name: "over2";
  scale: 1;
+ clip_to: "ctxpopup_clip";
  description