(data->context != OB_FRAME_CONTEXT_CLIENT &&
data->context != OB_FRAME_CONTEXT_FRAME))
{
- actions_client_move(data, TRUE);
- actions_interactive_cancel_act();
- client_activate(data->client, o->here, FALSE, FALSE, TRUE);
- actions_client_move(data, FALSE);
+ if (!(data->client->iconic && actions_client_locked(data))) {
+ actions_client_move(data, TRUE);
++ actions_interactive_cancel_act();
+ client_activate(data->client, o->here, FALSE, FALSE, TRUE);
+ actions_client_move(data, FALSE);
+ }
}
} else if (data->context == OB_FRAME_CONTEXT_DESKTOP) {
/* focus action on the root window. make keybindings work for this
ob_debug_type(OB_DEBUG_APP_BUGS,
"_NET_ACTIVE_WINDOW message for window %s is "
"missing source indication");
- client_activate(client, TRUE, TRUE, TRUE,
- (e->xclient.data.l[0] == 0 ||
- e->xclient.data.l[0] == 2));
+ if (!client->locked)
+ client_activate(client, TRUE, TRUE, TRUE,
+ (e->xclient.data.l[0] == 0 ||
+ e->xclient.data.l[0] == 2));
+ } else if (msgtype == OBT_PROP_ATOM(OB_FOCUS)) {
+ client_focus(client);
} else if (msgtype == OBT_PROP_ATOM(NET_WM_MOVERESIZE)) {
ob_debug("net_wm_moveresize for 0x%lx direction %d",
client->window, e->xclient.data.l[2]);