add e_client_frame_focus_set to set/unset focus 57/206657/1
authorDoyoun Kang <doyoun.kang@samsung.com>
Thu, 23 May 2019 00:38:39 +0000 (09:38 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Thu, 23 May 2019 00:38:42 +0000 (09:38 +0900)
We used evas_object_focus_set(ec->frame, set) API. But it was hard to debug
setting/unsetting focus. So, we make wrapper API.

FYI, no focus logic change in this patch.

Change-Id: Ia973d1da275bd81fbcb53ab6c9be1afe3c048afd

src/bin/e_actions.c
src/bin/e_client.c
src/bin/e_client.h
src/bin/e_comp_object.c
src/bin/e_desk.c
src/bin/e_focus.c
src/bin/e_policy_stack.c

index d635b62d689c8ac3747ef94e50f36d3fb8f8fc9a..8a88a56d2bed4406cfbe7f2dd6309b5ecc20b0c5 100644 (file)
@@ -1190,7 +1190,8 @@ window_jump_to(const char *params)
         evas_object_raise(ec->frame);
         if (ec->zone != current_zone)
           e_util_pointer_center(ec);
-        evas_object_focus_set(ec->frame, 1);
+        ELOGF("FOCUS", "focus set   | window_jump_to", ec);
+        e_client_frame_focus_set(ec, EINA_TRUE);
         return 1;
      }
    return 0;
@@ -1324,7 +1325,8 @@ ACT_FN_GO(window_zone_move_by, )
 //   e_client_desk_set(ec, e_desk_current_get(zone));
    if (max) e_client_maximize(ec, max);
    if (fullscreen) e_client_fullscreen(ec, fs);
-   evas_object_focus_set(ec->frame, 1);
+   ELOGF("FOCUS", "focus set   | window_zone_move_by_action", ec);
+   e_client_frame_focus_set(ec, EINA_TRUE);
 }
 
 /***************************************************************************/
index 390dd5458ad147128d0cc61f6b67c080359c49d4..43c4f37de064bbf50eeb345085fff3b4c4655cbb 100644 (file)
@@ -252,8 +252,8 @@ cleanup:
         
         if (!warp_client->lock_focus_out)
           {
-             ELOGF("FOCUS", "focus set | pointer_warp_to_center", warp_client);
-             evas_object_focus_set(warp_client->frame, 1);
+             ELOGF("FOCUS", "focus set   | pointer_warp_to_center", warp_client);
+             e_client_frame_focus_set(warp_client, EINA_TRUE);
              e_client_focus_latest_set(warp_client);
           }
         warp_client = NULL;
@@ -977,12 +977,12 @@ e_client_revert_focus(E_Client *ec)
           {
              e_client_focus_defer_unset(ec);
              ELOGF("FOCUS", "focus unset | revert_focus", ec);
-             evas_object_focus_set(ec->frame, EINA_FALSE);
+             e_client_frame_focus_set(ec, EINA_FALSE);
           }
         if (!focus_ec->iconic || focus_ec->exp_iconify.buffer_flush)
           {
-             ELOGF("FOCUS", "focus set | revert_focus", focus_ec);
-             evas_object_focus_set(focus_ec->frame, EINA_TRUE);
+             ELOGF("FOCUS", "focus set   | revert_focus", focus_ec);
+             e_client_frame_focus_set(focus_ec, EINA_TRUE);
           }
      }
 }
@@ -1926,8 +1926,8 @@ _e_client_reset_lost_window(E_Client *ec)
    evas_object_raise(ec->frame);
    if (!ec->lock_focus_out)
      {
-        ELOGF("FOCUS", "focus set | reset_lost_window", ec);
-        evas_object_focus_set(ec->frame, 1);
+        ELOGF("FOCUS", "focus set   | reset_lost_window", ec);
+        e_client_frame_focus_set(ec, EINA_TRUE);
      }
 
    e_client_pointer_warp_to_center(ec);
