add breakchroot action

This commit is contained in:
Dana Jansens 2007-06-22 05:02:25 +00:00
parent 29c4cf4a15
commit bb0fd965c5
6 changed files with 24 additions and 46 deletions

View file

@ -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 \

View file

@ -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);

View file

@ -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 {

View file

@ -11,4 +11,5 @@ void action_all_startup()
action_restart_startup();
action_cyclewindows_startup();
action_activate_startup();
action_breakchroot_startup();
}

View file

@ -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

View 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;
}