add breakchroot action
This commit is contained in:
parent
29c4cf4a15
commit
bb0fd965c5
6 changed files with 24 additions and 46 deletions
|
@ -157,6 +157,7 @@ openbox_openbox_SOURCES = \
|
|||
openbox/actions/all.c \
|
||||
openbox/actions/all.h \
|
||||
openbox/actions/activate.c \
|
||||
openbox/actions/breakchroot.c \
|
||||
openbox/actions/cyclewindows.c \
|
||||
openbox/actions/debug.c \
|
||||
openbox/actions/execute.c \
|
||||
|
|
|
@ -446,11 +446,6 @@ void setup_action_addremove_desktop_last(ObAction **a, ObUserAction uact)
|
|||
(*a)->data.addremovedesktop.current = FALSE;
|
||||
}
|
||||
|
||||
void setup_action_focus(ObAction **a, ObUserAction uact)
|
||||
{
|
||||
(*a)->data.any.client_action = OB_CLIENT_ACTION_OPTIONAL;
|
||||
}
|
||||
|
||||
void setup_client_action(ObAction **a, ObUserAction uact)
|
||||
{
|
||||
(*a)->data.any.client_action = OB_CLIENT_ACTION_ALWAYS;
|
||||
|
@ -498,11 +493,6 @@ ActionString actionstrings[] =
|
|||
action_directional_focus,
|
||||
setup_action_directional_focus_northwest
|
||||
},
|
||||
{
|
||||
"focus",
|
||||
action_focus,
|
||||
setup_action_focus
|
||||
},
|
||||
{
|
||||
"unfocus",
|
||||
action_unfocus,
|
||||
|
@ -838,11 +828,6 @@ ActionString actionstrings[] =
|
|||
action_growtoedge,
|
||||
setup_action_growtoedge_east
|
||||
},
|
||||
{
|
||||
"breakchroot",
|
||||
action_break_chroot,
|
||||
NULL
|
||||
},
|
||||
{
|
||||
"adddesktoplast",
|
||||
action_add_desktop,
|
||||
|
@ -1110,27 +1095,6 @@ void action_run_string(const gchar *name, struct _ObClient *c, Time time)
|
|||
action_run(l, c, 0, time);
|
||||
}
|
||||
|
||||
void action_focus(union ActionData *data)
|
||||
{
|
||||
if (data->client.any.c) {
|
||||
if (!data->any.button || client_mouse_focusable(data->client.any.c) ||
|
||||
(data->any.context != OB_FRAME_CONTEXT_CLIENT &&
|
||||
data->any.context != OB_FRAME_CONTEXT_FRAME))
|
||||
{
|
||||
/* if using focus_delay, stop the timer now so that focus doesn't
|
||||
go moving on us */
|
||||
event_halt_focus_delay();
|
||||
|
||||
client_focus(data->client.any.c);
|
||||
}
|
||||
} else {
|
||||
/* focus action on something other than a client, make keybindings
|
||||
work for this openbox instance, but don't focus any specific client
|
||||
*/
|
||||
focus_nothing();
|
||||
}
|
||||
}
|
||||
|
||||
void action_unfocus (union ActionData *data)
|
||||
{
|
||||
if (data->client.any.c == focus_client)
|
||||
|
@ -1762,12 +1726,6 @@ void action_toggle_dockautohide(union ActionData *data)
|
|||
dock_configure();
|
||||
}
|
||||
|
||||
void action_break_chroot(union ActionData *data)
|
||||
{
|
||||
/* break out of one chroot */
|
||||
keyboard_reset_chains(1);
|
||||
}
|
||||
|
||||
void action_add_desktop(union ActionData *data)
|
||||
{
|
||||
client_action_start(data);
|
||||
|
|
|
@ -62,10 +62,6 @@ static gboolean run_func(ObActionsData *data, gpointer options)
|
|||
data->context != OB_FRAME_CONTEXT_CLIENT ||
|
||||
data->context != OB_FRAME_CONTEXT_FRAME)
|
||||
{
|
||||
/* if using focus_delay, stop the timer now so that focus doesn't
|
||||
go moving on us */
|
||||
event_halt_focus_delay();
|
||||
|
||||
client_activate(data->client, o->here, o->raise, o->unshade, TRUE);
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -11,4 +11,5 @@ void action_all_startup()
|
|||
action_restart_startup();
|
||||
action_cyclewindows_startup();
|
||||
action_activate_startup();
|
||||
action_breakchroot_startup();
|
||||
}
|
||||
|
|
|
@ -12,5 +12,6 @@ void action_exit_startup();
|
|||
void action_restart_startup();
|
||||
void action_cyclewindows_startup();
|
||||
void action_activate_startup();
|
||||
void action_breakchroot_startup();
|
||||
|
||||
#endif
|
||||
|
|
21
openbox/actions/breakchroot.c
Normal file
21
openbox/actions/breakchroot.c
Normal file
|
@ -0,0 +1,21 @@
|
|||
#include "openbox/actions.h"
|
||||
#include "openbox/keyboard.h"
|
||||
|
||||
static gboolean run_func(ObActionsData *data, gpointer options);
|
||||
|
||||
void action_breakchroot_startup()
|
||||
{
|
||||
actions_register("BreakChroot",
|
||||
NULL, NULL,
|
||||
run_func,
|
||||
NULL, NULL);
|
||||
}
|
||||
|
||||
/* Always return FALSE because its not interactive */
|
||||
static gboolean run_func(ObActionsData *data, gpointer options)
|
||||
{
|
||||
/* break out of one chroot */
|
||||
keyboard_reset_chains(1);
|
||||
|
||||
return FALSE;
|
||||
}
|
Loading…
Reference in a new issue