e_grabinput: do not pass a faulty time

Summary:
currently there is ecore_x_current_time passed, which is the time of the
last event. if this is passed to ecore_x_window_focus_at_time the request can be
ignored because the last event can be in the past. Instead using
ecore_x_window_focus fixes this, because current time is passed, which
means that x is just using this event at the time it is called.

@fix T2948

Test Plan: Try to run spotify and try to trigger the bug, I cannot anymore.

Reviewers: zmike

Subscribers: cedric, billiob

Maniphest Tasks: T2948

Differential Revision: https://phab.enlightenment.org/D3471
devs/bu5hm4n/systray
Marcel Hollerbach 7 years ago
parent 79616d66dd
commit d8a4888142
  1. 4
      src/bin/e_grabinput.c

@ -173,7 +173,7 @@ _e_grabinput_focus_do(Ecore_Window win, E_Focus_Method method)
#ifndef HAVE_WAYLAND_ONLY
if (e_comp_util_has_x())
{
ecore_x_window_focus_at_time(win, ecore_x_current_time_get());
ecore_x_window_focus(win);
ecore_x_icccm_take_focus_send(win, ecore_x_current_time_get());
}
#endif
@ -189,7 +189,7 @@ _e_grabinput_focus_do(Ecore_Window win, E_Focus_Method method)
case E_FOCUS_METHOD_PASSIVE:
#ifndef HAVE_WAYLAND_ONLY
if (e_comp_util_has_x())
ecore_x_window_focus_at_time(win, ecore_x_current_time_get());
ecore_x_window_focus(win);
#endif
break;

Loading…
Cancel
Save