+ bool desk_changed = (m != mon || m->desk != d);
+ bool has_input_focus = false;
+
+ if (mon != m) {
+ mon = m;
+
+ if (pointer_follows_monitor) {
+ center_pointer(m->rectangle);
+ }
+
+ put_status(SBSC_MASK_MONITOR_FOCUS, "monitor_focus 0x%08X\n", m->id);
+ }
+
+ if (m->desk != d) {
+ show_desktop(d);
+ set_input_focus(n);
+ has_input_focus = true;
+ hide_desktop(m->desk);
+ m->desk = d;
+ }
+
+ if (desk_changed) {
+ ewmh_update_current_desktop();
+ put_status(SBSC_MASK_DESKTOP_FOCUS, "desktop_focus 0x%08X 0x%08X\n", m->id, d->id);
+ }