[TIZENIOT-2440]Brightness slider blocking quickpanel 04/257004/1 submit/tizen/20210416.105730
authoraman.jeph <aman.jeph@samsung.com>
Fri, 16 Apr 2021 08:54:56 +0000 (14:24 +0530)
committeraman.jeph <aman.jeph@samsung.com>
Fri, 16 Apr 2021 08:54:56 +0000 (14:24 +0530)
Change-Id: Ifa3758011bc1c5c60edeee2b470a15474d2a666b
Signed-off-by: aman.jeph <aman.jeph@samsung.com>
src/device/brightness.c

index ba031fc118fc4c7d896edadf132fe88f5b15f3c8..197c457038b48c939a0bc2635e9943e0fa330993 100755 (executable)
@@ -67,6 +67,7 @@ typedef struct _brightness_ctrl_obj {
        int level_before;
        int pos_x;
        bool is_changing;
+       bool is_drag_start;
        Evas_Object *brighntess_slider;
 } brightness_ctrl_obj;
 
@@ -85,6 +86,9 @@ static void _brightness_deregister_event_cb(brightness_ctrl_obj *ctrl_obj);
 static void _brightness_set_image(int level);
 static void _refresh(void *data);
 
+static void _brightness_slider_drag_stop_cb(void *data, Evas_Object *obj, void *event_info);
+
+
 QP_Module brightness_ctrl = {
        .name = "brightness_ctrl",
        .init = _init,
@@ -312,6 +316,13 @@ static void _slider_delayed_changed_job_cb(void *data)
                _brightness_set_level(value);
                _brightness_set_image(value);
        }
+       // in case slider is changed with keyboard drag callbacks are not called so we
+       // need to call the drag stop cb to show quickpanel and volume slider back again
+       // as those hide when brightness is changed.
+       if(ctrl_obj->is_drag_start == false)
+       {
+               _brightness_slider_drag_stop_cb(ctrl_obj, obj, NULL);
+       }
 }
 
 static void _brightness_ctrl_slider_delayed_changed_cb(void *data, Evas_Object *obj, void *event_info)
@@ -322,6 +333,8 @@ static void _brightness_ctrl_slider_delayed_changed_cb(void *data, Evas_Object *
 
 static void _brightness_slider_drag_start_cb(void *data, Evas_Object *obj, void *event_info)
 {
+       brightness_ctrl_obj *ctrl_obj = data;
+       ctrl_obj->is_drag_start = true;
        slider_drag_start = _brightness_get_level();
 }
 
@@ -329,7 +342,7 @@ static void _brightness_slider_drag_stop_cb(void *data, Evas_Object *obj, void *
 {
        brightness_ctrl_obj *ctrl_obj = data;
        ctrl_obj->is_changing = false;
-
+       ctrl_obj->is_drag_start = false;
        quickpanel_brightness_transparent_background_set(false);
        elm_object_signal_emit(_controller_view_get(), "hide", "base");
        quickpanel_volume_slider_visible_set(EINA_TRUE);
@@ -666,6 +679,7 @@ static void _brightness_create(void *data)
                        _brightness_register_event_cb(g_ctrl_obj);
 
                        g_ctrl_obj->brighntess_slider = NULL;
+                       g_ctrl_obj->is_drag_start = false;
 
                        DBG("brightness controller is created");
                }