edge: fix to use values one unit smaller than width/height when evaluating the event... 05/318105/1
authorduna.oh <duna.oh@samsung.com>
Mon, 13 Jan 2025 07:27:57 +0000 (16:27 +0900)
committerduna.oh <duna.oh@samsung.com>
Mon, 13 Jan 2025 07:27:57 +0000 (16:27 +0900)
Change-Id: Ib9356e674b214c4c446a192147782c8926fe5b72

src/e_mod_gesture_events.c

index cf751de7dfb2d32d8d935f18957472b3c7df3acf..118d12060ae61378998a191d307d85f79a7afc11 100644 (file)
@@ -548,6 +548,7 @@ _e_gesture_process_edge_swipe_down(Ecore_Event_Mouse_Button *ev)
 
    if (gesture->gesture_events.num_pressed == 1)
      {
+        int max_x_pos, max_y_pos;
         for (i = 1; i < E_GESTURE_FINGER_MAX+1; i++)
           {
              if (edge_swipes->base.fingers[i].enabled)
@@ -556,13 +557,15 @@ _e_gesture_process_edge_swipe_down(Ecore_Event_Mouse_Button *ev)
                }
           }
 
+        max_x_pos = e_comp->w - 1;
+        max_y_pos = e_comp->h - 1;
         if (ev->y < conf->edge_swipe.area_offset)
           edge_swipes->base.edge = E_GESTURE_EDGE_TOP;
-        else if (ev->y > e_comp->h - conf->edge_swipe.area_offset)
+        else if (ev->y > max_y_pos - conf->edge_swipe.area_offset)
           edge_swipes->base.edge = E_GESTURE_EDGE_BOTTOM;
         else if (ev->x < conf->edge_swipe.area_offset)
           edge_swipes->base.edge = E_GESTURE_EDGE_LEFT;
-        else if (ev->x > e_comp->w - conf->edge_swipe.area_offset)
+        else if (ev->x > max_x_pos - conf->edge_swipe.area_offset)
           edge_swipes->base.edge = E_GESTURE_EDGE_RIGHT;
 
         if (!((1 << (edge_swipes->base.edge)) & edge_swipes->base.enabled_edge))
@@ -801,6 +804,7 @@ _e_gesture_process_edge_drag_down(Ecore_Event_Mouse_Button *ev)
 
    if (gesture->gesture_events.num_pressed == 1)
      {
+        int max_x_pos, max_y_pos;
         for (i = 1; i < E_GESTURE_FINGER_MAX+1; i++)
           {
              if (edge_drags->base.fingers[i].enabled)
@@ -809,13 +813,15 @@ _e_gesture_process_edge_drag_down(Ecore_Event_Mouse_Button *ev)
                }
           }
 
+        max_x_pos = comp->w - 1;
+        max_y_pos = comp->h - 1;
         if (ev->y < conf->edge_drag.area_offset)
           edge_drags->base.edge = E_GESTURE_EDGE_TOP;
-        else if (ev->y > e_comp->h - conf->edge_drag.area_offset)
+        else if (ev->y > max_y_pos - conf->edge_drag.area_offset)
           edge_drags->base.edge = E_GESTURE_EDGE_BOTTOM;
         else if (ev->x < conf->edge_drag.area_offset)
           edge_drags->base.edge = E_GESTURE_EDGE_LEFT;
-        else if (ev->x > e_comp->w - conf->edge_drag.area_offset)
+        else if (ev->x > max_x_pos - conf->edge_drag.area_offset)
           edge_drags->base.edge = E_GESTURE_EDGE_RIGHT;
 
         if (!((1 << (edge_drags->base.edge)) & edge_drags->base.enabled_edge))