all repos — openbox @ fde5ca09e9ea7ab08b6dc06723f19bad6d03af22

openbox fork - make it a bit more like ryudo

when restoring from show-desktop mode because a window is going to be focused, then don't restore focus how it was before showing the desktop.
Dana Jansens danakj@orodu.net
commit

fde5ca09e9ea7ab08b6dc06723f19bad6d03af22

parent

9389c7e6c80edc216173981a69eda525d6111547

5 files changed, 8 insertions(+), 8 deletions(-)

jump to
M openbox/action.copenbox/action.c

@@ -1932,17 +1932,17 @@ }

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)
M openbox/client.copenbox/client.c

@@ -3261,7 +3261,7 @@ go moving on us */

event_halt_focus_delay(); if (client_normal(self) && screen_showing_desktop) - screen_show_desktop(FALSE); + screen_show_desktop(FALSE, FALSE); if (self->iconic) client_iconify(self, FALSE, here); if (self->desktop != DESKTOP_ALL &&
M openbox/event.copenbox/event.c

@@ -604,7 +604,7 @@ guint d = e->xclient.data.l[0];

if (d > 0) screen_set_num_desktops(d); } else if (msgtype == prop_atoms.net_showing_desktop) { - screen_show_desktop(e->xclient.data.l[0] != 0); + screen_show_desktop(e->xclient.data.l[0] != 0, TRUE); } else if (msgtype == prop_atoms.ob_control) { if (e->xclient.data.l[0] == 1) ob_reconfigure();
M openbox/screen.copenbox/screen.c

@@ -860,7 +860,7 @@ screen_desktop_names[i] = g_strdup_printf("Desktop %i", i + 1);

} } -void screen_show_desktop(gboolean show) +void screen_show_desktop(gboolean show, gboolean restore_focus) { GList *it;

@@ -895,7 +895,7 @@ (c->desktop == screen_desktop || c->desktop == DESKTOP_ALL) &&

client_focus(it->data)) break; } - } else { + } else if (restore_focus) { ObClient *c; /* use NULL for the "old" argument because the desktop was focused
M openbox/screen.hopenbox/screen.h

@@ -76,7 +76,7 @@ void screen_desktop_popup(guint d, gboolean show);

/*! Shows and focuses the desktop and hides all the client windows, or returns to the normal state, showing client windows. */ -void screen_show_desktop(gboolean show); +void screen_show_desktop(gboolean show, gboolean restore_focus); /*! Updates the desktop layout from the root property if available */ void screen_update_layout();