+ moveresize_client->frame->area.x,
+ moveresize_client->frame->area.y);
+}
+
+static void do_resize()
+{
+ gint x, y, w, h, lw, lh;
+
+ /* see if it is actually going to resize */
+ x = 0;
+ y = 0;
+ w = cur_x;
+ h = cur_y;
+ client_try_configure(moveresize_client, &x, &y, &w, &h,
+ &lw, &lh, TRUE);
+ if (w == moveresize_client->area.width &&
+ h == moveresize_client->area.height)
+ {
+ return;
+ }
+
+#ifdef SYNC
+ if (config_resize_redraw && extensions_sync &&
+ moveresize_client->sync_request && moveresize_client->sync_counter)
+ {
+ XEvent ce;
+ XSyncValue val;
+
+ /* are we already waiting for the sync counter to catch up? */
+ if (waiting_for_sync)
+ return;
+
+ /* increment the value we're waiting for */
+ ++moveresize_client->sync_counter_value;
+ XSyncIntToValue(&val, moveresize_client->sync_counter_value);
+
+ /* tell the client what we're waiting for */
+ ce.xclient.type = ClientMessage;
+ ce.xclient.message_type = prop_atoms.wm_protocols;
+ ce.xclient.display = ob_display;
+ ce.xclient.window = moveresize_client->window;
+ ce.xclient.format = 32;
+ ce.xclient.data.l[0] = prop_atoms.net_wm_sync_request;
+ ce.xclient.data.l[1] = event_curtime;
+ ce.xclient.data.l[2] = XSyncValueLow32(val);
+ ce.xclient.data.l[3] = XSyncValueHigh32(val);
+ ce.xclient.data.l[4] = 0l;
+ XSendEvent(ob_display, moveresize_client->window, FALSE,
+ NoEventMask, &ce);
+
+ waiting_for_sync = TRUE;
+ }
+#endif
+
+ get_resize_position(&x, &y, FALSE);
+ client_configure(moveresize_client, x, y, cur_x, cur_y, TRUE, FALSE, FALSE);
+
+ /* this would be better with a fixed width font ... XXX can do it better
+ if there are 2 text boxes */
+ if (config_resize_popup_show == 2 || /* == "Always" */
+ (config_resize_popup_show == 1 && /* == "Nonpixel" */
+ moveresize_client->size_inc.width > 1 &&
+ moveresize_client->size_inc.height > 1))
+ popup_coords(moveresize_client, "%d x %d",
+ moveresize_client->logical_size.width,
+ moveresize_client->logical_size.height);