- client_configure(self, self->area.x, self->area.y,
- self->area.width, self->area.height,
- FALSE, TRUE);
+ gint x, y, w, h, lw, lh;
+
+ /* make sure the client's sizes are within its bounds, but only
+ reconfigure the window if it needs to. emacs will update its
+ normal hints every time it receives a conigurenotify */
+ RECT_TO_DIMS(self->area, x, y, w, h);
+ if (!force)
+ client_try_configure(self, &x, &y, &w, &h, &lw, &lh, FALSE);
+ if (force || !RECT_EQUAL_DIMS(self->area, x, y, w, h)) {
+ gulong ignore_start;
+
+ ob_debug("Reconfiguring client x %d y %d w %d h %d\n",
+ x, y, w, h);
+ ignore_start = event_start_ignore_all_enters();
+ client_configure(self, x, y, w, h, FALSE, TRUE);
+ event_end_ignore_all_enters(ignore_start);
+ }