inline void client_action_end(union ActionData *data)
{
if (config_focus_follow)
- if (data->any.context != OB_FRAME_CONTEXT_CLIENT) {
- if (!data->any.button) {
- grab_pointer(FALSE, FALSE, OB_CURSOR_NONE);
- } else {
- ObClient *c;
-
- /* usually this is sorta redundant, but with a press action
- the enter event will come as a GrabNotify which is
- ignored, so this will handle that case */
- if ((c = client_under_pointer()))
- event_enter_client(c);
- }
- }
+ if (data->any.context != OB_FRAME_CONTEXT_CLIENT && !data->any.button)
+ grab_pointer(FALSE, FALSE, OB_CURSOR_NONE);
}
typedef struct
(*a)->data.cycle.forward = TRUE;
(*a)->data.cycle.dialog = TRUE;
(*a)->data.cycle.dock_windows = FALSE;
+ (*a)->data.cycle.all_desktops = FALSE;
}
void setup_action_cycle_windows_previous(ObAction **a, ObUserAction uact)
(*a)->data.cycle.forward = FALSE;
(*a)->data.cycle.dialog = TRUE;
(*a)->data.cycle.dock_windows = FALSE;
+ (*a)->data.cycle.all_desktops = FALSE;
}
void setup_action_movefromedge_north(ObAction **a, ObUserAction uact)
act->data.cycle.dialog = parse_bool(doc, n);
if ((n = parse_find_node("panels", node->xmlChildrenNode)))
act->data.cycle.dock_windows = parse_bool(doc, n);
+ if ((n = parse_find_node("allDesktops",
+ node->xmlChildrenNode)))
+ act->data.cycle.all_desktops = parse_bool(doc, n);
} else if (act->func == action_directional_focus) {
if ((n = parse_find_node("dialog", node->xmlChildrenNode)))
act->data.interdiraction.dialog = parse_bool(doc, n);
if (cit == c) break;
if (client_normal(cit) == client_normal(c) &&
- cit->layer == c->layer &&
- cit->frame->visible &&
- !client_search_transient(c, cit))
+ cit->layer == c->layer &&
+ cit->frame->visible &&
+ !client_search_transient(c, cit))
{
if (RECT_INTERSECTS_RECT(cit->frame->area, c->frame->area)) {
raise = TRUE;
data->sendto.desk == DESKTOP_ALL) {
client_set_desktop(c, data->sendto.desk, data->sendto.follow);
if (data->sendto.follow)
- screen_set_desktop(data->sendto.desk);
+ screen_set_desktop(data->sendto.desk, TRUE);
}
}
if (data->desktop.desk < screen_num_desktops ||
data->desktop.desk == DESKTOP_ALL)
{
- screen_set_desktop(data->desktop.desk);
+ screen_set_desktop(data->desktop.desk, TRUE);
if (data->inter.any.interactive)
screen_desktop_popup(data->desktop.desk, TRUE);
}
} else if (data->inter.cancel) {
- screen_set_desktop(first);
+ screen_set_desktop(first, TRUE);
}
if (!data->inter.any.interactive || data->inter.final) {
!data->sendtodir.inter.final ||
data->sendtodir.inter.cancel)
{
- screen_set_desktop(d);
+ screen_set_desktop(d, TRUE);
}
}
{
client_set_desktop(c, d, data->sendtodir.follow);
if (data->sendtodir.follow)
- screen_set_desktop(d);
+ screen_set_desktop(d, TRUE);
}
}
void action_desktop_last(union ActionData *data)
{
- screen_set_desktop(screen_last_desktop);
+ screen_set_desktop(screen_last_desktop, TRUE);
}
void action_toggle_decorations(union ActionData *data)
c->frame->size.right,
c->area.height + c->frame->size.top +
c->frame->size.bottom));
- const gchar *c;
- if (corner == prop_atoms.net_wm_moveresize_size_topright)
- c = "topright";
- else if (corner == prop_atoms.net_wm_moveresize_size_top)
- c = "top";
- else if (corner == prop_atoms.net_wm_moveresize_size_topleft)
- c = "topleft";
- else if (corner == prop_atoms.net_wm_moveresize_size_right)
- c = "right";
- else if (corner == prop_atoms.net_wm_moveresize_move)
- c = "middle";
- else if (corner == prop_atoms.net_wm_moveresize_size_left)
- c = "left";
- else if (corner == prop_atoms.net_wm_moveresize_size_bottomright)
- c = "bottomright";
- else if (corner == prop_atoms.net_wm_moveresize_size_bottom)
- c = "bottom";
- else if (corner == prop_atoms.net_wm_moveresize_size_bottomleft)
- c = "bottomleft";
- ob_debug("corner: %s\n", c);
}
moveresize_start(c, data->any.x, data->any.y, data->any.button, corner);
event_halt_focus_delay();
focus_cycle(data->cycle.forward,
+ data->cycle.all_desktops,
data->cycle.dock_windows,
data->cycle.linear, data->any.interactive,
data->cycle.dialog,
void action_toggle_show_desktop(union ActionData *data)
{
- screen_show_desktop(!screen_showing_desktop);
+ screen_show_desktop(!screen_showing_desktop, TRUE);
}
void action_show_desktop(union ActionData *data)
{
- screen_show_desktop(TRUE);
+ screen_show_desktop(TRUE, TRUE);
}
void action_unshow_desktop(union ActionData *data)
{
- screen_show_desktop(FALSE);
+ screen_show_desktop(FALSE, TRUE);
}
void action_break_chroot(union ActionData *data)