add rect event swallow for panes so handle thumb can be affected by

finger size.
This commit is contained in:
Carsten Haitzler 2013-04-15 23:55:15 +09:00
parent 633be421a5
commit 3b46946a48
2 changed files with 28 additions and 2 deletions

View File

@ -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);
}

View File

@ -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;