make the new placement restrictions not affect !normal windows like panels
Dana Jansens danakj@orodu.net
3 files changed,
12 insertions(+),
9 deletions(-)
M
openbox/client.c
→
openbox/client.c
@@ -300,7 +300,8 @@
dispatch_client(Event_Client_New, self, 0, 0); /* make sure the window is visible */ - client_move_onscreen(self, TRUE); + if (client_normal(self)) + client_move_onscreen(self, TRUE); screen_update_areas();@@ -1346,8 +1347,11 @@
if (!PROP_GETA32(self->window, net_wm_strut, cardinal, &data, &num)) { STRUT_SET(self->strut, 0, 0, 0, 0); } else { - if (num == 4) + if (num == 4) { + g_message("new strut: %d %d %d %d", + data[0], data[2], data[1], data[3]); STRUT_SET(self->strut, data[0], data[2], data[1], data[3]); + } else STRUT_SET(self->strut, 0, 0, 0, 0); g_free(data);
M
openbox/event.c
→
openbox/event.c
@@ -776,7 +776,7 @@ e->xconfigurerequest.width : client->area.width;
h = (e->xconfigurerequest.value_mask & CWHeight) ? e->xconfigurerequest.height : client->area.height; - { + if (client_normal(client)) { int newx = x; int newy = y; client_find_onscreen(client, &newx, &newy, w, h, TRUE);@@ -974,7 +974,7 @@ else
h = client->area.y; client->gravity = tmpg; - { + if (client_normal(client)) { int newx = x; int newy = y; client_find_onscreen(client, &newx, &newy, w, h, TRUE);@@ -1031,8 +1031,10 @@ else if (msgtype == prop_atoms.wm_protocols) {
client_update_protocols(client); client_setup_decor_and_functions(client); } - else if (msgtype == prop_atoms.net_wm_strut) + else if (msgtype == prop_atoms.net_wm_strut) { + g_message("strut change"); client_update_strut(client); + } else if (msgtype == prop_atoms.net_wm_icon || msgtype == prop_atoms.kwm_win_icon) client_update_icons(client);
M
openbox/screen.c
→
openbox/screen.c
@@ -637,8 +637,6 @@ void screen_update_areas()
{ guint i, x; guint32 *dims; - Rect **old_area = area; - Rect **rit; GList *it; g_free(monitor_area);@@ -657,7 +655,6 @@ area[i] = NULL;
dims = g_new(guint32, 4 * screen_num_desktops); - rit = old_area; for (i = 0; i < screen_num_desktops + 1; ++i) { Strut s; int l, r, t, b;@@ -800,7 +797,7 @@ dims[(i * 4) + 3] = area[i][screen_num_monitors].height;
} } PROP_SETA32(RootWindow(ob_display, ob_screen), net_workarea, cardinal, - dims, 4 * screen_num_desktops); + dims, 4 * screen_num_desktops); g_free(dims); }