X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Faction.c;h=39da39a5b7842ec4159545abd1f3ddf9ad7f7ef5;hb=ca8924a5a004816cf7db39bcf4851312ef93a2dc;hp=f106697971ee4c3617821e48cecc2f07dd65ec60;hpb=d307a36893ff9dfda2e7ff5b096e4ff3640828cd;p=chaz%2Fopenbox diff --git a/openbox/action.c b/openbox/action.c index f1066979..39da39a5 100644 --- a/openbox/action.c +++ b/openbox/action.c @@ -1216,11 +1216,9 @@ void action_execute(union ActionData *data) if (data->execute.path) { cmd = g_filename_from_utf8(data->execute.path, -1, NULL, NULL, NULL); if (cmd) { - /* If there is an interactive action going on, then cancel it - to release the keyboard, so that the run application - can grab the keyboard if it wants to. */ - if (keyboard_interactively_grabbed()) - keyboard_interactive_cancel(); + /* If there is a keyboard grab going on then we need to cancel + it so the application can grab things */ + event_cancel_all_key_grabs(); if (!g_shell_parse_argv (cmd, NULL, &argv, &e)) { g_message(_("Failed to execute '%s': %s"), @@ -1588,7 +1586,7 @@ void action_send_to_desktop(union ActionData *data) if (data->sendto.desk < screen_num_desktops || data->sendto.desk == DESKTOP_ALL) { client_set_desktop(c, data->sendto.desk, data->sendto.follow); - if (data->sendto.follow) + if (data->sendto.follow && data->sendto.desk != screen_desktop) screen_set_desktop(data->sendto.desk, TRUE); } } @@ -1622,7 +1620,8 @@ void action_desktop_dir(union ActionData *data) if (!data->sendtodir.inter.any.interactive || (data->sendtodir.inter.final && !data->sendtodir.inter.cancel)) { - if (d != screen_desktop) screen_set_desktop(d, TRUE); + if (d != screen_desktop) + screen_set_desktop(d, TRUE); } }