]> Dogcows Code - chaz/openbox/commitdiff
add the move action
authorDana Jansens <danakj@orodu.net>
Fri, 22 Jun 2007 05:17:10 +0000 (05:17 +0000)
committerDana Jansens <danakj@orodu.net>
Fri, 22 Jun 2007 05:17:10 +0000 (05:17 +0000)
12 files changed:
Makefile.am
openbox/action.c
openbox/actions.c
openbox/actions.h
openbox/actions/activate.c
openbox/actions/all.c
openbox/actions/all.h
openbox/actions/move.c [new file with mode: 0644]
openbox/actions/showmenu.c
openbox/keyboard.c
openbox/menuframe.c
openbox/mouse.c

index bddea964271dbc6c8dc9aff677e88d334d577d35..61bc0b3d8c5d46c43b282fc021978c55cd3c8f59 100644 (file)
@@ -158,10 +158,12 @@ openbox_openbox_SOURCES = \
        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 \
index 2288dcb9886762ffcbbb3436093e0b98ada7ec62..cdf48df37c19aa6a08e97db55fc0dc1497837c38 100644 (file)
@@ -416,16 +416,6 @@ void setup_action_bottom_layer(ObAction **a, ObUserAction uact)
     (*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;
@@ -498,11 +488,6 @@ ActionString actionstrings[] =
         action_unfocus,
         setup_client_action
     },
-    {
-        "iconify",
-        action_iconify,
-        setup_client_action
-    },
     {
         "focustobottom",
         action_focus_order_to_bottom,
@@ -523,11 +508,6 @@ ActionString actionstrings[] =
         action_lower,
         setup_client_action
     },
-    {
-        "close",
-        action_close,
-        setup_client_action
-    },
     {
         "kill",
         action_kill,
@@ -723,11 +703,6 @@ ActionString actionstrings[] =
         action_toggle_decorations,
         setup_client_action
     },
-    {
-        "move",
-        action_move,
-        setup_action_move
-    },
     {
         "resize",
         action_resize,
@@ -1152,11 +1127,6 @@ void action_lower(union ActionData *data)
     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);
@@ -1545,19 +1515,6 @@ static guint32 pick_corner(gint x, gint y, gint cx, gint cy, gint cw, gint ch,
 #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)
 {
     ObClient *c = data->moveresize.any.c;
index b56d834a4f4efacd557c1d15289bcab985fff85b..a4308e62e2730f3b5081c7ed6e0e3902a00574c6 100644 (file)
@@ -193,6 +193,7 @@ static void actions_setup_data(ObActionsData *data,
                                guint state,
                                gint x,
                                gint y,
+                               gint button,
                                ObFrameContext con,
                                struct _ObClient *client)
 {
@@ -200,6 +201,7 @@ static void actions_setup_data(ObActionsData *data,
     data->state = state;
     data->x = x;
     data->y = y;
+    data->button = button;
     data->context = con;
     data->client = client;
 }
@@ -209,6 +211,7 @@ void actions_run_acts(GSList *acts,
                       guint state,
                       gint x,
                       gint y,
+                      gint button,
                       ObFrameContext con,
                       struct _ObClient *client)
 {
@@ -227,7 +230,7 @@ void actions_run_acts(GSList *acts,
         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))
index 8e3154b89cd7f98555d352992495591dfbe30751..7c69b10f24b1dcefb9dc9fe7e1c14bca8eddebe0 100644 (file)
@@ -46,6 +46,7 @@ struct _ObActionsData {
     guint state;
     gint x;
     gint y;
+    gint button;
 
     struct _ObClient *client;
     ObFrameContext context;
@@ -81,6 +82,7 @@ void actions_run_acts(GSList *acts,
                       guint state,
                       gint x,
                       gint y,
+                      gint button,
                       ObFrameContext con,
                       struct _ObClient *client);
 
index a431bafd027c49774cafcd740b409e7e3d100a62..c3f3f98e2b62b75a0e4b715b2b4606bb917ffcc4 100644 (file)
@@ -53,12 +53,7 @@ static gboolean run_func(ObActionsData *data, gpointer options)
     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)
         {
index e3ad2b15649e54cbad1352266daf384c00ac2a87..a65d76b529cfc686d5d436243189b7ee369c1c37 100644 (file)
@@ -12,4 +12,6 @@ void action_all_startup()
     action_cyclewindows_startup();
     action_activate_startup();
     action_breakchroot_startup();
+    action_close_startup();
+    action_move_startup();
 }
index 5db2e55db9d6ffa10007e93a77ed871aaf0ece6b..fa2524925c36ffc09b8a6775da19bfce46a01ad4 100644 (file)
@@ -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
diff --git a/openbox/actions/move.c b/openbox/actions/move.c
new file mode 100644 (file)
index 0000000..bf140c3
--- /dev/null
@@ -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;
+}
index ec22de5bde667c5915946944f8fcc70b6b060334..4b12548f6dd4bf9d070ec07a654c2e1d917d6f82 100644 (file)
@@ -1,4 +1,5 @@
 #include "openbox/actions.h"
+#include "openbox/menu.h"
 #include <glib.h>
 
 typedef struct {
@@ -49,13 +50,7 @@ static gboolean run_func(ObActionsData *data, gpointer options)
     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;
index b12ad53d4c1e8bdaab877115eeb387a4f58bf08b..6e45e5c49b6ddd624f4b46462bc1fc948729f310 100644 (file)
@@ -256,7 +256,7 @@ void keyboard_event(ObClient *client, const XEvent *e)
 
                 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;
         }
index 6a25a9aece93d8daa1bbc627f3e6257bfcfaee20..2abd87073190cb39065cb909128a0d1062d57617 100644 (file)
@@ -1203,7 +1203,7 @@ void menu_entry_frame_execute(ObMenuEntryFrame *self, guint state)
             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);
     }
 }
 
index 493e1000c1eb546674053154896504cfae599935..97abf70840e10531dc8f064a73aee1e5d70ca145 100644 (file)
@@ -196,7 +196,7 @@ static gboolean fire_binding(ObMouseAction a, ObFrameContext context,
     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;
 }
 
This page took 0.037009 seconds and 4 git commands to generate.