Correct handling ecore key modificators.

Summary: Macro EVENT_KEY_MODIFIER_CHECK_OR_RET provide possibility  to check, if only one modifier pressed.

Reviewers: Hermet

Projects: #enventor

Differential Revision: https://phab.enlightenment.org/D2759
This commit is contained in:
Mykyta Biliavskyi 2015-06-26 13:49:43 +09:00 committed by ChunEon Park
parent 43554348a4
commit 9cc1fb443e
2 changed files with 12 additions and 9 deletions

View File

@ -151,10 +151,8 @@ main_mouse_wheel_cb(void *data, int type EINA_UNUSED, void *ev)
app_data *ad = data;
Evas_Coord x, y, w, h;
if ((event->modifiers & (ECORE_EVENT_MODIFIER_SHIFT | ECORE_EVENT_MODIFIER_CTRL
| ECORE_EVENT_MODIFIER_ALT | ECORE_EVENT_MODIFIER_WIN))
!= ECORE_EVENT_MODIFIER_CTRL)
return ECORE_CALLBACK_PASS_ON;
if (!EVENT_KEY_MODIFIER_CHECK(CTRL, event->modifiers))
return ECORE_CALLBACK_PASS_ON;
//View Scale
Evas_Object *view = enventor_object_live_view_get(ad->enventor);
@ -557,8 +555,8 @@ default_template_insert(app_data *ad)
static Eina_Bool
alt_func(Ecore_Event_Key *event)
{
if (!(event->modifiers & ECORE_EVENT_MODIFIER_ALT))
return EINA_FALSE;
if (!EVENT_KEY_MODIFIER_CHECK(ALT, event->modifiers))
return EINA_FALSE;
//Full Edit View
if (!strcmp(event->key, "Left"))
@ -591,9 +589,8 @@ alt_func(Ecore_Event_Key *event)
static Eina_Bool
ctrl_func(app_data *ad, Ecore_Event_Key *event)
{
if (!(event->modifiers & ECORE_EVENT_MODIFIER_CTRL))
return EINA_FALSE;
if (!EVENT_KEY_MODIFIER_CHECK(CTRL, event->modifiers))
return EINA_FALSE;
//Save
if (!strcmp(event->key, "s") || !strcmp(event->key, "S"))
{

View File

@ -57,6 +57,12 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
#define ENVENTOR_CONFIG_VERSION 2
#define EVENT_KEY_MODIFIER_CHECK(NAME, MASK) \
((MASK & ECORE_EVENT_MODIFIER_##NAME) && \
!((0xFF ^ ECORE_EVENT_MODIFIER_##NAME) & (MASK & 0x0F)))
#define ENVENTOR_BETA_API_SUPPORT 1
#include <Enventor.h>
#include <assert.h>