@@ -2770,8 +2770,8 @@ _e_client_eval(E_Client *ec)
                   ec->cur_mouse_action->func.go(E_OBJECT(ec), NULL);
                   if (e_config->border_raise_on_mouse_action)
                     evas_object_raise(ec->frame);
-                  ELOGF("FOCUS", "focus set | client eval", ec);
-                  evas_object_focus_set(ec->frame, 1);
+                  ELOGF("FOCUS", "focus set   | client eval", ec);
+                  e_client_frame_focus_set(ec, EINA_TRUE);
                }
              ec->changes.visible = 0;
              _e_client_event_show(ec);
@@ -3476,7 +3476,7 @@ _e_client_focus_calculate(E_Zone *zone)
           {
              e_client_focus_defer_unset(focused);
              ELOGF("FOCUS", "focus unset | focus calculate", focused);
-             evas_object_focus_set(focused->frame, EINA_FALSE);
+             e_client_frame_focus_set(focused, EINA_FALSE);
           }
      }
 
@@ -3509,10 +3509,10 @@ _e_client_focus_calculate(E_Zone *zone)
      {
         if (defered_focus_ec != focused)
           {
-             ELOGF("FOCUS", "focus set | defer_focus", defered_focus_ec);
+             ELOGF("FOCUS", "focus set   | focus calculate (defer_focus)", defered_focus_ec);
              if (focused)
                e_client_focus_defer_unset(focused);
-             evas_object_focus_set(defered_focus_ec->frame, EINA_TRUE);
+             e_client_frame_focus_set(defered_focus_ec, EINA_TRUE);
           }
 
         e_client_focus_defer_unset(defered_focus_ec);
@@ -3523,10 +3523,10 @@ _e_client_focus_calculate(E_Zone *zone)
      {
         if (reverted_focus_ec != focused)
           {
-             ELOGF("FOCUS", "focus set | revert_focus", reverted_focus_ec);
+             ELOGF("FOCUS", "focus set   | focus calculate (revert_focus)", reverted_focus_ec);
              if (focused)
                e_client_focus_defer_unset(focused);
-             evas_object_focus_set(reverted_focus_ec->frame, EINA_TRUE);
+             e_client_frame_focus_set(reverted_focus_ec, EINA_TRUE);
           }
 
         e_client_focus_defer_unset(reverted_focus_ec);
@@ -5112,8 +5112,8 @@ e_client_refocus(void)
      if (ec->desk && ec->desk->visible && (!ec->iconic))
        {
           if (e_comp->input_key_grabs || e_comp->input_mouse_grabs) break;
-          ELOGF("FOCUS", "focus set | refocus", ec);
-          evas_object_focus_set(ec->frame, 1);
+          ELOGF("FOCUS", "focus set   | refocus", ec);
+          e_client_frame_focus_set(ec, EINA_TRUE);
           break;
        }
 }
@@ -5159,8 +5159,8 @@ e_client_focus_set_with_pointer(E_Client *ec)
    if (ec == focused) return;
 
    TRACE_DS_BEGIN(CLIENT:FOCUS SET WITH POINTER);
-   ELOGF("FOCUS", "focus set | focus with pointer", ec);
-   evas_object_focus_set(ec->frame, 1);
+   ELOGF("FOCUS", "focus set   | focus with pointer", ec);
+   e_client_frame_focus_set(ec, EINA_TRUE);
 
    if (e_config->focus_policy == E_FOCUS_CLICK)
      {
@@ -5333,8 +5333,8 @@ e_client_activate(E_Client *ec, Eina_Bool just_do_it)
                     }
                   else
                     {
-                       ELOGF("FOCUS", "focus set | client activate", ec);
-                       evas_object_focus_set(focus_ec->frame, 1);
+                       ELOGF("FOCUS", "focus set   | client activate", focus_ec);
+                       e_client_frame_focus_set(focus_ec, EINA_TRUE);
                     }
                }
              else
@@ -5852,7 +5852,7 @@ e_client_uniconify(E_Client *ec)
 
 #if 0 // focus should be set to the top window not uniconify window
    if (ec->pixmap && e_pixmap_usable_get(ec->pixmap))
