X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fmoveresize.c;h=69dc18ba1075f5d3d83bb61c81383fb2de9f29e3;hb=ae624a1487fd7db9291c4de1a3b2c34fcab89ef9;hp=837f3e92feec451dd59993944d42fa9f785fc36e;hpb=66db9aef3476e68cd062af86768f485a2fba829f;p=chaz%2Fopenbox diff --git a/openbox/moveresize.c b/openbox/moveresize.c index 837f3e92..69dc18ba 100644 --- a/openbox/moveresize.c +++ b/openbox/moveresize.c @@ -68,6 +68,7 @@ static void client_dest(ObClient *client, gpointer data) void moveresize_startup(gboolean reconfig) { popup = popup_new(FALSE); + popup_set_text_align(popup, RR_JUSTIFY_CENTER); if (!reconfig) client_add_destroy_notify(client_dest, NULL); @@ -152,12 +153,11 @@ static void popup_coords(ObClient *c, const gchar *format, gint a, gint b) void moveresize_start(ObClient *c, gint x, gint y, guint b, guint32 cnr) { ObCursor cur; - - moving = (cnr == prop_atoms.net_wm_moveresize_move || - cnr == prop_atoms.net_wm_moveresize_move_keyboard); + gboolean mv = (cnr == prop_atoms.net_wm_moveresize_move || + cnr == prop_atoms.net_wm_moveresize_move_keyboard); if (moveresize_in_progress || !c->frame->visible || - !(moving ? + !(mv ? (c->functions & OB_CLIENT_FUNC_MOVE) : (c->functions & OB_CLIENT_FUNC_RESIZE))) return; @@ -197,6 +197,7 @@ void moveresize_start(ObClient *c, gint x, gint y, guint b, guint32 cnr) frame_end_iconify_animation(c->frame); + moving = mv; moveresize_client = c; start_cx = c->area.x; start_cy = c->area.y; @@ -297,7 +298,8 @@ void moveresize_end(gboolean cancel) get_resize_position(&x, &y, cancel); client_configure(moveresize_client, x, y, (cancel ? start_cw : cur_x), - (cancel ? start_ch : cur_y), TRUE, TRUE); + (cancel ? start_ch : cur_y), + TRUE, TRUE, FALSE); } moveresize_in_progress = FALSE; @@ -316,7 +318,8 @@ static void do_move(gboolean keyboard) client_configure(moveresize_client, cur_x, cur_y, moveresize_client->area.width, - moveresize_client->area.height, TRUE, FALSE); + moveresize_client->area.height, + TRUE, FALSE, FALSE); if (config_resize_popup_show == 2) /* == "Always" */ popup_coords(moveresize_client, "%d x %d", moveresize_client->frame->area.x, @@ -325,31 +328,32 @@ static void do_move(gboolean keyboard) 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; - gint x, y, w, h, lw, lh; /* are we already waiting for the sync counter to catch up? */ if (waiting_for_sync) return; - /* 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; - } - /* increment the value we're waiting for */ ++moveresize_client->sync_counter_value; XSyncIntToValue(&val, moveresize_client->sync_counter_value); @@ -372,11 +376,8 @@ static void do_resize() } #endif - { - gint x, y; - get_resize_position(&x, &y, FALSE); - client_configure(moveresize_client, x, y, cur_x, cur_y, TRUE, FALSE); - } + 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 */ @@ -415,7 +416,7 @@ gboolean moveresize_event(XEvent *e) { gboolean used = FALSE; - g_assert(moveresize_in_progress); + if (!moveresize_in_progress) return FALSE; if (e->type == ButtonPress) { if (!button) {