tag: Add tag_set & tag_transfert with a int parametre (for event use and make easier the uicb tag function)
This commit is contained in:
parent
e33c20f1bb
commit
1454d4e7f7
21
src/event.c
21
src/event.c
@ -40,7 +40,6 @@ buttonpress(XButtonEvent *ev)
|
||||
{
|
||||
Client *c;
|
||||
int i;
|
||||
char s[6];
|
||||
|
||||
screen_get_sel();
|
||||
|
||||
@ -74,17 +73,16 @@ buttonpress(XButtonEvent *ev)
|
||||
/* Tag */
|
||||
for(i = 1; i < conf.ntag[selscreen] + 1; ++i)
|
||||
{
|
||||
ITOA(s, i);
|
||||
if(ev->window == infobar[selscreen].tags[i]->win)
|
||||
{
|
||||
if(ev->button == Button1)
|
||||
uicb_tag(s);
|
||||
tag_set(i);
|
||||
if(ev->button == Button3)
|
||||
uicb_tagtransfert(s);
|
||||
tag_transfert(sel, i);
|
||||
if(ev->button == Button4)
|
||||
uicb_tag("+1");
|
||||
tag_set(seltag[selscreen] + 1);
|
||||
if (ev->button == Button5)
|
||||
uicb_tag("-1");
|
||||
tag_set(seltag[selscreen] - 1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -109,7 +107,6 @@ void
|
||||
clientmessageevent(XClientMessageEvent *ev)
|
||||
{
|
||||
Client *c;
|
||||
char tmp[3];
|
||||
int i, mess_t = 0;
|
||||
|
||||
if(ev->format != 32)
|
||||
@ -122,14 +119,12 @@ clientmessageevent(XClientMessageEvent *ev)
|
||||
{
|
||||
/* Manage _NET_CURRENT_DESKTOP */
|
||||
if(mess_t == net_current_desktop
|
||||
&& ev->data.l[0] >= 1
|
||||
&& ev->data.l[0] >= 0
|
||||
&& ev->data.l[0] < conf.ntag[selscreen])
|
||||
{
|
||||
ITOA(tmp, (int)(ev->data.l[0] + 1));
|
||||
uicb_tag(tmp);
|
||||
}
|
||||
tag_set((int)(ev->data.l[0] + 1));
|
||||
|
||||
/* Manage _NET_ACTIVE_WINDOW */
|
||||
if(mess_t == net_active_window)
|
||||
else if(mess_t == net_active_window)
|
||||
if((c = client_gb_win(ev->data.l[0])))
|
||||
client_focus(c);
|
||||
}
|
||||
|
||||
116
src/tag.c
116
src/tag.c
@ -33,7 +33,66 @@
|
||||
|
||||
#include "wmfs.h"
|
||||
|
||||
/** Set a tag
|
||||
/* Set the tag
|
||||
* \param tag The tag number
|
||||
*/
|
||||
void
|
||||
tag_set(int tag)
|
||||
{
|
||||
screen_get_sel();
|
||||
|
||||
if(!tag)
|
||||
tag = 1;
|
||||
|
||||
if(conf.tag_round)
|
||||
{
|
||||
if(tag < 1)
|
||||
seltag[selscreen] = conf.ntag[selscreen];
|
||||
else if(tag > conf.ntag[selscreen])
|
||||
seltag[selscreen] = 1;
|
||||
else
|
||||
seltag[selscreen] = tag;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(tag == seltag[selscreen]
|
||||
|| tag > conf.ntag[selscreen])
|
||||
return;
|
||||
seltag[selscreen] = tag;
|
||||
}
|
||||
ewmh_get_current_desktop();
|
||||
arrange();
|
||||
client_focus(NULL);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/* Transfert a client to a tag
|
||||
* \param c Client pointer
|
||||
* \param tag Tag
|
||||
*/
|
||||
void
|
||||
tag_transfert(Client *c, int tag)
|
||||
{
|
||||
screen_get_sel();
|
||||
|
||||
if(!c || c->tag == tag)
|
||||
return;
|
||||
|
||||
if(!tag)
|
||||
tag = 1;
|
||||
|
||||
c->tag = tag;
|
||||
|
||||
arrange();
|
||||
|
||||
if(c == sel)
|
||||
client_focus(NULL);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/** Uicb Set a tag
|
||||
* \param cmd Tag number or '+' / '-', uicb_t type
|
||||
*/
|
||||
void
|
||||
@ -41,41 +100,10 @@ uicb_tag(uicb_t cmd)
|
||||
{
|
||||
int tmp = atoi(cmd);
|
||||
|
||||
screen_get_sel();
|
||||
|
||||
if(!tmp)
|
||||
tmp = 1;
|
||||
|
||||
if(conf.tag_round)
|
||||
{
|
||||
if(tmp + seltag[selscreen] < 1)
|
||||
seltag[selscreen] = conf.ntag[selscreen];
|
||||
else if (tmp + seltag[selscreen] > conf.ntag[selscreen])
|
||||
seltag[selscreen] = 1;
|
||||
else
|
||||
seltag[selscreen] += tmp;
|
||||
}
|
||||
if(cmd[0] == '+' || cmd[0] == '-')
|
||||
tag_set(seltag[selscreen] + tmp);
|
||||
else
|
||||
{
|
||||
if(cmd[0] == '+' || cmd[0] == '-')
|
||||
{
|
||||
if(tmp + seltag[selscreen] < 1
|
||||
|| tmp + seltag[selscreen] > conf.ntag[selscreen])
|
||||
return;
|
||||
seltag[selscreen] += tmp;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(tmp == seltag[selscreen]
|
||||
|| tmp > conf.ntag[selscreen])
|
||||
return;
|
||||
seltag[selscreen] = tmp;
|
||||
}
|
||||
}
|
||||
ewmh_get_current_desktop();
|
||||
|
||||
arrange();
|
||||
client_focus(NULL);
|
||||
tag_set(tmp);
|
||||
|
||||
return;
|
||||
}
|
||||
@ -86,7 +114,7 @@ uicb_tag(uicb_t cmd)
|
||||
void
|
||||
uicb_tag_next(uicb_t cmd)
|
||||
{
|
||||
uicb_tag("+1");
|
||||
tag_set(seltag[selscreen] + 1);
|
||||
|
||||
return;
|
||||
}
|
||||
@ -97,7 +125,7 @@ uicb_tag_next(uicb_t cmd)
|
||||
void
|
||||
uicb_tag_prev(uicb_t cmd)
|
||||
{
|
||||
uicb_tag("-1");
|
||||
tag_set(seltag[selscreen] - 1);
|
||||
|
||||
return;
|
||||
}
|
||||
@ -109,19 +137,9 @@ uicb_tag_prev(uicb_t cmd)
|
||||
void
|
||||
uicb_tagtransfert(uicb_t cmd)
|
||||
{
|
||||
int n = atoi(cmd);
|
||||
CHECK(sel);
|
||||
|
||||
screen_get_sel();
|
||||
|
||||
if(!sel || n == seltag[selscreen])
|
||||
return;
|
||||
|
||||
if(!n)
|
||||
n = 1;
|
||||
|
||||
sel->tag = n;
|
||||
|
||||
arrange();
|
||||
tag_transfert(sel, atoi(cmd));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@ -202,6 +202,8 @@ char* alias_to_str(char *conf_choice);
|
||||
void uicb_spawn(uicb_t);
|
||||
|
||||
/* tag.c */
|
||||
void tag_set(int tag);
|
||||
void tag_transfert(Client *c, int tag);
|
||||
void uicb_tag(uicb_t);
|
||||
void uicb_tag_next(uicb_t);
|
||||
void uicb_tag_prev(uicb_t);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user