billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=cb6423fd7334b602a512219206b71bd16a71f30e

commit cb6423fd7334b602a512219206b71bd16a71f30e
Author: Boris Faure <[email protected]>
Date:   Mon Jun 9 12:52:45 2014 +0200

    tab selector: don't overzoom. Closes T875.
---
 src/bin/sel.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/bin/sel.c b/src/bin/sel.c
index f04a5e8..8c73333 100644
--- a/src/bin/sel.c
+++ b/src/bin/sel.c
@@ -179,6 +179,7 @@ _key_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object 
*obj, void *event)
    Sel *sd = evas_object_smart_data_get(data);
    Eina_List *l;
    Entry *en;
+
    if (!sd) return;
    if ((!strcmp(ev->key, "Next")) ||
        (!strcmp(ev->key, "Right")))
@@ -193,6 +194,7 @@ _key_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object 
*obj, void *event)
                        sel_entry_selected_set(obj, en->obj, EINA_FALSE);
                        break;
                     }
+                  else return;
                }
           }
         sd->exit_now = EINA_FALSE;
@@ -211,6 +213,7 @@ _key_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object 
*obj, void *event)
                        sel_entry_selected_set(obj, en->obj, EINA_FALSE);
                        break;
                     }
+                  else return;
                }
           }
         sd->exit_now = EINA_FALSE;
@@ -223,6 +226,7 @@ _key_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object 
*obj, void *event)
              if (en->selected)
                {
                   Evas_Coord x = 0, y = 0, w = 0, h = 0, sgx, sgy;
+                  Eina_Bool found = EINA_FALSE;
 
                   evas_object_geometry_get(en->bg, &x, &y, &w, &h);
                   sgx = x + (w / 2);
@@ -233,9 +237,12 @@ _key_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object 
*obj, void *event)
                        if (ELM_RECTS_INTERSECT(x, y, w, h, sgx, sgy, 1, 1))
                          {
                             sel_entry_selected_set(obj, en->obj, EINA_FALSE);
+                            found = EINA_TRUE;
                             break;
                          }
                     }
+                  if (found == EINA_FALSE)
+                    return;
                   break;
                }
           }
@@ -249,6 +256,7 @@ _key_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object 
*obj, void *event)
              if (en->selected)
                {
                   Evas_Coord x = 0, y = 0, w = 0, h = 0, sgx, sgy;
+                  Eina_Bool found = EINA_FALSE;
 
                   evas_object_geometry_get(en->bg, &x, &y, &w, &h);
                   sgx = x + (w / 2);
@@ -259,9 +267,12 @@ _key_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object 
*obj, void *event)
                        if (ELM_RECTS_INTERSECT(x, y, w, h, sgx, sgy, 1, 1))
                          {
                             sel_entry_selected_set(obj, en->obj, EINA_FALSE);
+                            found = EINA_TRUE;
                             break;
                          }
                     }
+                  if (found == EINA_FALSE)
+                    return;
                   break;
                }
           }

-- 


Reply via email to