screen_set_num_desktops(d);
} else if (msgtype == prop_atoms.net_showing_desktop) {
screen_show_desktop(e->xclient.data.l[0] != 0);
+ } else if (msgtype == prop_atoms.ob_control) {
+ if (e->xclient.data.l[0] == 1)
+ ob_reconfigure();
+ else if (e->xclient.data.l[0] == 2)
+ ob_restart();
}
break;
case PropertyNotify:
client->frame->size.left + client->frame->size.right;
gint fh = h +
client->frame->size.top + client->frame->size.bottom;
+ /* make this rude for size-only changes but not for position
+ changes.. */
+ gboolean moving = ((e->xconfigurerequest.value_mask & CWX) ||
+ (e->xconfigurerequest.value_mask & CWY));
+
client_find_onscreen(client, &newx, &newy, fw, fh,
- FALSE);
+ !moving);
if (e->xconfigurerequest.value_mask & CWX)
x = newx;
if (e->xconfigurerequest.value_mask & CWY)
b == prop_atoms.wm_icon_name)) {
continue;
}
- if ((a == prop_atoms.net_wm_icon ||
- a == prop_atoms.kwm_win_icon)
- &&
- (b == prop_atoms.net_wm_icon ||
- b == prop_atoms.kwm_win_icon))
+ if (a == prop_atoms.net_wm_icon &&
+ b == prop_atoms.net_wm_icon)
continue;
XPutBackEvent(ob_display, &ce);
else if (msgtype == prop_atoms.net_wm_strut) {
client_update_strut(client);
}
- else if (msgtype == prop_atoms.net_wm_icon ||
- msgtype == prop_atoms.kwm_win_icon) {
+ else if (msgtype == prop_atoms.net_wm_icon) {
client_update_icons(client);
}
+ else if (msgtype == prop_atoms.net_wm_user_time) {
+ client_update_user_time(client, TRUE);
+ }
else if (msgtype == prop_atoms.sm_client_id) {
client_update_sm_client_id(client);
}