X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Faction.c;h=a30e604715d0581afc60b887123e57fd39f0af7b;hb=c234ed9ecd9d5228744aae018768ff0c04f2d217;hp=e98677b9ad44ef8fe0cf4a199d091642745f3b1c;hpb=8cb6e95eb6afb7204052b07748ffe265700f5d2c;p=chaz%2Fopenbox diff --git a/openbox/action.c b/openbox/action.c index e98677b9..a30e6047 100644 --- a/openbox/action.c +++ b/openbox/action.c @@ -29,6 +29,7 @@ #include "grab.h" #include "keyboard.h" #include "event.h" +#include "dock.h" #include "config.h" #include "mainloop.h" @@ -1071,7 +1072,8 @@ void action_focus(union ActionData *data) void action_unfocus (union ActionData *data) { - client_unfocus(data->client.any.c); + if (data->client.any.c == focus_client); + focus_fallback(OB_FOCUS_FALLBACK_UNFOCUSING); } void action_iconify(union ActionData *data) @@ -1093,17 +1095,19 @@ void action_raiselower(union ActionData *data) gboolean raise = FALSE; for (it = stacking_list; it; it = g_list_next(it)) { - ObClient *cit = it->data; - - if (cit == c) break; - if (client_normal(cit) == client_normal(c) && - cit->layer == c->layer && - cit->frame->visible && - !client_search_transient(c, cit)) - { - if (RECT_INTERSECTS_RECT(cit->frame->area, c->frame->area)) { - raise = TRUE; - break; + if (WINDOW_IS_CLIENT(it->data)) { + ObClient *cit = it->data; + + if (cit == c) break; + if (client_normal(cit) == client_normal(c) && + cit->layer == c->layer && + cit->frame->visible && + !client_search_transient(c, cit)) + { + if (RECT_INTERSECTS_RECT(cit->frame->area, c->frame->area)) { + raise = TRUE; + break; + } } } }