add AddDesktopLast RemoveDesktopLast AddDesktopCurrent RemoveDesktopCurrent
This commit is contained in:
parent
338798a408
commit
1443e17317
2 changed files with 74 additions and 0 deletions
|
@ -470,6 +470,16 @@ void setup_action_showmenu(ObAction **a, ObUserAction uact)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setup_action_addremove_desktop_current(ObAction **a, ObUserAction uact)
|
||||||
|
{
|
||||||
|
(*a)->data.addremovedesktop.current = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void setup_action_addremove_desktop_last(ObAction **a, ObUserAction uact)
|
||||||
|
{
|
||||||
|
(*a)->data.addremovedesktop.current = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
void setup_action_focus(ObAction **a, ObUserAction uact)
|
void setup_action_focus(ObAction **a, ObUserAction uact)
|
||||||
{
|
{
|
||||||
(*a)->data.any.client_action = OB_CLIENT_ACTION_OPTIONAL;
|
(*a)->data.any.client_action = OB_CLIENT_ACTION_OPTIONAL;
|
||||||
|
@ -927,6 +937,26 @@ ActionString actionstrings[] =
|
||||||
action_break_chroot,
|
action_break_chroot,
|
||||||
NULL
|
NULL
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"adddesktoplast",
|
||||||
|
action_add_desktop,
|
||||||
|
setup_action_addremove_desktop_last
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"removedesktoplast",
|
||||||
|
action_remove_desktop,
|
||||||
|
setup_action_addremove_desktop_last
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"adddesktopcurrent",
|
||||||
|
action_add_desktop,
|
||||||
|
setup_action_addremove_desktop_current
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"removedesktopcurrent",
|
||||||
|
action_remove_desktop,
|
||||||
|
setup_action_addremove_desktop_current
|
||||||
|
},
|
||||||
{
|
{
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
|
@ -2003,3 +2033,37 @@ void action_break_chroot(union ActionData *data)
|
||||||
/* break out of one chroot */
|
/* break out of one chroot */
|
||||||
keyboard_reset_chains(1);
|
keyboard_reset_chains(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void action_add_desktop(union ActionData *data)
|
||||||
|
{
|
||||||
|
screen_set_num_desktops(screen_num_desktops+1);
|
||||||
|
|
||||||
|
/* move all the clients over */
|
||||||
|
if (data->addremovedesktop.current) {
|
||||||
|
GList *it;
|
||||||
|
|
||||||
|
for (it = client_list; it; it = g_list_next(it)) {
|
||||||
|
ObClient *c = it->data;
|
||||||
|
if (c->desktop != DESKTOP_ALL && c->desktop >= screen_desktop)
|
||||||
|
client_set_desktop(c, c->desktop+1, FALSE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void action_remove_desktop(union ActionData *data)
|
||||||
|
{
|
||||||
|
if (screen_num_desktops < 2) return;
|
||||||
|
|
||||||
|
/* move all the clients over */
|
||||||
|
if (data->addremovedesktop.current) {
|
||||||
|
GList *it;
|
||||||
|
|
||||||
|
for (it = client_list; it; it = g_list_next(it)) {
|
||||||
|
ObClient *c = it->data;
|
||||||
|
if (c->desktop != DESKTOP_ALL && c->desktop > screen_desktop)
|
||||||
|
client_set_desktop(c, c->desktop-1, FALSE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
screen_set_num_desktops(screen_num_desktops-1);
|
||||||
|
}
|
||||||
|
|
|
@ -142,6 +142,11 @@ struct ShowMenu {
|
||||||
gchar *name;
|
gchar *name;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct AddRemoveDesktop {
|
||||||
|
struct AnyAction any;
|
||||||
|
gboolean current;
|
||||||
|
};
|
||||||
|
|
||||||
struct CycleWindows {
|
struct CycleWindows {
|
||||||
struct InteractiveAction inter;
|
struct InteractiveAction inter;
|
||||||
gboolean linear;
|
gboolean linear;
|
||||||
|
@ -175,6 +180,7 @@ union ActionData {
|
||||||
struct CycleWindows cycle;
|
struct CycleWindows cycle;
|
||||||
struct Layer layer;
|
struct Layer layer;
|
||||||
struct Stacking stacking;
|
struct Stacking stacking;
|
||||||
|
struct AddRemoveDesktop addremovedesktop;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _ObAction {
|
struct _ObAction {
|
||||||
|
@ -356,5 +362,9 @@ void action_show_desktop(union ActionData *data);
|
||||||
void action_unshow_desktop(union ActionData *data);
|
void action_unshow_desktop(union ActionData *data);
|
||||||
/* Any */
|
/* Any */
|
||||||
void action_break_chroot(union ActionData *data);
|
void action_break_chroot(union ActionData *data);
|
||||||
|
/* AddRemoveDesktop */
|
||||||
|
void action_add_desktop(union ActionData *data);
|
||||||
|
/* AddRemoveDesktop */
|
||||||
|
void action_remove_desktop(union ActionData *data);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue