all repos — openbox @ d642be361fde438e2b29b7374b4d6465f47ad9e9

openbox fork - make it a bit more like ryudo

add the move action
Dana Jansens danakj@orodu.net
commit

d642be361fde438e2b29b7374b4d6465f47ad9e9

parent

bb0fd965c50289c02619113f113927294fa5be23

M Makefile.amMakefile.am

@@ -158,10 +158,12 @@ openbox/actions/all.c \

openbox/actions/all.h \ openbox/actions/activate.c \ openbox/actions/breakchroot.c \ + openbox/actions/close.c \ openbox/actions/cyclewindows.c \ openbox/actions/debug.c \ openbox/actions/execute.c \ openbox/actions/exit.c \ + openbox/actions/move.c \ openbox/actions/reconfigure.c \ openbox/actions/restart.c \ openbox/actions/showdesktop.c \
M openbox/action.copenbox/action.c

@@ -416,16 +416,6 @@ (*a)->data.layer.any.client_action = OB_CLIENT_ACTION_ALWAYS;

(*a)->data.layer.layer = -1; } -void setup_action_move(ObAction **a, ObUserAction uact) -{ - (*a)->data.moveresize.any.client_action = OB_CLIENT_ACTION_ALWAYS; - (*a)->data.moveresize.keyboard = - (uact == OB_USER_ACTION_NONE || - uact == OB_USER_ACTION_KEYBOARD_KEY || - uact == OB_USER_ACTION_MENU_SELECTION); - (*a)->data.moveresize.corner = 0; -} - void setup_action_resize(ObAction **a, ObUserAction uact) { (*a)->data.moveresize.any.client_action = OB_CLIENT_ACTION_ALWAYS;

@@ -499,11 +489,6 @@ action_unfocus,

setup_client_action }, { - "iconify", - action_iconify, - setup_client_action - }, - { "focustobottom", action_focus_order_to_bottom, setup_client_action

@@ -521,11 +506,6 @@ },

{ "lower", action_lower, - setup_client_action - }, - { - "close", - action_close, setup_client_action }, {

@@ -724,11 +704,6 @@ action_toggle_decorations,

setup_client_action }, { - "move", - action_move, - setup_action_move - }, - { "resize", action_resize, setup_action_resize

@@ -1152,11 +1127,6 @@ stacking_lower(CLIENT_AS_WINDOW(data->client.any.c));

client_action_end(data, config_focus_under_mouse); } -void action_close(union ActionData *data) -{ - client_close(data->client.any.c); -} - void action_kill(union ActionData *data) { client_kill(data->client.any.c);

@@ -1543,19 +1513,6 @@ #undef a

#undef b #undef c #undef d -} - -void action_move(union ActionData *data) -{ - ObClient *c = data->moveresize.any.c; - guint32 corner; - - if (data->moveresize.keyboard) - corner = prop_atoms.net_wm_moveresize_move_keyboard; - else - corner = prop_atoms.net_wm_moveresize_move; - - moveresize_start(c, data->any.x, data->any.y, data->any.button, corner); } void action_resize(union ActionData *data)
M openbox/actions.copenbox/actions.c

@@ -193,6 +193,7 @@ ObUserAction uact,

guint state, gint x, gint y, + gint button, ObFrameContext con, struct _ObClient *client) {

@@ -200,6 +201,7 @@ data->uact = uact;

data->state = state; data->x = x; data->y = y; + data->button = button; data->context = con; data->client = client; }

@@ -209,6 +211,7 @@ ObUserAction uact,

guint state, gint x, gint y, + gint button, ObFrameContext con, struct _ObClient *client) {

@@ -227,7 +230,7 @@ ObActionsData data;

ObActionsAct *act = it->data; gboolean ok = TRUE; - actions_setup_data(&data, uact, state, x, y, con, client); + actions_setup_data(&data, uact, state, x, y, button, con, client); if (actions_act_is_interactive(act) && (!interactive_act || interactive_act->def != act->def))
M openbox/actions.hopenbox/actions.h

@@ -46,6 +46,7 @@ ObUserAction uact;

guint state; gint x; gint y; + gint button; struct _ObClient *client; ObFrameContext context;

@@ -81,6 +82,7 @@ ObUserAction uact,

guint state, gint x, gint y, + gint button, ObFrameContext con, struct _ObClient *client);
M openbox/actions/activate.copenbox/actions/activate.c

