bool set_layout(monitor_t *m, desktop_t *d, layout_t l)
{
+ layout_t actual_layout = IS_SINGLE_MONOCLE(d) ? LAYOUT_MONOCLE : l;
+ bool actual_layout_changed = (d->layout != actual_layout);
+
if (d->layout == l) {
return false;
}
handle_presel_feedbacks(m, d);
+ if (!actual_layout_changed) {
+ return true;
+ }
+
arrange(m, d);
- put_status(SBSC_MASK_DESKTOP_LAYOUT, "desktop_layout 0x%08X 0x%08X %s\n", m->id, d->id, LAYOUT_STR(l));
+ put_status(SBSC_MASK_DESKTOP_LAYOUT, "desktop_layout 0x%08X 0x%08X %s\n", m->id, d->id, LAYOUT_STR(actual_layout));
if (d == m->desk) {
put_status(SBSC_MASK_REPORT);