Revert "elm entry - fix wayland bug by not updating selection until after mse up"

Summary:
This reverts commit b0a7c4b086.

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
This commit is contained in:
Derek Foreman 2018-04-13 20:41:34 +09:00 committed by Carsten Haitzler (Rasterman)
parent eab91edcb2
commit e066e574cb
2 changed files with 11 additions and 29 deletions

View File

@ -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

View File

@ -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;