Make the dock a context and add actions LowerDock and RaiseDock
[dana/openbox.git] / openbox / mouse.c
index ee14935..ddf6851 100644 (file)
@@ -66,6 +66,7 @@ ObFrameContext mouse_button_frame_context(ObFrameContext context,
     case OB_FRAME_CONTEXT_MOVE_RESIZE:
     case OB_FRAME_CONTEXT_LEFT:
     case OB_FRAME_CONTEXT_RIGHT:
+    case OB_FRAME_CONTEXT_DOCK:
         break;
     case OB_FRAME_CONTEXT_ROOT:
         x = OB_FRAME_CONTEXT_DESKTOP;
@@ -155,7 +156,7 @@ void mouse_unbind_all(void)
                     actions_act_unref(jt->data);
                 g_slist_free(b->actions[j]);
             }
-            g_free(b);
+            g_slice_free(ObMouseBinding, b);
         }
         g_slist_free(bound_contexts[i]);
         bound_contexts[i] = NULL;
@@ -200,7 +201,7 @@ void mouse_replay_pointer(void)
 {
     if (replay_pointer_needed) {
         /* replay the pointer event before any windows move */
-        XAllowEvents(obt_display, ReplayPointer, event_curtime);
+        XAllowEvents(obt_display, ReplayPointer, event_time());
         replay_pointer_needed = FALSE;
     }
 }
@@ -362,25 +363,20 @@ gboolean mouse_event(ObClient *client, XEvent *e)
     return used;
 }
 
-gboolean mouse_bind(const gchar *buttonstr, const gchar *contextstr,
+gboolean mouse_bind(const gchar *buttonstr, ObFrameContext context,
                     ObMouseAction mact, ObActionsAct *action)
 {
     guint state, button;
-    ObFrameContext context;
     ObMouseBinding *b;
     GSList *it;
 
+    g_assert(context != OB_FRAME_CONTEXT_NONE);
+
     if (!translate_button(buttonstr, &state, &button)) {
         g_message(_("Invalid button \"%s\" in mouse binding"), buttonstr);
         return FALSE;
     }
 
-    context = frame_context_from_string(contextstr);
-    if (!context) {
-        g_message(_("Invalid context \"%s\" in mouse binding"), contextstr);
-        return FALSE;
-    }
-
     for (it = bound_contexts[context]; it; it = g_slist_next(it)) {
         b = it->data;
         if (b->state == state && b->button == button) {
@@ -390,7 +386,7 @@ gboolean mouse_bind(const gchar *buttonstr, const gchar *contextstr,
     }
 
     /* add the binding */
-    b = g_new0(ObMouseBinding, 1);
+    b = g_slice_new0(ObMouseBinding);
     b->state = state;
     b->button = button;
     b->actions[mact] = g_slist_append(NULL, action);