From e066e574cba922868218ca93673baa7221f78e8b Mon Sep 17 00:00:00 2001 From: Derek Foreman Date: Fri, 13 Apr 2018 20:41:34 +0900 Subject: [PATCH] Revert "elm entry - fix wayland bug by not updating selection until after mse up" Summary: This reverts commit b0a7c4b086b8b15615a81b811eda9b215608e854. This is adding another EFL bug to work around an EFL bug. Reviewers: raster Subscribers: devilhorns, stefan_schmidt, bu5hm4n, thiepha, cedric Differential Revision: https://phab.enlightenment.org/D5933 --- src/lib/elementary/elm_entry.c | 39 ++++++++------------------- src/lib/elementary/elm_widget_entry.h | 1 - 2 files changed, 11 insertions(+), 29 deletions(-) diff --git a/src/lib/elementary/elm_entry.c b/src/lib/elementary/elm_entry.c index a158939f6b..9e0c64754c 100644 --- a/src/lib/elementary/elm_entry.c +++ b/src/lib/elementary/elm_entry.c @@ -103,7 +103,6 @@ struct _Mod_Api static void _create_selection_handlers(Evas_Object *obj, Elm_Entry_Data *sd); static void _magnifier_move(void *data); -static Eina_Bool _entry_selection_changed_signal_job_cb(void *data); static Evas_Object * _entry_win_get(Evas_Object *obj) @@ -2055,8 +2054,6 @@ _mouse_up_cb(void *data, elm_win_keyboard_mode_set(top, ELM_WIN_KEYBOARD_ON); } } - if (sd->sel_change_timeout) ecore_timer_del(sd->sel_change_timeout); - sd->sel_change_timeout = ecore_timer_add(0.02, _entry_selection_changed_signal_job_cb, data); } /* Since context menu disabled flag was checked at mouse right key down, * hence the same should be stopped at mouse up of right key as well */ @@ -2327,27 +2324,6 @@ _entry_selection_none_signal_cb(void *data, // return win && elm_win_wl_window_get(win); //} -static Eina_Bool -_entry_selection_changed_signal_job_cb(void *data) -{ - ELM_ENTRY_DATA_GET(data, sd); - - if (!sd) return; - sd->sel_change_timeout = NULL; - sd->have_selection = EINA_TRUE; - efl_event_callback_legacy_call - (data, EFL_UI_EVENT_SELECTION_CHANGED, NULL); - // XXX: still try primary selection even if on wl in case it's - // supported -// if (!_entry_win_is_wl(data)) - if (!evas_pointer_button_down_mask_get(evas_object_evas_get(sd->entry_edje))) - _selection_store(ELM_SEL_TYPE_PRIMARY, data); - _update_selection_handler(data); - if (_elm_config->atspi_mode) - efl_access_event_emit(EFL_ACCESS_MIXIN, data, EFL_ACCESS_TEXT_EVENT_ACCESS_TEXT_SELECTION_CHANGED, NULL); - return EINA_FALSE; -} - static void _entry_selection_changed_signal_cb(void *data, Evas_Object *obj EINA_UNUSED, @@ -2356,8 +2332,17 @@ _entry_selection_changed_signal_cb(void *data, { ELM_ENTRY_DATA_GET(data, sd); - if (sd->sel_change_timeout) ecore_timer_del(sd->sel_change_timeout); - sd->sel_change_timeout = ecore_timer_add(0.02, _entry_selection_changed_signal_job_cb, data); + if (!sd) return; + sd->have_selection = EINA_TRUE; + efl_event_callback_legacy_call + (data, EFL_UI_EVENT_SELECTION_CHANGED, NULL); + // XXX: still try primary selection even if on wl in case it's + // supported +// if (!_entry_win_is_wl(data)) + _selection_store(ELM_SEL_TYPE_PRIMARY, data); + _update_selection_handler(data); + if (_elm_config->atspi_mode) + efl_access_event_emit(EFL_ACCESS_MIXIN, data, EFL_ACCESS_TEXT_EVENT_ACCESS_TEXT_SELECTION_CHANGED, NULL); } static void @@ -3974,8 +3959,6 @@ _elm_entry_efl_canvas_group_group_del(Eo *obj, Elm_Entry_Data *sd) eina_stringshare_del(sd->file); - ecore_timer_del(sd->sel_change_timeout); - sd->sel_change_timeout = NULL; ecore_job_del(sd->hov_deljob); if ((sd->api) && (sd->api->obj_unhook)) sd->api->obj_unhook(obj); // module - unhook diff --git a/src/lib/elementary/elm_widget_entry.h b/src/lib/elementary/elm_widget_entry.h index cf5e0fb978..a40df5183b 100644 --- a/src/lib/elementary/elm_widget_entry.h +++ b/src/lib/elementary/elm_widget_entry.h @@ -71,7 +71,6 @@ struct _Elm_Entry_Data Edje_Cursor sel_handler_cursor; void *input_panel_imdata; Eina_List *edje_signals; - Ecore_Timer *sel_change_timeout; int input_panel_imdata_len; int input_panel_layout_variation; int validators;