client: rename geometries

Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
Julien Danjou 2008-11-25 11:24:25 +01:00
parent 03e08257fb
commit dc6583c3e0
4 changed files with 30 additions and 27 deletions

View File

@ -462,10 +462,10 @@ client_manage(xcb_window_t w, xcb_get_geometry_reply_t *wgeom, int phys_screen,
/* Initial values */ /* Initial values */
c->win = w; c->win = w;
c->geometry.x = c->f_geometry.x = c->m_geometry.x = wgeom->x; c->geometry.x = c->geometries.floating.x = c->geometries.fullscreen.x = wgeom->x;
c->geometry.y = c->f_geometry.y = c->m_geometry.y = wgeom->y; c->geometry.y = c->geometries.floating.y = c->geometries.fullscreen.y = wgeom->y;
c->geometry.width = c->f_geometry.width = c->m_geometry.width = wgeom->width; c->geometry.width = c->geometries.floating.width = c->geometries.fullscreen.width = wgeom->width;
c->geometry.height = c->f_geometry.height = c->m_geometry.height = wgeom->height; c->geometry.height = c->geometries.floating.height = c->geometries.fullscreen.height = wgeom->height;
client_setborder(c, wgeom->border_width); client_setborder(c, wgeom->border_width);
if((icon = ewmh_window_icon_get_reply(ewmh_icon_cookie))) if((icon = ewmh_window_icon_get_reply(ewmh_icon_cookie)))
c->icon = image_ref(&icon); c->icon = image_ref(&icon);
@ -668,7 +668,7 @@ client_resize(client_t *c, area_t geometry, bool hints)
|| layout_get_current(new_screen) == layout_floating || layout_get_current(new_screen) == layout_floating
|| layout_get_current(c->screen) == layout_floating) || layout_get_current(c->screen) == layout_floating)
if(!c->isfullscreen) if(!c->isfullscreen)
c->f_geometry = geometry; c->geometries.floating = geometry;
titlebar_update_geometry_floating(c); titlebar_update_geometry_floating(c);
@ -708,7 +708,7 @@ client_setfloating(client_t *c, bool floating)
{ {
if((c->isfloating = floating)) if((c->isfloating = floating))
if(!c->isfullscreen) if(!c->isfullscreen)
client_resize(c, c->f_geometry, false); client_resize(c, c->geometries.floating, false);
client_need_arrange(c); client_need_arrange(c);
client_stack(); client_stack();
xcb_change_property(globalconf.connection, xcb_change_property(globalconf.connection,
@ -770,13 +770,13 @@ client_setfullscreen(client_t *c, bool s)
if((c->isfullscreen = s)) if((c->isfullscreen = s))
{ {
geometry = screen_area_get(c->screen, NULL, NULL, false); geometry = screen_area_get(c->screen, NULL, NULL, false);
c->m_geometry = c->geometry; c->geometries.fullscreen = c->geometry;
c->oldborder = c->border; c->oldborder = c->border;
client_setborder(c, 0); client_setborder(c, 0);
} }
else else
{ {
geometry = c->m_geometry; geometry = c->geometries.fullscreen;
client_setborder(c, c->oldborder); client_setborder(c, c->oldborder);
} }
client_resize(c, geometry, false); client_resize(c, geometry, false);

View File

@ -32,6 +32,6 @@ layout_floating(int screen)
for(c = globalconf.clients; c; c = c->next) for(c = globalconf.clients; c; c = c->next)
if(client_isvisible(c, screen) && !c->isfullscreen) if(client_isvisible(c, screen) && !c->isfullscreen)
client_resize(c, c->f_geometry, false); client_resize(c, c->geometries.floating, false);
} }
// vim: filetype=c:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=80 // vim: filetype=c:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=80

View File

@ -331,7 +331,7 @@ screen_client_moveto(client_t *c, int new_screen, bool dotag, bool doresize)
if(doresize && old_screen != c->screen) if(doresize && old_screen != c->screen)
{ {
area_t new_geometry, new_f_geometry; area_t new_geometry, new_f_geometry;
new_f_geometry = c->f_geometry; new_f_geometry = c->geometries.floating;
to = screen_area_get(c->screen, to = screen_area_get(c->screen,
NULL, NULL, false); NULL, NULL, false);
@ -339,8 +339,8 @@ screen_client_moveto(client_t *c, int new_screen, bool dotag, bool doresize)
NULL, NULL, false); NULL, NULL, false);
/* compute new coords in new screen */ /* compute new coords in new screen */
new_f_geometry.x = (c->f_geometry.x - from.x) + to.x; new_f_geometry.x = (c->geometries.floating.x - from.x) + to.x;
new_f_geometry.y = (c->f_geometry.y - from.y) + to.y; new_f_geometry.y = (c->geometries.floating.y - from.y) + to.y;
/* check that new coords are still in the screen */ /* check that new coords are still in the screen */
if(new_f_geometry.width > to.width) if(new_f_geometry.width > to.width)
@ -371,18 +371,18 @@ screen_client_moveto(client_t *c, int new_screen, bool dotag, bool doresize)
new_geometry.y = to.y + to.height - new_geometry.height - 2 * c->border; new_geometry.y = to.y + to.height - new_geometry.height - 2 * c->border;
/* compute new coords for max in new screen */ /* compute new coords for max in new screen */
c->m_geometry.x = (c->m_geometry.x - from.x) + to.x; c->geometries.fullscreen.x = (c->geometries.fullscreen.x - from.x) + to.x;
c->m_geometry.y = (c->m_geometry.y - from.y) + to.y; c->geometries.fullscreen.y = (c->geometries.fullscreen.y - from.y) + to.y;
/* check that new coords are still in the screen */ /* check that new coords are still in the screen */
if(c->m_geometry.width > to.width) if(c->geometries.fullscreen.width > to.width)
c->m_geometry.width = to.width; c->geometries.fullscreen.width = to.width;
if(c->m_geometry.height > to.height) if(c->geometries.fullscreen.height > to.height)
c->m_geometry.height = to.height; c->geometries.fullscreen.height = to.height;
if(c->m_geometry.x + c->m_geometry.width >= to.x + to.width) if(c->geometries.fullscreen.x + c->geometries.fullscreen.width >= to.x + to.width)
c->m_geometry.x = to.x + to.width - c->m_geometry.width - 2 * c->border; c->geometries.fullscreen.x = to.x + to.width - c->geometries.fullscreen.width - 2 * c->border;
if(c->m_geometry.y + c->m_geometry.height >= to.y + to.height) if(c->geometries.fullscreen.y + c->geometries.fullscreen.height >= to.y + to.height)
c->m_geometry.y = to.y + to.height - c->m_geometry.height - 2 * c->border; c->geometries.fullscreen.y = to.y + to.height - c->geometries.fullscreen.height - 2 * c->border;
client_resize(c, new_geometry, false); client_resize(c, new_geometry, false);
} }
@ -392,7 +392,7 @@ screen_client_moveto(client_t *c, int new_screen, bool dotag, bool doresize)
/* otherwise just register them */ /* otherwise just register them */
else else
{ {
c->f_geometry = new_f_geometry; c->geometries.floating = new_f_geometry;
if(wasvisible) if(wasvisible)
globalconf.screens[old_screen].need_arrange = true; globalconf.screens[old_screen].need_arrange = true;
client_need_arrange(c); client_need_arrange(c);

View File

@ -148,10 +148,13 @@ struct client_t
char *name, *icon_name; char *name, *icon_name;
/** Window geometry */ /** Window geometry */
area_t geometry; area_t geometry;
/** Floating window geometry */ struct
area_t f_geometry; {
/** Max window geometry */ /** Client floating geometry. */
area_t m_geometry; area_t floating;
/** Client geometry when (un)fullscreen */
area_t fullscreen;
} geometries;
/* Size hints */ /* Size hints */
int basew, baseh, incw, inch, maxw, maxh, minw, minh; int basew, baseh, incw, inch, maxw, maxh, minw, minh;
int minax, maxax, minay, maxay; int minax, maxax, minay, maxay;