]> Dogcows Code - chaz/openbox/blobdiff - openbox/config.c
warp desktops when you hit the edge of the screen while moving a window
[chaz/openbox] / openbox / config.c
index 2eb8e13c4fe5623ae2459511f44453b92bc751af..96f3ba8afdeedc6520554fa52145195e16a77ed3 100644 (file)
@@ -20,6 +20,7 @@
 #include "config.h"
 #include "keyboard.h"
 #include "mouse.h"
+#include "actions.h"
 #include "prop.h"
 #include "translate.h"
 #include "client.h"
@@ -78,6 +79,7 @@ guint config_keyboard_reset_state;
 
 gint config_mouse_threshold;
 gint config_mouse_dclicktime;
+gint config_mouse_screenedgetime;
 
 guint    config_menu_hide_delay;
 gboolean config_menu_middle;
@@ -357,9 +359,9 @@ static void parse_key(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
     }
     else if ((n = parse_find_node("action", node->children))) {
         while (n) {
-            ObAction *action;
+            ObActionsAct *action;
             
-            action = action_parse(i, doc, n, OB_USER_ACTION_KEYBOARD_KEY);
+            action = actions_parse(i, doc, n);
             if (action)
                 keyboard_bind(keylist, action);
             n = parse_find_node("action", n->next);
@@ -411,9 +413,7 @@ static void parse_mouse(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
     xmlNodePtr n, nbut, nact;
     gchar *buttonstr;
     gchar *contextstr;
-    ObUserAction uact;
     ObMouseAction mact;
-    ObAction *action;
 
     mouse_unbind_all();
 
@@ -423,6 +423,8 @@ static void parse_mouse(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
         config_mouse_threshold = parse_int(doc, n);
     if ((n = parse_find_node("doubleClickTime", node)))
         config_mouse_dclicktime = parse_int(doc, n);
+    if ((n = parse_find_node("screenEdgeWarpTime", node)))
+        config_mouse_screenedgetime = parse_int(doc, n);
 
     n = parse_find_node("context", node);
     while (n) {
@@ -433,25 +435,22 @@ static void parse_mouse(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
             if (!parse_attr_string("button", nbut, &buttonstr))
                 goto next_nbut;
             if (parse_attr_contains("press", nbut, "action")) {
-                uact = OB_USER_ACTION_MOUSE_PRESS;
                 mact = OB_MOUSE_ACTION_PRESS;
             } else if (parse_attr_contains("release", nbut, "action")) {
-                uact = OB_USER_ACTION_MOUSE_RELEASE;
                 mact = OB_MOUSE_ACTION_RELEASE;
             } else if (parse_attr_contains("click", nbut, "action")) {
-                uact = OB_USER_ACTION_MOUSE_CLICK;
                 mact = OB_MOUSE_ACTION_CLICK;
             } else if (parse_attr_contains("doubleclick", nbut,"action")) {
-                uact = OB_USER_ACTION_MOUSE_DOUBLE_CLICK;
                 mact = OB_MOUSE_ACTION_DOUBLE_CLICK;
             } else if (parse_attr_contains("drag", nbut, "action")) {
-                uact = OB_USER_ACTION_MOUSE_MOTION;
                 mact = OB_MOUSE_ACTION_MOTION;
             } else
                 goto next_nbut;
             nact = parse_find_node("action", nbut->children);
             while (nact) {
-                if ((action = action_parse(i, doc, nact, uact)))
+                ObActionsAct *action;
+
+                if ((action = actions_parse(i, doc, nact)))
                     mouse_bind(buttonstr, contextstr, mact, action);
                 nact = parse_find_node("action", nact->next);
             }
@@ -764,23 +763,6 @@ typedef struct
     const gchar *actname;
 } ObDefKeyBind;
 
-static void bind_default_keyboard()
-{
-    ObDefKeyBind *it;
-    ObDefKeyBind binds[] = {
-        { "A-Tab", "NextWindow" },
-        { "S-A-Tab", "PreviousWindow" },
-        { "A-F4", "Close" },
-        { NULL, NULL }
-    };
-
-    for (it = binds; it->key; ++it) {
-        GList *l = g_list_append(NULL, g_strdup(it->key));
-        keyboard_bind(l, action_from_string(it->actname,
-                                            OB_USER_ACTION_KEYBOARD_KEY));
-    }
-}
-
 typedef struct
 {
     const gchar *button;
@@ -825,10 +807,10 @@ static void bind_default_mouse()
         { "Left", "AllDesktops", OB_MOUSE_ACTION_CLICK, "Raise" },
         { "Left", "Shade", OB_MOUSE_ACTION_CLICK, "Raise" },
         { "Left", "Close", OB_MOUSE_ACTION_CLICK, "Close" },
-        { "Left", "Maximize", OB_MOUSE_ACTION_CLICK, "ToggleMaximizeFull" },
+        { "Left", "Maximize", OB_MOUSE_ACTION_CLICK, "Maximize" },
         { "Left", "Iconify", OB_MOUSE_ACTION_CLICK, "Iconify" },
-        { "Left", "AllDesktops", OB_MOUSE_ACTION_CLICK, "ToggleOmnipresent" },
-        { "Left", "Shade", OB_MOUSE_ACTION_CLICK, "ToggleShade" },
+        { "Left", "AllDesktops", OB_MOUSE_ACTION_CLICK, "Omnipresent" },
+        { "Left", "Shade", OB_MOUSE_ACTION_CLICK, "Shade" },
         { "Left", "TLCorner", OB_MOUSE_ACTION_MOTION, "Resize" },
         { "Left", "TRCorner", OB_MOUSE_ACTION_MOTION, "Resize" },
         { "Left", "BLCorner", OB_MOUSE_ACTION_MOTION, "Resize" },
@@ -839,25 +821,9 @@ static void bind_default_mouse()
         { NULL, NULL, 0, NULL }
     };
 
-    for (it = binds; it->button; ++it) {
-        ObUserAction uact;
-        switch (it->mact) {
-        case OB_MOUSE_ACTION_PRESS:
-            uact = OB_USER_ACTION_MOUSE_PRESS; break;
-        case OB_MOUSE_ACTION_RELEASE:
-            uact = OB_USER_ACTION_MOUSE_RELEASE; break;
-        case OB_MOUSE_ACTION_CLICK:
-            uact = OB_USER_ACTION_MOUSE_CLICK; break;
-        case OB_MOUSE_ACTION_DOUBLE_CLICK:
-            uact = OB_USER_ACTION_MOUSE_DOUBLE_CLICK; break;
-        case OB_MOUSE_ACTION_MOTION:
-            uact = OB_USER_ACTION_MOUSE_MOTION; break;
-        default:
-            g_assert_not_reached();
-        }
+    for (it = binds; it->button; ++it)
         mouse_bind(it->button, it->context, it->mact,
-                   action_from_string(it->actname, uact));
-    }
+                   actions_parse_string(it->actname));
 }
 
 void config_startup(ObParseInst *i)
@@ -920,12 +886,11 @@ void config_startup(ObParseInst *i)
     translate_key("C-g", &config_keyboard_reset_state,
                   &config_keyboard_reset_keycode);
 
-    bind_default_keyboard();
-
     parse_register(i, "keyboard", parse_keyboard, NULL);
 
     config_mouse_threshold = 8;
     config_mouse_dclicktime = 200;
+    config_mouse_screenedgetime = 400;
 
     bind_default_mouse();
 
This page took 0.025316 seconds and 4 git commands to generate.