#include "openbox.h"
+#include "dock.h"
#include "prop.h"
#include "startup.h"
#include "config.h"
if (ob_state == State_Starting)
return;
+ dock_configure();
screen_update_struts();
for (it = client_list; it; it = it->next)
/* show windows from top to bottom */
for (it = stacking_list; it != NULL; it = it->next) {
- Client *c = it->data;
- if (!c->frame->visible && client_should_show(c))
- frame_show(c->frame);
+ if (WINDOW_IS_CLIENT(it->data)) {
+ Client *c = it->data;
+ if (!c->frame->visible && client_should_show(c))
+ frame_show(c->frame);
+ }
}
/* hide windows from bottom to top */
for (it = g_list_last(stacking_list); it != NULL; it = it->prev) {
- Client *c = it->data;
- if (c->frame->visible && !client_should_show(c))
- frame_hide(c->frame);
+ if (WINDOW_IS_CLIENT(it->data)) {
+ Client *c = it->data;
+ if (c->frame->visible && !client_should_show(c))
+ frame_hide(c->frame);
+ }
}
/* focus the last focused window on the desktop, and ignore enter events
if (show) {
/* bottom to top */
for (it = g_list_last(stacking_list); it != NULL; it = it->prev) {
- Client *client = it->data;
- if (client->frame->visible && !client_should_show(client))
- frame_hide(client->frame);
+ if (WINDOW_IS_CLIENT(it->data)) {
+ Client *client = it->data;
+ if (client->frame->visible && !client_should_show(client))
+ frame_hide(client->frame);
+ }
}
} else {
/* top to bottom */
for (it = stacking_list; it != NULL; it = it->next) {
- Client *client = it->data;
- if (!client->frame->visible && client_should_show(client))
- frame_show(client->frame);
+ if (WINDOW_IS_CLIENT(it->data)) {
+ Client *client = it->data;
+ if (!client->frame->visible && client_should_show(client))
+ frame_show(client->frame);
+ }
}
}
/* apply to the 'all desktops' strut */
STRUT_ADD(strut[screen_num_desktops], c->strut);
}
+
+ for (i = 0; i < screen_num_desktops; ++i)
+ STRUT_ADD(strut[i], dock_strut);
+
screen_update_area();
}