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