X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fmoveresize.c;h=9f0f41ba7e51c546aea225c22b97f93fab07761b;hb=6f5292c87ece138a2b80d102ba0919b105b1839a;hp=744191758bcafe4079d09972892b937094a37e53;hpb=16f46c296d1fcd3f27fc62a18e71c55fb3fd3e88;p=chaz%2Fopenbox diff --git a/openbox/moveresize.c b/openbox/moveresize.c index 74419175..9f0f41ba 100644 --- a/openbox/moveresize.c +++ b/openbox/moveresize.c @@ -46,7 +46,7 @@ static ObCorner lockcorner; static ObPopup *popup = NULL; -static void client_dest(gpointer client) +static void client_dest(ObClient *client, gpointer data) { if (moveresize_client == client) moveresize_end(TRUE); @@ -57,7 +57,7 @@ void moveresize_startup(gboolean reconfig) popup = popup_new(FALSE); if (!reconfig) - client_add_destructor(client_dest); + client_add_destructor(client_dest, NULL); } void moveresize_shutdown(gboolean reconfig) @@ -90,7 +90,13 @@ void moveresize_start(ObClient *c, int x, int y, guint b, guint32 cnr) { ObCursor cur; - if (moveresize_in_progress || !c->frame->visible) + moving = (cnr == prop_atoms.net_wm_moveresize_move || + cnr == prop_atoms.net_wm_moveresize_move_keyboard); + + if (moveresize_in_progress || !c->frame->visible || + !(moving ? + (c->functions & OB_CLIENT_FUNC_MOVE) : + (c->functions & OB_CLIENT_FUNC_RESIZE))) return; moveresize_client = c; @@ -116,15 +122,12 @@ void moveresize_start(ObClient *c, int x, int y, guint b, guint32 cnr) c->area.width / 2, c->area.height / 2); */ - if (corner == prop_atoms.net_wm_moveresize_move || - corner == prop_atoms.net_wm_moveresize_move_keyboard) { + if (moving) { cur_x = start_cx; cur_y = start_cy; - moving = TRUE; } else { cur_x = start_cw; cur_y = start_ch; - moving = FALSE; } moveresize_in_progress = TRUE;