From d11a154acf7d2fb1cb324e827295417830218816 Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Tue, 8 Mar 2011 23:09:09 +0000 Subject: [PATCH] e17: disable pointer warp on _net_active_window client message SVN revision: 57608 --- src/bin/e_manager.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/bin/e_manager.c b/src/bin/e_manager.c index a15188dde..ca61b07df 100644 --- a/src/bin/e_manager.c +++ b/src/bin/e_manager.c @@ -969,8 +969,15 @@ _e_manager_cb_client_message(void *data __UNUSED__, int ev_type __UNUSED__, void if (!bd->lock_user_stacking) e_border_raise(bd); if (!bd->lock_focus_out) { - if (e_config->focus_policy != E_FOCUS_CLICK) - ecore_x_pointer_warp(bd->zone->container->win, + int requestor_id = e->data.l[2]; + /* FIXME for now only set pointer when not + requested by a client. ooffice does send this + request for dialogs which should be modal when + the main window gets focus. causing the pointer + to jump back and forth. are there any other + apps that use _net_active_window ? */ + if ((requestor_id == 2) && (e_config->focus_policy != E_FOCUS_CLICK)) + ecore_x_pointer_warp(bd->zone->container->win, bd->x + (bd->w / 2), bd->y + (bd->h / 2)); e_border_focus_set(bd, 1, 1); }