Merge remote branch 'origin/master' into bacardi55
This commit is contained in:
commit
b3325867ed
@ -42,6 +42,7 @@ set(wmfs_src
|
||||
src/mouse.c
|
||||
src/screen.c
|
||||
src/status.c
|
||||
src/systray.c
|
||||
src/tag.c
|
||||
src/util.c
|
||||
src/viwmfs.c
|
||||
|
||||
@ -356,6 +356,7 @@ client_focus(Client *c)
|
||||
sel->flags &= ~AboveFlag;
|
||||
|
||||
frame_update(sel);
|
||||
|
||||
mouse_grabbuttons(sel, !conf.focus_pclick);
|
||||
}
|
||||
|
||||
|
||||
25
src/ewmh.c
25
src/ewmh.c
@ -75,6 +75,7 @@ ewmh_init_hints(void)
|
||||
net_atom[net_wm_icon] = ATOM("_NET_WM_ICON");
|
||||
net_atom[net_wm_state] = ATOM("_NET_WM_STATE");
|
||||
net_atom[net_wm_state_fullscreen] = ATOM("_NET_WM_STATE_FULLSCREEN");
|
||||
net_atom[net_wm_state_sticky] = ATOM("_NET_WM_STATE_STICKY");
|
||||
net_atom[net_wm_state_demands_attention] = ATOM("_NET_WM_STATE_DEMANDS_ATTENTION");
|
||||
net_atom[utf8_string] = ATOM("UTF8_STRING");
|
||||
|
||||
@ -326,6 +327,13 @@ ewmh_manage_net_wm_state(long data_l[], Client *c)
|
||||
client_moveresize(c, c->tmp_geo, False);
|
||||
}
|
||||
}
|
||||
/* Manage _NET_WM_STATE_STICKY */
|
||||
else if(data_l[1] == net_atom[net_wm_state_sticky])
|
||||
{
|
||||
/* == client_ignore_tag */
|
||||
c->tag = MAXTAG + 1;
|
||||
arrange(c->screen, True);
|
||||
}
|
||||
/* Manage _NET_WM_STATE_DEMANDS_ATTENTION */
|
||||
else if(data_l[1] == net_atom[net_wm_state_demands_attention])
|
||||
{
|
||||
@ -350,6 +358,7 @@ ewmh_manage_window_type(Client *c)
|
||||
int i, f;
|
||||
ulong n, il;
|
||||
uchar *data = NULL;
|
||||
long ldata[5] = { 0 };
|
||||
|
||||
if(XGetWindowProperty(dpy, c->win, net_atom[net_wm_window_type], 0L, 0x7FFFFFFFL,
|
||||
False, XA_ATOM, &rf, &f, &n, &il, &data) == Success && n)
|
||||
@ -385,6 +394,22 @@ ewmh_manage_window_type(Client *c)
|
||||
XFree(data);
|
||||
}
|
||||
|
||||
/* Get NET_WM_STATE set without sending client message event */
|
||||
if(XGetWindowProperty(dpy, c->win, net_atom[net_wm_state], 0L, 0x7FFFFFFFL,
|
||||
False, XA_ATOM, &rf, &f, &n, &il, &data) == Success && n)
|
||||
{
|
||||
atom = (Atom*)data;
|
||||
|
||||
for(i = 0; i < n; ++i)
|
||||
{
|
||||
ldata[0] = _NET_WM_STATE_ADD;
|
||||
ldata[1] = atom[i];
|
||||
ewmh_manage_net_wm_state(ldata, c);
|
||||
}
|
||||
|
||||
XFree(data);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@ -39,7 +39,7 @@ arrange(int screen, Bool update_layout)
|
||||
{
|
||||
Client *c;
|
||||
|
||||
if(screen < 0 || screen > screen_count())
|
||||
if(screen < 0 || screen > screen_count() - 1)
|
||||
screen = screen_get_sel();
|
||||
|
||||
for(c = clients; c; c = c->next)
|
||||
|
||||
@ -123,6 +123,7 @@ enum
|
||||
net_wm_icon,
|
||||
net_wm_state,
|
||||
net_wm_state_fullscreen,
|
||||
net_wm_state_sticky,
|
||||
net_wm_state_demands_attention,
|
||||
utf8_string,
|
||||
/* WMFS HINTS */
|
||||
|
||||
34
src/systray.c
Normal file
34
src/systray.c
Normal file
@ -0,0 +1,34 @@
|
||||
/*
|
||||
* systray.c
|
||||
* Copyright © 2008, 2009, 2010 Martin Duquesnoy <xorg62@gmail.com>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following disclaimer
|
||||
* in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of the nor the names of its
|
||||
* contributors may be used to endorse or promote products derived from
|
||||
* this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include "wmfs.h"
|
||||
|
||||
@ -340,6 +340,9 @@ int statustext_text(StatusText *s, char *str);
|
||||
void statustext_normal(int sc, char *str);
|
||||
void statustext_handle(int sc, char *str);
|
||||
|
||||
/* systray.c */
|
||||
|
||||
|
||||
/* layout.c */
|
||||
void arrange(int screen, Bool update_layout);
|
||||
void freelayout(int screen);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user