Prevent Detected Bug Fix: DEADCODE
authorShinwoo Kim <cinoo.kim@samsung.com>
Tue, 20 Sep 2011 05:53:44 +0000 (14:53 +0900)
committerShinwoo Kim <cinoo.kim@samsung.com>
Tue, 20 Sep 2011 05:53:44 +0000 (14:53 +0900)
Change-Id: I22477f1cb045430eea3ccbda19f0e090c6b7724e

src/lib/elc_ctxpopup.c

index a890dec..c667b55 100644 (file)
@@ -407,60 +407,65 @@ _calc_base_geometry(Evas_Object *obj, Evas_Coord_Rectangle *rect)
    //In this case, all directions are invalid because of lack of space.
    if (idx == 4)
      {
-        //TODO 1: Find the largest space direction.
         Evas_Coord length[2];
 
-        length[0] = pos.y - hover_area.y;
-        length[1] = (hover_area.y + hover_area.h) - pos.y;
-
-        if (length[0] > length[1])
-           idx = ELM_CTXPOPUP_DIRECTION_UP;
+        if(!wd->horizontal)
+          {
+             length[0] = pos.y - hover_area.y;
+             length[1] = (hover_area.y + hover_area.h) - pos.y;
+
+             // ELM_CTXPOPUP_DIRECTION_UP
+             if (length[0] > length[1])
+               {
+                  _adjust_pos_x(&pos, &base_size, &hover_area);
+                  pos.y -= base_size.y;
+                  arrow = ELM_CTXPOPUP_DIRECTION_UP;
+                  if (pos.y < (hover_area.y + arrow_size.y))
+                    {
+                       base_size.y -= ((hover_area.y + arrow_size.y) - pos.y);
+                       pos.y = hover_area.y + arrow_size.y;
+                    }
+               }
+             //ELM_CTXPOPUP_DIRECTION_DOWN
+             else
+               {
+                  _adjust_pos_x(&pos, &base_size, &hover_area);
+                  arrow = ELM_CTXPOPUP_DIRECTION_DOWN;
+                  if ((pos.y + arrow_size.y + base_size.y) >
+                      (hover_area.y + hover_area.h))
+                     base_size.y -=
+                        ((pos.y + arrow_size.y + base_size.y) -
+                         (hover_area.y + hover_area.h));
+               }
+          }
         else
-           idx = ELM_CTXPOPUP_DIRECTION_DOWN;
-
-        //TODO 2: determine x , y
-        switch (idx)
           {
-           case ELM_CTXPOPUP_DIRECTION_UP:
-              _adjust_pos_x(&pos, &base_size, &hover_area);
-              pos.y -= base_size.y;
-              arrow = ELM_CTXPOPUP_DIRECTION_DOWN;
-              if (pos.y < hover_area.y + arrow_size.y)
-                {
-                   base_size.y -= ((hover_area.y + arrow_size.y) - pos.y);
-                   pos.y = hover_area.y + arrow_size.y;
-                }
-              break;
-           case ELM_CTXPOPUP_DIRECTION_LEFT:
-              _adjust_pos_y(&pos, &base_size, &hover_area);
-              pos.x -= base_size.x;
-              arrow = ELM_CTXPOPUP_DIRECTION_RIGHT;
-              if (pos.x < hover_area.x + arrow_size.x)
-                {
-                   base_size.x -= ((hover_area.x + arrow_size.x) - pos.x);
-                   pos.x = hover_area.x + arrow_size.x;
-                }
-              break;
-           case ELM_CTXPOPUP_DIRECTION_RIGHT:
-              _adjust_pos_y(&pos, &base_size, &hover_area);
-              arrow = ELM_CTXPOPUP_DIRECTION_LEFT;
-              if (pos.x + arrow_size.x + base_size.x >
-                  hover_area.x + hover_area.w)
-                 base_size.x -=
-                    ((pos.x + arrow_size.x + base_size.x) -
-                     (hover_area.x + hover_area.w));
-              break;
-           case ELM_CTXPOPUP_DIRECTION_DOWN:
-              _adjust_pos_x(&pos, &base_size, &hover_area);
-              arrow = ELM_CTXPOPUP_DIRECTION_UP;
-              if (pos.y + arrow_size.y + base_size.y >
-                  hover_area.y + hover_area.h)
-                 base_size.y -=
-                    ((pos.y + arrow_size.y + base_size.y) -
-                     (hover_area.y + hover_area.h));
-              break;
-           default:
-              break;
+             length[0] = pos.x - hover_area.x;
+             length[1] = (hover_area.x + hover_area.w) - pos.x;
+
+             //ELM_CTXPOPUP_DIRECTION_LEFT
+             if (length[0] > length[1])
+               {
+                  _adjust_pos_y(&pos, &base_size, &hover_area);
+                  pos.x -= base_size.x;
+                  arrow = ELM_CTXPOPUP_DIRECTION_LEFT;
+                  if (pos.x < (hover_area.x + arrow_size.x))
+                    {
+                       base_size.x -= ((hover_area.x + arrow_size.x) - pos.x);
+                       pos.x = hover_area.x + arrow_size.x;
+                    }
+               }
+             //ELM_CTXPOPUP_DIRECTION_RIGHT
+             else
+               {
+                  _adjust_pos_y(&pos, &base_size, &hover_area);
+                  arrow = ELM_CTXPOPUP_DIRECTION_RIGHT;
+                  if (pos.x + (arrow_size.x + base_size.x) >
+                      hover_area.x + hover_area.w)
+                     base_size.x -=
+                        ((pos.x + arrow_size.x + base_size.x) -
+                         (hover_area.x + hover_area.w));
+               }
           }
      }