void action_iconify(union ActionData *data)
{
client_action_start(data);
- client_iconify(data->client.any.c, TRUE, TRUE);
+ client_iconify(data->client.any.c, TRUE, TRUE, FALSE);
client_action_end(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);
}
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)
void action_toggle_show_desktop(union ActionData *data)
{
- screen_show_desktop(!screen_showing_desktop, TRUE);
+ screen_show_desktop(!screen_showing_desktop, NULL);
}
void action_show_desktop(union ActionData *data)
{
- screen_show_desktop(TRUE, TRUE);
+ screen_show_desktop(TRUE, NULL);
}
void action_unshow_desktop(union ActionData *data)
{
- screen_show_desktop(FALSE, TRUE);
+ screen_show_desktop(FALSE, NULL);
}
void action_break_chroot(union ActionData *data)