magnifier: implements mwfact as surface factor

Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
Julien Danjou 2008-08-22 22:09:51 +02:00
parent d518873461
commit d4273f4e96
2 changed files with 5 additions and 3 deletions

View File

@ -19,6 +19,8 @@
*
*/
#include <math.h>
#include "client.h"
#include "tag.h"
#include "screen.h"
@ -46,8 +48,8 @@ layout_magnifier(int screen)
if(!focus)
goto bailout;
geometry.width = area.width * curtags[0]->mwfact;
geometry.height = area.height * curtags[0]->mwfact;
geometry.width = sqrt(area.width * area.width * curtags[0]->mwfact);
geometry.height = sqrt(area.height * area.height * curtags[0]->mwfact);
geometry.x = area.x + (area.width - geometry.width) / 2;
geometry.y = area.y + (area.height - geometry.height) / 2;
client_resize(focus, geometry, focus->honorsizehints);

View File

@ -913,7 +913,7 @@ mouse_client_resize_magnified(client_t *c, bool infobox)
dist = sqrt((dx*dx) + (dy*dy));
/* new master/rest ratio */
mwfact = dist / maxdist;
mwfact = (dist * dist) / (maxdist * maxdist);
/* keep mwfact within reasonable bounds */
mwfact = MIN(MAX( 0.01, mwfact), 0.99);