raster pushed a commit to branch master.

commit e054c63d0e1a7b0e5ba0724cac3fff09ff5b20d2
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Mon Apr 15 23:55:15 2013 +0900

    add rect event swallow for panes so handle thumb can be affected by
    finger size.
---
 src/lib/elm_panes.c        | 29 +++++++++++++++++++++++++++--
 src/lib/elm_widget_panes.h |  1 +
 2 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/src/lib/elm_panes.c b/src/lib/elm_panes.c
index ee9aabc..7dab263 100644
--- a/src/lib/elm_panes.c
+++ b/src/lib/elm_panes.c
@@ -40,21 +40,31 @@ static void
 _elm_panes_smart_theme(Eo *obj, void *_pd, va_list *list)
 {
    double size;
-
+   Evas_Coord minw = 0, minh = 0;
+   
    Elm_Panes_Smart_Data *sd = _pd;
    Eina_Bool *ret = va_arg(*list, Eina_Bool *);
    if (ret) *ret = EINA_FALSE;
    Eina_Bool int_ret = EINA_FALSE;
    Elm_Layout_Smart_Data *ld = eo_data_get(obj, ELM_OBJ_LAYOUT_CLASS);
+   Elm_Widget_Smart_Data *wd = eo_data_get(obj, ELM_OBJ_WIDGET_CLASS);
 
    if (sd->horizontal)
      eina_stringshare_replace(&ld->group, "horizontal");
    else
      eina_stringshare_replace(&ld->group, "vertical");
 
+   evas_object_hide(sd->event);
+   elm_coords_finger_size_adjust(1, &minw, 1, &minh);
+   evas_object_size_hint_min_set(sd->event, minw, minh);
+   
    eo_do_super(obj, MY_CLASS, elm_wdg_theme(&int_ret));
    if (!int_ret) return;
 
+   if (edje_object_part_exists
+       (wd->resize_obj, "elm.swallow.event"))
+     elm_layout_content_set(obj, "elm.swallow.event", sd->event);
+   
    size = elm_panes_content_left_size_get(obj);
 
    if (sd->fixed)
@@ -184,7 +194,8 @@ static void
 _elm_panes_smart_add(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
 {
    Elm_Widget_Smart_Data *wd = eo_data_get(obj, ELM_OBJ_WIDGET_CLASS);
-
+   ELM_PANES_DATA_GET(obj, sd);
+   
    eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
 
    if (!elm_layout_theme_set
@@ -208,6 +219,20 @@ _elm_panes_smart_add(Eo *obj, void *_pd EINA_UNUSED, 
va_list *list EINA_UNUSED)
 
    elm_widget_can_focus_set(obj, EINA_FALSE);
 
+   sd->event = evas_object_rectangle_add(evas_object_evas_get(obj));
+   evas_object_color_set(sd->event, 0, 0, 0, 0);
+   evas_object_pass_events_set(sd->event, EINA_TRUE);
+   if (edje_object_part_exists
+       (wd->resize_obj, "elm.swallow.event"))
+     {
+        Evas_Coord minw = 0, minh = 0;
+
+        elm_coords_finger_size_adjust(1, &minw, 1, &minh);
+        evas_object_size_hint_min_set(sd->event, minw, minh);
+        elm_layout_content_set(obj, "elm.swallow.event", sd->event);
+     }
+   elm_widget_sub_object_add(obj, sd->event);
+
    elm_layout_sizing_eval(obj);
 }
 
diff --git a/src/lib/elm_widget_panes.h b/src/lib/elm_widget_panes.h
index 6b329e7..c8ce07d 100644
--- a/src/lib/elm_widget_panes.h
+++ b/src/lib/elm_widget_panes.h
@@ -20,6 +20,7 @@
 typedef struct _Elm_Panes_Smart_Data Elm_Panes_Smart_Data;
 struct _Elm_Panes_Smart_Data
 {
+   Evas_Object *event;
    struct
    {
       int       x_diff;

-- 

------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter

Reply via email to