X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fmoveresize.c;h=0abb8e8d5a8d53fbda25ec1122653b464bfabc28;hb=e68e6c6a536a2132570ddf1d1d3759bb31ef781e;hp=95e595872476af8dea1e0ae208d2257aae7356cc;hpb=fbbbd4f9ab209068ee5b4007ddf50bee6ac5aa24;p=chaz%2Fopenbox diff --git a/openbox/moveresize.c b/openbox/moveresize.c index 95e59587..0abb8e8d 100644 --- a/openbox/moveresize.c +++ b/openbox/moveresize.c @@ -28,22 +28,24 @@ static ObCorner lockcorner; static Popup *popup = NULL; -static void client_dest(ObClient *c) +static void client_dest(gpointer client) { - if (moveresize_client == c) + if (moveresize_client == client) moveresize_end(TRUE); } -void moveresize_startup() +void moveresize_startup(gboolean reconfig) { popup = popup_new(FALSE); - client_add_destructor(client_dest); + if (!reconfig) + client_add_destructor(client_dest); } -void moveresize_shutdown() +void moveresize_shutdown(gboolean reconfig) { - client_remove_destructor(client_dest); + if (!reconfig) + client_remove_destructor(client_dest); popup_free(popup); popup = NULL; @@ -69,6 +71,9 @@ void moveresize_start(ObClient *c, int x, int y, guint b, guint32 cnr) g_assert(!moveresize_in_progress); + if (!c->frame->visible) + return; + moveresize_client = c; start_cx = c->frame->area.x; start_cy = c->frame->area.y; @@ -77,8 +82,8 @@ void moveresize_start(ObClient *c, int x, int y, guint b, guint32 cnr) increment instead of at 0, so you have to move half an increment either way instead of a full increment one and 1 px the other. and this is one large mother fucking comment. */ - start_cw = c->area.width + (c->size_inc.width + 1) / 2; - start_ch = c->area.height + (c->size_inc.height + 1) / 2; + start_cw = c->area.width + c->size_inc.width / 2; + start_ch = c->area.height + c->size_inc.height / 2; start_x = x; start_y = y; corner = cnr; @@ -137,7 +142,7 @@ void moveresize_start(ObClient *c, int x, int y, guint b, guint32 cnr) void moveresize_end(gboolean cancel) { grab_keyboard(FALSE); - grab_pointer(FALSE, None); + grab_pointer(FALSE, OB_CURSOR_NONE); popup_hide(popup);