action_maximise

This commit is contained in:
Sean Pringle
2013-02-05 10:22:19 +10:00
parent 4861ec182c
commit 0ff95d74be
4 changed files with 19 additions and 1 deletions

View File

@@ -113,6 +113,14 @@ void action_fullscreen(void *data, int num, client *cli)
client_raise_family(cli);
}
void action_maximize(void *data, int num, client *cli)
{
if (!cli) return;
cli->max = !cli->max;
SETPROP_LONG(cli->window, atoms[XOAT_MAXIMIZE], &cli->max, 1);
client_place_spot(cli, cli->spot, cli->monitor, 1);
}
void action_maximize_vert(void *data, int num, client *cli)
{
if (!cli) return;

1
atom.c
View File

@@ -31,6 +31,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
X(XOAT_SPOT),\
X(XOAT_EXIT),\
X(XOAT_RESTART),\
X(XOAT_MAXIMIZE),\
X(_NET_SUPPORTED),\
X(_NET_ACTIVE_WINDOW),\
X(_NET_CLOSE_WINDOW),\

View File

@@ -100,6 +100,8 @@ client* window_build_client(Window win)
c->maxv = client_has_state(c, atoms[_NET_WM_STATE_MAXIMIZE_VERT]);
c->maxh = client_has_state(c, atoms[_NET_WM_STATE_MAXIMIZE_HORZ]);
GETPROP_LONG(win, atoms[XOAT_MAXIMIZE], &c->max, 1);
// _NET_WM_STATE_MAXIMIZE_VERT may apply to spot2 windows. Detect...
if (c->maxv && c->type != atoms[_NET_WM_WINDOW_TYPE_DIALOG]
&& INTERSECT(m->spots[SPOT2].x, m->spots[SPOT2].y, m->spots[SPOT2].w, m->spots[SPOT2].h,
@@ -208,6 +210,12 @@ void client_place_spot(client *c, int spot, int mon, int force)
{
w = m->w;
}
else
if (c->max && spot == SPOT1)
{
h = m->h - y;
w = m->w;
}
w -= BORDER*2; h -= BORDER*2;
int sw = w, sh = h; long sr; XSizeHints size;

3
xoat.c
View File

@@ -76,7 +76,7 @@ typedef struct {
Window transient, leader;
Atom type, states[ATOMLIST+1];
short monitor, visible, manage, input, urgent, full, ours, maxv, maxh;
unsigned long spot;
unsigned long spot, max;
char *class;
} client;
@@ -110,6 +110,7 @@ void action_focus_monitor(void*, int, client*);
void action_fullscreen(void*, int, client*);
void action_maximize_vert(void*, int, client*);
void action_maximize_horz(void*, int, client*);
void action_maximize(void*, int, client*);
#include "config.h"