discomfitor pushed a commit to branch master. http://git.enlightenment.org/enlightenment/modules/desksanity.git/commit/?id=ca5a6f3857f041cc8ebfbc03a8aed72e4feb85b7
commit ca5a6f3857f041cc8ebfbc03a8aed72e4feb85b7 Author: Mike Blumenkrantz <[email protected]> Date: Fri Aug 22 12:52:59 2014 -0400 add pip zooming with ctrl+wheel --- src/pip.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/pip.c b/src/pip.c index 97e7feb..ec30a26 100644 --- a/src/pip.c +++ b/src/pip.c @@ -16,6 +16,7 @@ typedef struct Pip Evas_Point down; unsigned char opacity; E_Pointer_Mode resize_mode; + double zoom; Eina_Bool move : 1; Eina_Bool resize : 1; Eina_Bool crop : 1; @@ -156,14 +157,25 @@ _pip_mouse_move(Pip *pip, int t EINA_UNUSED, Ecore_Event_Mouse_Move *ev) static void _pip_mouse_wheel(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info) { - Ecore_Event_Mouse_Wheel *ev = event_info; + Evas_Event_Mouse_Wheel *ev = event_info; Pip *pip = data; - if (ev->z < 0) - pip->opacity = E_CLAMP(pip->opacity + 15, 0, 255); - else if (ev->z > 0) - pip->opacity = E_CLAMP(pip->opacity - 15, 0, 255); - efx_fade(pip->pip, EFX_EFFECT_SPEED_LINEAR, EFX_COLOR(pip->opacity, pip->opacity, pip->opacity), pip->opacity, 0.2, NULL, NULL); + if (ev->direction % 2) return; + if (evas_key_modifier_is_set(ev->modifiers, "Control")) + { + if (ev->z < 0) + efx_zoom(pip->pip, EFX_EFFECT_SPEED_LINEAR, 0, pip->zoom -= 0.05, EFX_POINT(ev->output.x, ev->output.y), 0.2, NULL, NULL); + else if (ev->z > 0) + efx_zoom(pip->pip, EFX_EFFECT_SPEED_LINEAR, 0, pip->zoom += 0.05, EFX_POINT(ev->output.x, ev->output.y), 0.2, NULL, NULL); + } + else + { + if (ev->z < 0) + pip->opacity = E_CLAMP(pip->opacity + 15, 0, 255); + else if (ev->z > 0) + pip->opacity = E_CLAMP(pip->opacity - 15, 0, 255); + efx_fade(pip->pip, EFX_EFFECT_SPEED_LINEAR, EFX_COLOR(pip->opacity, pip->opacity, pip->opacity), pip->opacity, 0.2, NULL, NULL); + } } static void @@ -309,6 +321,7 @@ _pip_create(void *data, E_Menu *m EINA_UNUSED, E_Menu_Item *mi EINA_UNUSED) pip->pip = o; pip->resize_mode = E_POINTER_RESIZE_NONE; pip->opacity = 255; + pip->zoom = 1.0; evas_object_geometry_set(o, ec->zone->x + 1, ec->zone->y + 1, (ec->w * (ec->zone->h / 4)) / ec->h, ec->zone->h / 4); e_comp_object_util_center(o); --
