struct _Widget_Data
{
Evas_Object *webkit;
- Eina_Bool auto_fitting:1;
};
static const char *widtype = NULL;
}
EAPI void
-elm_webview_auto_fitting_set(Eina_Bool enable)
+elm_webview_auto_fitting_set(Evas_Object *obj, Eina_Bool enable)
{
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if (!wd) return;
+ _elm_smart_webview_auto_fitting_set(wd->webkit, enable);
}
EAPI Eina_Bool
-elm_webview_auto_fitting_get()
+elm_webview_auto_fitting_get(Evas_Object *obj)
{
- return EINA_FALSE;
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if (!wd) return EINA_FALSE;
+ return _elm_smart_webview_auto_fitting_get(wd->webkit);
}
EAPI Evas_Object *
elm_webview_minimap_get(Evas_Object *obj)
{
- return NULL;
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if (!wd) return EINA_FALSE;
+ return _elm_smart_webview_minimap_get(wd->webkit);
}
EAPI void
}
/**
- * Set bouncing behavior
+ * Set bouncing behavior(Not supported yet)
*
* When scrolling, the WebView may "bounce" when reaching an edge of contents
* This is a visual way to indicate the end has been reached. This is enabled
int locked_dy;
unsigned char bounce_horiz : 1;
unsigned char bounce_vert : 1;
+ unsigned char auto_fitting : 1;
/* ewk functions */
void (*ewk_view_theme_set)(Evas_Object *, const char *);
int w, h;
} layout;
- Eina_Bool auto_fitting;
Ecore_Animator* smart_zoom_animator;
Evas_Point pan_s;
sd->ewk_frame_feed_focus_in = (Eina_Bool (*)(Evas_Object *))dlsym(ewk_handle, "ewk_frame_feed_focus_in");
sd->ewk_frame_feed_focus_in(sd->ewk_view_frame_main_get(webview));
_parent_sc.mouse_down((Ewk_View_Smart_Data*)sd, &sd->mouse_down_copy);
+
+ if (sd->bounce_horiz)
+ elm_widget_drag_lock_x_set(sd->widget, EINA_TRUE);
+ if (sd->bounce_vert)
+ elm_widget_drag_lock_y_set(sd->widget, EINA_TRUE);
}
static void
}
#else
Eina_Bool locked = EINA_FALSE;
- if (!sd->bounce_horiz)
+ if (!elm_widget_drag_lock_x_get(sd->widget))
{
- if (!elm_widget_drag_lock_x_get(sd->widget))
+ if ((old_x + dx) >= 0 && (old_x + dx) <=content_w)
+ elm_widget_drag_lock_x_set(sd->widget, EINA_TRUE);
+ else if ((sd->locked_dx > 0 && (sd->locked_dx + dx) <= 0)
+ || (sd->locked_dx < 0 && (sd->locked_dx + dx) >= 0))
{
- if ((old_x + dx) >= 0 && (old_x + dx) <=content_w)
- elm_widget_drag_lock_x_set(sd->widget, EINA_TRUE);
- else if ((sd->locked_dx > 0 && (sd->locked_dx + dx) <= 0)
- || (sd->locked_dx < 0 && (sd->locked_dx + dx) >= 0))
- {
- elm_widget_drag_lock_x_set(sd->widget, EINA_TRUE);
- DBG("===============<< widget x lock >>\n");
- dx += sd->locked_dx;
- }
- else
- {
- sd->locked_dx += dx;
- locked = EINA_TRUE;
- }
+ elm_widget_drag_lock_x_set(sd->widget, EINA_TRUE);
+ DBG("===============<< widget x lock >>\n");
+ dx += sd->locked_dx;
+ }
+ else
+ {
+ sd->locked_dx += dx;
+ locked = EINA_TRUE;
}
}
- if (!sd->bounce_vert)
+ if (!elm_widget_drag_lock_y_get(sd->widget))
{
- if (!elm_widget_drag_lock_y_get(sd->widget))
+ if ((old_y + dy) >= 0 && (old_y + dy) <= content_h)
+ elm_widget_drag_lock_y_set(sd->widget, EINA_TRUE);
+ else if ((sd->locked_dy > 0 && (sd->locked_dy + dy) <= 0)
+ || (sd->locked_dy < 0 && (sd->locked_dy + dy) >= 0))
{
- if ((old_y + dy) >= 0 && (old_y + dy) <= content_h)
- elm_widget_drag_lock_y_set(sd->widget, EINA_TRUE);
- else if ((sd->locked_dy > 0 && (sd->locked_dy + dy) <= 0)
- || (sd->locked_dy < 0 && (sd->locked_dy + dy) >= 0))
- {
- elm_widget_drag_lock_y_set(sd->widget, EINA_TRUE);
- DBG("===============<< widget y lock >>\n");
- dy += sd->locked_dy;
-
- }
- else
- {
- sd->locked_dy += dy;
- locked = EINA_TRUE;
- }
+ elm_widget_drag_lock_y_set(sd->widget, EINA_TRUE);
+ DBG("===============<< widget y lock >>\n");
+ dy += sd->locked_dy;
+ }
+ else
+ {
+ sd->locked_dy += dy;
+ locked = EINA_TRUE;
}
}
#endif
if (sd->text_selection_on == EINA_TRUE)
_text_selection_move_by(sd, old_x - new_x, old_y - new_y);
- if (dx && elm_widget_drag_lock_x_get(sd->widget) && (old_x == new_x))
+ if (!sd->bounce_horiz &&
+ (dx && elm_widget_drag_lock_x_get(sd->widget) && (old_x == new_x)))
{
sd->locked_dx = dx - (old_x - new_x);
elm_widget_drag_lock_x_set(sd->widget, EINA_FALSE);
DBG("===============<< widget x unlock >>\n");
}
- if (dy && elm_widget_drag_lock_y_get(sd->widget) && (old_y == new_y))
+ if (!sd->bounce_vert &&
+ (dy && elm_widget_drag_lock_y_get(sd->widget) && (old_y == new_y)))
{
sd->locked_dy = dy - (old_y - new_y);
elm_widget_drag_lock_y_set(sd->widget, EINA_FALSE);
sd->ewk_view_resume_request = (Eina_Bool (*)(Evas_Object *))dlsym(ewk_handle, "ewk_view_resume_request");
sd->ewk_view_resume_request(webview); // resume network loading
- if (elm_widget_drag_lock_x_get(sd->widget))
+ if (!sd->bounce_horiz && elm_widget_drag_lock_x_get(sd->widget))
{
DBG("==============<< widget x unlock >>\n");
elm_widget_drag_lock_x_set(sd->widget, EINA_FALSE);
}
- if (elm_widget_drag_lock_y_get(sd->widget))
+ if (!sd->bounce_vert && elm_widget_drag_lock_y_get(sd->widget))
{
DBG("==============<< widget y unlock >>\n");
elm_widget_drag_lock_y_set(sd->widget, EINA_FALSE);