Zoom in/out with Ctrl-mouse wheel

This commit is contained in:
Vincent Torri 2021-04-08 20:34:38 +02:00
parent 36023b5c7a
commit 8b88a26b4b
2 changed files with 43 additions and 0 deletions

View File

@ -70,3 +70,4 @@ Action | Shortcut
fullscreen | double click
Open Settings | right click
Exit Settings | right click
Zoom in/out | Ctrl-mouse wheel

View File

@ -219,6 +219,46 @@ _cb_mouse_down(void *win, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
}
}
static void
_cb_mouse_wheel(void *win,
Evas *e EINA_UNUSED,
Evas_Object *obj EINA_UNUSED,
void *event)
{
Entice *entice;
Evas_Event_Mouse_Wheel *ev;
Eina_Bool ctrl, alt, shift, winm, meta, hyper; /* modifiers */
ev = (Evas_Event_Mouse_Wheel *)event;
ctrl = evas_key_modifier_is_set(ev->modifiers, "Control");
alt = evas_key_modifier_is_set(ev->modifiers, "Alt");
shift = evas_key_modifier_is_set(ev->modifiers, "Shift");
winm = evas_key_modifier_is_set(ev->modifiers, "Super");
meta =
evas_key_modifier_is_set(ev->modifiers, "Meta") ||
evas_key_modifier_is_set(ev->modifiers, "AltGr") ||
evas_key_modifier_is_set(ev->modifiers, "ISO_Level3_Shift");
hyper = evas_key_modifier_is_set(ev->modifiers, "Hyper");
entice = evas_object_data_get(win, "entice");
/* Ctrl modifier */
if (ctrl && !alt && !shift && !winm && !meta && !hyper)
{
if (ev->z == 1)
{
entice_image_zoom_increase(entice->image);
entice_image_update(entice->image);
}
else
{
entice_image_zoom_decrease(entice->image);
entice_image_update(entice->image);
}
}
}
/*============================================================================*
* Global *
*============================================================================*/
@ -336,6 +376,8 @@ entice_win_add(void)
_cb_mouse_move, win);
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN,
_cb_mouse_down, win);
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_WHEEL,
_cb_mouse_wheel, win);
entice->event_mouse = o;
/* dummy button to catch keyboard events */