/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
focus.c for the Openbox window manager
/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
focus.c for the Openbox window manager
- focus_cycle(TRUE, TRUE, TRUE, TRUE, TRUE, TRUE);
+ focus_cycle(TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, CurrentTime);
focus_indicator.right.obwin.type = Window_Internal;
focus_indicator.bottom.obwin.type = Window_Internal;
focus_indicator.right.obwin.type = Window_Internal;
focus_indicator.bottom.obwin.type = Window_Internal;
attr.override_redirect = True;
attr.background_pixel = BlackPixel(ob_display, ob_screen);
focus_indicator.top.win =
createWindow(RootWindow(ob_display, ob_screen),
attr.override_redirect = True;
attr.background_pixel = BlackPixel(ob_display, ob_screen);
focus_indicator.top.win =
createWindow(RootWindow(ob_display, ob_screen),
focus_indicator.left.win =
createWindow(RootWindow(ob_display, ob_screen),
focus_indicator.left.win =
createWindow(RootWindow(ob_display, ob_screen),
focus_indicator.right.win =
createWindow(RootWindow(ob_display, ob_screen),
focus_indicator.right.win =
createWindow(RootWindow(ob_display, ob_screen),
focus_indicator.bottom.win =
createWindow(RootWindow(ob_display, ob_screen),
focus_indicator.bottom.win =
createWindow(RootWindow(ob_display, ob_screen),
stacking_add(INTERNAL_AS_WINDOW(&focus_indicator.top));
stacking_add(INTERNAL_AS_WINDOW(&focus_indicator.left));
stacking_add(INTERNAL_AS_WINDOW(&focus_indicator.top));
stacking_add(INTERNAL_AS_WINDOW(&focus_indicator.left));
- XSetInputFocus(ob_display, PointerRoot, RevertToNone, event_lasttime);
+ XSetInputFocus(ob_display, PointerRoot, RevertToNone, CurrentTime);
#endif
/* when nothing will be focused, send focus to the backup target */
XSetInputFocus(ob_display, screen_support_win, RevertToNone,
#endif
/* when nothing will be focused, send focus to the backup target */
XSetInputFocus(ob_display, screen_support_win, RevertToNone,
- focus_cycle(TRUE, TRUE, TRUE, TRUE, TRUE, TRUE);
+ focus_cycle(TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, CurrentTime);
active = client ? client->window : None;
PROP_SET32(RootWindow(ob_display, ob_screen),
net_active_window, window, active);
active = client ? client->window : None;
PROP_SET32(RootWindow(ob_display, ob_screen),
net_active_window, window, active);
if ((type == OB_FOCUS_FALLBACK_UNFOCUSING
|| type == OB_FOCUS_FALLBACK_CLOSED) && old) {
if (old->transient_for) {
if ((type == OB_FOCUS_FALLBACK_UNFOCUSING
|| type == OB_FOCUS_FALLBACK_CLOSED) && old) {
if (old->transient_for) {
- if ((target = client_under_pointer()) &&
- client_search_transient
- (client_search_top_transient(target), old))
- {
- trans = TRUE;
+ if ((target = client_under_pointer())) {
+ GSList *sit;
+
+ sit = client_search_top_transients(target);
+ for (; sit; sit = g_slist_next(sit))
+ if (client_search_transient(sit->data, old)) {
+ trans = TRUE;
+ break;
+ }
/* unfocus any focused clients.. they can be focused by Pointer events
and such, and then when I try focus them, I won't get a FocusIn event
/* unfocus any focused clients.. they can be focused by Pointer events
and such, and then when I try focus them, I won't get a FocusIn event
- ob_rr_theme->handle_height +
- ob_rr_theme->bwidth * 2);
+ MAX(1, MAX(ob_rr_theme->paddingx,
+ ob_rr_theme->paddingy)) * 2 +
+ ob_rr_theme->fbwidth * 2);
ft->type == OB_CLIENT_TYPE_MENU ||
ft->type == OB_CLIENT_TYPE_UTILITY))) &&
((ft->can_focus || ft->focus_notify) &&
ft->type == OB_CLIENT_TYPE_MENU ||
ft->type == OB_CLIENT_TYPE_UTILITY))) &&
((ft->can_focus || ft->focus_notify) &&
}
void focus_cycle(gboolean forward, gboolean linear, gboolean interactive,
}
void focus_cycle(gboolean forward, gboolean linear, gboolean interactive,
- gboolean dialog, gboolean done, gboolean cancel)
+ gboolean dialog, gboolean done, gboolean cancel, Time time)
- gboolean dialog, gboolean done, gboolean cancel)
+ gboolean dialog, gboolean done, gboolean cancel,
+ Time time)