make SendToDesktop action work right, give the option of following

This commit is contained in:
Dana Jansens 2003-03-29 21:18:20 +00:00
parent 4d5885d271
commit 2135d9e2fd
2 changed files with 17 additions and 5 deletions

View file

@ -92,6 +92,7 @@ Action *action_from_string(char *name)
a = action_new(action_toggle_maximize_vert);
} else if (!g_ascii_strcasecmp(name, "sendtodesktop")) {
a = action_new(action_send_to_desktop);
a->data.sendto.follow = TRUE;
} else if (!g_ascii_strcasecmp(name, "sendtonextdesktop")) {
a = action_new(action_send_to_next_desktop);
a->data.sendtonextprev.wrap = FALSE;
@ -365,10 +366,14 @@ void action_toggle_maximize_vert(union ActionData *data)
void action_send_to_desktop(union ActionData *data)
{
if (data->desktop.c)
if (data->desktop.desk < screen_num_desktops ||
data->desktop.desk == DESKTOP_ALL)
client_set_desktop(data->desktop.c, data->desktop.desk, TRUE);
if (data->sendto.c) {
if (data->sendto.desk < screen_num_desktops ||
data->sendto.desk == DESKTOP_ALL) {
client_set_desktop(data->desktop.c,
data->sendto.desk, data->sendto.follow);
if (data->sendto.follow) screen_set_desktop(data->sendto.desk);
}
}
}
void action_send_to_next_desktop(union ActionData *data)

View file

@ -26,6 +26,12 @@ struct MoveResizeRelative {
int delta;
};
struct SendToDesktop {
Client *c;
guint desk;
gboolean follow;
};
struct SendToNextPreviousDesktop {
Client *c;
gboolean wrap;
@ -67,6 +73,7 @@ union ActionData {
struct Execute execute;
struct ClientAction client;
struct MoveResizeRelative relative;
struct SendToDesktop sendto;
struct SendToNextPreviousDesktop sendtonextprev;
struct Desktop desktop;
struct NextPreviousDesktop nextprevdesktop;
@ -155,7 +162,7 @@ void action_maximize_vert(union ActionData *data);
void action_unmaximize_vert(union ActionData *data);
/* ClientAction */
void action_toggle_maximize_vert(union ActionData *data);
/* Desktop */
/* SendToDesktop */
void action_send_to_desktop(union ActionData *data);
/* SendToNextPreviousDesktop */
void action_send_to_next_desktop(union ActionData *data);