X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Faction.c;h=58952a1a8716cdc595a480a8eb96ec9928901e8d;hb=f3424ddd3b80ccb43e68f832711c7a513f909e1f;hp=bcd1b60fd1f05cee66e17e7b6733d38959e11560;hpb=03699417fdfdeec803e24e200d37a9d8b95b3913;p=chaz%2Fopenbox diff --git a/openbox/action.c b/openbox/action.c index bcd1b60f..58952a1a 100644 --- a/openbox/action.c +++ b/openbox/action.c @@ -1545,9 +1545,11 @@ void action_desktop_dir(union ActionData *data) data->desktopdir.inter.any.interactive, data->desktopdir.inter.final, data->desktopdir.inter.cancel); + /* only move the desktop when the action is complete. if we switch + desktops during the interactive action, focus will move but with + NotifyWhileGrabbed and applications don't like that. */ if (!data->sendtodir.inter.any.interactive || - !data->sendtodir.inter.final || - data->sendtodir.inter.cancel) + (data->sendtodir.inter.final && !data->sendtodir.inter.cancel)) { if (d != screen_desktop) screen_set_desktop(d, TRUE); } @@ -1565,9 +1567,11 @@ void action_send_to_desktop_dir(union ActionData *data) data->sendtodir.inter.any.interactive, data->sendtodir.inter.final, data->sendtodir.inter.cancel); + /* only move the desktop when the action is complete. if we switch + desktops during the interactive action, focus will move but with + NotifyWhileGrabbed and applications don't like that. */ if (!data->sendtodir.inter.any.interactive || - !data->sendtodir.inter.final || - data->sendtodir.inter.cancel) + (data->sendtodir.inter.final && !data->sendtodir.inter.cancel)) { client_set_desktop(c, d, data->sendtodir.follow); if (data->sendtodir.follow && d != screen_desktop)