From: Dana Jansens Date: Wed, 1 Oct 2003 17:28:12 +0000 (+0000) Subject: define DEBUG, NDEBUG, and G_DISABLE_ASSERTS X-Git-Url: https://git.dogcows.com/gitweb?a=commitdiff_plain;h=6f5292c87ece138a2b80d102ba0919b105b1839a;p=chaz%2Fopenbox define DEBUG, NDEBUG, and G_DISABLE_ASSERTS --- diff --git a/m4/openbox.m4 b/m4/openbox.m4 index 7c19ab4b..db592e91 100644 --- a/m4/openbox.m4 +++ b/m4/openbox.m4 @@ -61,12 +61,18 @@ AC_DEFUN([OB_COMPILER_FLAGS], 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 diff --git a/openbox/action.c b/openbox/action.c index f7389cb3..5f60019e 100644 --- a/openbox/action.c +++ b/openbox/action.c @@ -798,6 +798,13 @@ ActionString actionstrings[] = } }; +/* 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; @@ -810,11 +817,7 @@ ObAction *action_from_string(const gchar *name, ObUserAction uact) 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) @@ -889,6 +892,7 @@ ObAction *action_parse(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, act->data.cycle.dialog = parse_bool(doc, n); } } + INTERACTIVE_LIMIT(act, uact); g_free(actname); } return act; diff --git a/openbox/menu.c b/openbox/menu.c index 5efacc2a..1585a56d 100644 --- a/openbox/menu.c +++ b/openbox/menu.c @@ -290,7 +290,13 @@ void menu_show(gchar *name, gint x, gint y, ObClient *client) 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);