@@ -53,12 +53,7 @@ {

Options *o = options; if (data->client) { - gboolean mouse = (data->uact == OB_USER_ACTION_MOUSE_PRESS || - data->uact == OB_USER_ACTION_MOUSE_RELEASE || - data->uact == OB_USER_ACTION_MOUSE_CLICK || - data->uact == OB_USER_ACTION_MOUSE_DOUBLE_CLICK || - data->uact == OB_USER_ACTION_MOUSE_MOTION); - if (!mouse || client_mouse_focusable(data->client) || + if (data->button == 0 || client_mouse_focusable(data->client) || data->context != OB_FRAME_CONTEXT_CLIENT || data->context != OB_FRAME_CONTEXT_FRAME) {
M openbox/actions/all.copenbox/actions/all.c

@@ -12,4 +12,6 @@ action_restart_startup();

action_cyclewindows_startup(); action_activate_startup(); action_breakchroot_startup(); + action_close_startup(); + action_move_startup(); }
M openbox/actions/all.hopenbox/actions/all.h

@@ -13,5 +13,7 @@ void action_restart_startup();

void action_cyclewindows_startup(); void action_activate_startup(); void action_breakchroot_startup(); +void action_close_startup(); +void action_move_startup(); #endif
A openbox/actions/move.c

@@ -0,0 +1,29 @@

+#include "openbox/actions.h" +#include "openbox/prop.h" +#include "openbox/moveresize.h" + +static gboolean run_func(ObActionsData *data, gpointer options); + +void action_move_startup() +{ + actions_register("Move", + NULL, NULL, + run_func, + NULL, NULL); +} + +/* Always return FALSE because its not interactive */ +static gboolean run_func(ObActionsData *data, gpointer options) +{ + if (data->client) { + guint32 corner; + + corner = data->button != 0 ? + prop_atoms.net_wm_moveresize_move : + prop_atoms.net_wm_moveresize_move_keyboard; + + moveresize_start(data->client, data->x, data->y, data->button, corner); + } + + return FALSE; +}
M openbox/actions/showmenu.copenbox/actions/showmenu.c

@@ -1,4 +1,5 @@

#include "openbox/actions.h" +#include "openbox/menu.h" #include <glib.h> typedef struct {

@@ -49,13 +50,7 @@ /* you cannot call ShowMenu from inside a menu */

if (data->uact == OB_USER_ACTION_MENU_SELECTION) return FALSE; if (o->name) { - gboolean mouse = (data->uact == OB_USER_ACTION_MOUSE_PRESS || - data->uact == OB_USER_ACTION_MOUSE_RELEASE || - data->uact == OB_USER_ACTION_MOUSE_CLICK || - data->uact == OB_USER_ACTION_MOUSE_DOUBLE_CLICK || - data->uact == OB_USER_ACTION_MOUSE_MOTION); - - menu_show(o->name, data->x, data->y, mouse, data->client); + menu_show(o->name, data->x, data->y, data->button != 0, data->client); } return FALSE;
M openbox/keyboard.copenbox/keyboard.c

@@ -256,7 +256,7 @@ keyboard_reset_chains(0);

actions_run_acts(p->actions, OB_USER_ACTION_KEYBOARD_KEY, e->xkey.state, e->xkey.x_root, e->xkey.y_root, - OB_FRAME_CONTEXT_NONE, client); + 0, OB_FRAME_CONTEXT_NONE, client); } break; }
M openbox/menuframe.copenbox/menuframe.c

@@ -1203,7 +1203,7 @@ if (func)

func(entry, frame, client, state, data); else actions_run_acts(acts, OB_USER_ACTION_MENU_SELECTION, - state, -1, -1, OB_FRAME_CONTEXT_NONE, client); + state, -1, -1, 0, OB_FRAME_CONTEXT_NONE, client); } }
M openbox/mouse.copenbox/mouse.c

@@ -196,7 +196,7 @@ /* if not bound, then nothing to do! */

if (it == NULL) return FALSE; actions_run_acts(b->actions[a], mouse_action_to_user_action(a), - state, x, y, context, c); + state, x, y, button, context, c); return TRUE; }