FLAGS=""
+ if test "$DEBUG" = "yes"; then
+ FLAGS="-DDEBUG"
+ else
+ FLAGS="-DNDEBUG -DG_DISABLE_ASSERT"
+ fi
+
# Check what compiler we are using
AC_MSG_CHECKING([for GNU CC])
if test "$GCC" = "yes"; then
AC_MSG_RESULT([yes])
if test "$DEBUG" = "yes"; then
- FLAGS="-g -fno-inline"
+ FLAGS="$FLAGS -g -fno-inline"
FLAGS="$FLAGS -Wall -Wsign-compare -Waggregate-return"
FLAGS="$FLAGS -Wcast-qual -Wbad-function-cast -Wpointer-arith"
# for Python.h
}
};
+/* only key bindings can be interactive. thus saith the xor.
+ because of how the mouse is grabbed, mouse events dont even get
+ read during interactive events, so no dice! >:) */
+#define INTERACTIVE_LIMIT(a, uact) \
+ if (uact != OB_USER_ACTION_KEYBOARD_KEY) \
+ a->data.any.interactive = FALSE;
+
ObAction *action_from_string(const gchar *name, ObUserAction uact)
{
ObAction *a = NULL;
a = action_new(actionstrings[i].func);
if (actionstrings[i].setup)
actionstrings[i].setup(&a, uact);
- /* only key bindings can be interactive. thus saith the xor.
- because of how the mouse is grabbed, mouse events dont even get
- read during interactive events, so no dice! >:) */
- if (uact != OB_USER_ACTION_KEYBOARD_KEY)
- a->data.any.interactive = FALSE;
+ INTERACTIVE_LIMIT(a, uact);
break;
}
if (!exist)
act->data.cycle.dialog = parse_bool(doc, n);
}
}
+ INTERACTIVE_LIMIT(act, uact);
g_free(actname);
}
return act;
menu_frame_hide_all();
frame = menu_frame_new(self, client);
- menu_frame_move(frame, x - ob_rr_theme->bwidth, y - ob_rr_theme->bwidth);
+ if (client && x < 0 && y < 0)
+ menu_frame_move(frame,
+ client->frame->area.x + client->frame->size.left,
+ client->frame->area.y + client->frame->size.top);
+ else
+ menu_frame_move(frame,
+ x - ob_rr_theme->bwidth, y - ob_rr_theme->bwidth);
menu_frame_show(frame, NULL);
if (frame->entries)
menu_frame_select_next(frame);