efl_extension_more_option: fix not to pass touch events behind panel 09/224009/1
authorJaehyun Cho <jae_hyun.cho@samsung.com>
Wed, 5 Feb 2020 10:43:49 +0000 (19:43 +0900)
committerJaehyun Cho <jae_hyun.cho@samsung.com>
Wed, 5 Feb 2020 11:05:03 +0000 (20:05 +0900)
Whenever panel becomes inactive by elm_panel_toggle(), repeat events is
set true and it causes that touch events are passed through panel.

Not to pass touch events behind the panel, repeat events should be set
false in the panel's inactive callback.

Change-Id: I93e980b9c86fb0a56c135d6dfdd747c2065910ab

src/wearable/efl_extension_more_option.c

index 3d09a73e5bd74638030bf9e1509a6c4a0dde3450..2647138ba08fcc915f3d9adbaee6c3fe76ab839c 100644 (file)
@@ -1430,6 +1430,15 @@ _panel_inactive_cb(void *data, Evas_Object *obj, const char *emission, const cha
    Eext_More_Option_Data *mold = data;
    if (mold)
      {
+        /* Whenever panel becomes inactive by elm_panel_toggle(), repeat events
+         * is set true and it causes that touch events are passed through panel.
+         * In eext_more_option_add(), panel is created and elm_panel_toggle() is
+         * called so this inactive callback is called but mold->is_panel_active
+         * is still false.
+         * Therefore, repeat events should be set false regardless of the value
+         * mold->is_panel_active not to pass touch events behind the panel. */
+        evas_object_repeat_events_set(mold->panel, EINA_FALSE);
+
         /*ONEUI1.5(10Oct2019): Do nothing in inactive state when panel was not active.
         This case occurs when panel first loaded with toggle signal
         which invokes inactive state and before cue clicked is processed, inactive state
@@ -1437,7 +1446,6 @@ _panel_inactive_cb(void *data, Evas_Object *obj, const char *emission, const cha
         */
         if (!mold->is_panel_active) return;
         //
-        evas_object_repeat_events_set(mold->panel, EINA_FALSE);
         LOGI("Panel is inactive");
         evas_object_smart_callback_call(mold->more_option, "more,option,closed", NULL);
         if (__elm_product_theme_is_loaded())