-      evas_object_focus_set(ec->frame, 1);
+      e_client_frame_focus_set(ec, EINA_TRUE);
 #endif
 
    _e_client_event_simple(ec, E_EVENT_CLIENT_UNICONIFY);
@@ -7305,3 +7305,9 @@ e_client_pending_geometry_flush(E_Client *ec)
         ELOGF("POSSIZE", "pending geometry has flushed", ec);
      }
 }
+
+E_API void e_client_frame_focus_set(E_Client *ec, Eina_Bool focus)
+{
+   if (!ec) return;
+   evas_object_focus_set(ec->frame, focus);
+}
index d28a5ca4b47240e5b17b84f47376b2aef32f706f..30071e18627ac99d622245eb2fbbcdc9683c4b1f 100644 (file)
@@ -1184,6 +1184,8 @@ EINTERN Eina_Bool e_client_check_above_focused(E_Client *ec);
 EINTERN void      e_client_pending_geometry_flush(E_Client *ec);
 EINTERN Eina_Bool e_client_pending_geometry_has(E_Client *ec);
 
+E_API void e_client_frame_focus_set(E_Client *ec, Eina_Bool focus);
+
 /**
  * Move window to coordinates that do not account client decorations yet.
  *
index ae96d0ef309139db29725519bc1fc44a91026efc..d4089c803e09ce443f25aeffa7d640c2d938bb57 100644 (file)
@@ -2332,6 +2332,8 @@ _e_comp_intercept_focus(void *data, Evas_Object *obj, Eina_Bool focus)
           {
              if (e_client_focused_get() == ec)
                 e_client_focused_set(NULL);
+
+             ELOGF("FOCUS", "FOCUS UNSET | evas_object(%p) (frame:%p)", ec, obj, ec->frame);
              evas_object_focus_set(obj, focus);
           }
         return;
@@ -2345,6 +2347,7 @@ _e_comp_intercept_focus(void *data, Evas_Object *obj, Eina_Bool focus)
      {
         if (ec->focused)
           {
+             ELOGF("FOCUS", "FOCUS SET   | evas_object(%p) (frame:%p)", ec, obj, ec->frame);
              evas_object_focus_set(obj, focus);
              return;
           }
@@ -2377,14 +2380,16 @@ _e_comp_intercept_focus(void *data, Evas_Object *obj, Eina_Bool focus)
         if ((ec->modal) && (ec->modal != ec) &&
             (ec->modal->visible) && (!e_object_is_del(E_OBJECT(ec->modal))))
           {
-             evas_object_focus_set(ec->modal->frame, focus);
+             ELOGF("FOCUS", "focus set   | intercept focus to modal", ec->modal);
+             e_client_frame_focus_set(ec->modal, focus);
              return;
           }
         else if ((ec->leader) && (ec->leader->modal) &&
                  (ec->leader->modal != ec) && ec->leader->modal->visible &&
                  (!e_object_is_del(E_OBJECT(ec->leader->modal))))
           {
-             evas_object_focus_set(ec->leader->modal->frame, focus);
+             ELOGF("FOCUS", "focus set   | intercept focus to leader->modal", ec->leader->modal);
+             e_client_frame_focus_set(ec->leader->modal, focus);
              return;
           }
         if (!cw->visible)
@@ -2402,6 +2407,12 @@ _e_comp_intercept_focus(void *data, Evas_Object *obj, Eina_Bool focus)
         if (e_client_focused_get() == ec)
           e_client_focused_set(NULL);
      }
+
+   if (focus)
+     ELOGF("FOCUS", "FOCUS SET   | evas_object(%p) (frame:%p)", ec, obj, ec->frame);
+   else
+     ELOGF("FOCUS", "FOCUS UNSET | evas_object(%p) (frame:%p)", ec, obj, ec->frame);
+
    evas_object_focus_set(obj, focus);
 }
 
@@ -2910,7 +2921,7 @@ _e_comp_smart_hide(Evas_Object *obj)
    if (cw->ec->focused)
      {
         ELOGF("FOCUS", "focus unset | smart_hide", cw->ec);
-        evas_object_focus_set(cw->ec->frame, 0);
+        e_client_frame_focus_set(cw->ec, EINA_FALSE);
         e_client_focus_defer_unset(cw->ec);
      }
    e_comp_render_queue(); //force nocomp recheck
index 206173752adcef5dfff36828ea74c0a7a408902d..ba5471f5159ddb603c56e61c99bfd9c19d29c077 100644 (file)
@@ -470,7 +470,7 @@ e_desk_last_focused_focus(E_Desk *desk)
    if (focus_ec)
      {
         ELOGF("FOCUS", "focus unset | last_focused_focus", focus_ec);
-        evas_object_focus_set(focus_ec->frame, 0);
+        e_client_frame_focus_set(focus_ec, EINA_FALSE);
      }
 
    return NULL;
@@ -747,8 +747,8 @@ e_desk_flip_end(E_Desk *desk)
               if (e_client_util_ignored_get(ec)) continue;
               if (!e_client_util_desk_visible(ec, desk)) continue;
               if (ec->iconic) continue;
-              ELOGF("FOCUS", "focus set | desk flip end", ec);
-              evas_object_focus_set(ec->frame, 1);
+              ELOGF("FOCUS", "focus set   | desk flip end", ec);
+              e_client_frame_focus_set(ec, EINA_TRUE);
               if (e_config->raise_on_revert_focus)
                 evas_object_raise(ec->frame);
               return;
index e3b2ae088550d67b04d600684859812c18b62255..3e7247ad52046117365bffb81741eae458e1ce03 100644 (file)
@@ -12,8 +12,8 @@ e_focus_event_mouse_in(E_Client *ec)
    if ((e_config->focus_policy == E_FOCUS_MOUSE) ||
        (e_config->focus_policy == E_FOCUS_SLOPPY))
      {
-        ELOGF("FOCUS", "focus set | moues in", ec);
-        evas_object_focus_set(ec->frame, 1);
+        ELOGF("FOCUS", "focus set   | mouse in", ec);
+        e_client_frame_focus_set(ec, EINA_TRUE);
      }
    if (e_config->use_auto_raise)
      {
@@ -31,8 +31,8 @@ e_focus_event_mouse_out(E_Client *ec)
           {
              if (ec->focused)
                {
-                  ELOGF("FOCUS", "focus unset | moues out", ec);
-                  evas_object_focus_set(ec->frame, 0);
+                  ELOGF("FOCUS", "focus unset | mouse out", ec);
+                  e_client_frame_focus_set(ec, EINA_FALSE);
                }
           }
      }
@@ -44,8 +44,8 @@ e_focus_event_mouse_down(E_Client *ec)
    if (e_client_focus_policy_click(ec) ||
        e_config->always_click_to_focus)
      {
-        ELOGF("FOCUS", "focus set | moues down", ec);
-        evas_object_focus_set(ec->frame, 1);
+        ELOGF("FOCUS", "focus set   | mouse down", ec);
+        e_client_frame_focus_set(ec, EINA_TRUE);
 
         if (ec->floating)
           evas_object_raise(ec->frame);
index b3e810f4e24c79ee9be2a82d3131c04af78a45bc..3ce0b58e44d6cdc9a590f60546a2f5ec60484a38 100644 (file)
@@ -170,8 +170,8 @@ _e_policy_stack_fetch_transient(E_Client *ec)
                             new_focus = e_client_transient_child_top_get(ec->parent, EINA_TRUE);
                             if (new_focus)
                               {
-                                 ELOGF("FOCUS", "focus set | tranient_for fetch", new_focus);
-                                 evas_object_focus_set(new_focus->frame, 1);
+                                 ELOGF("FOCUS", "focus set   | tranient_for fetch", new_focus);
+                                 e_client_frame_focus_set(new_focus, EINA_TRUE);
                               }
                          }
                     }