Uli Schlachter
55524ece8d
Use a libev prepare watcher for calling awesome_refresh()
...
Before this, awesome_refresh() could be called multiple times per mainloop and
one had to make sure to add awesome_refresh() calls in the right places.
Now, the prepare handler is invoked just before libev puts the process to sleep
(e.g. by calling select()) and awesome_refresh() does its thing.
All redundant calls to awesome_refresh() are removed, but the one in
selection.c has to stay because this function blocks in xcb_wait_for_event()
without using libev.
Signed-off-by: Uli Schlachter <psychon@znc.in>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-06-19 09:34:42 +02:00
Julien Danjou
e4acb74a5a
luaa: split dofunction()
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-06-10 11:44:29 +02:00
Julien Danjou
90bc90fde4
client, wibox: go back to unmap style banning
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-06-10 11:44:11 +02:00
Julien Danjou
aceab7a39a
awesome: fix exit hook
...
Bad cherry-pick.
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-06-08 12:32:42 +02:00
koniu
f9311b1e00
hooks: add exit hook
...
Signed-off-by: koniu <gkusnierz@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-06-08 11:38:52 +02:00
Uli Schlachter
60bceccafe
Fix the SIGSEGV handling
...
We can't use libev's signal handling here but have to use sigaction() directly,
because libev only writes to a pipe in the real signal handler and then calls
our callback in the next main loop iteration.
The problem here is that returning from a SIGSEGV signal handler is a in
general a Bad Idea (tm) and thus we need to use a "direct" signal handler.
Signed-off-by: Uli Schlachter <psychon@znc.in>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-06-06 20:22:33 +02:00
Julien Danjou
be238512cc
awesome: dump backtrace on SEGV/ABRT
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-06-05 15:00:37 +02:00
M. Dietrich
907a5379a3
fix loop over config files if none was found
...
if no file was found the string is just "\0" and neads a head
controled while
if no config file was found exit awesome with an error message
(fail early!)
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-06-04 10:21:16 +02:00
Julien Danjou
e278b6cefd
main: fix typo in fatal()
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-05-19 11:43:46 +02:00
Mariusz Ceier
ee77fce1ce
Fix focus hooks calls
...
This patch fixes focus hooks calls - for every call to focus hook, there
should be call to unfocus hook.
Focus related info:
In this shape, awesome doesn't support multiple focused clients, that
means it follows the rule "there is only a single focus", which is not
true for MPX. To change this, I think it will need some magic with
FocusOut events handling and changes to some structures
(e.g. globalconf.screen_focus, screen_t.client_focus should be arrays) :p
Now we don't need to handle FocusOut events.
Signed-off-by: Mariusz Ceier <mceier@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-04-28 19:44:38 +02:00
Julien Danjou
600299a19f
key: restore proper support of keysym resolution
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-04-28 18:17:16 +02:00
Nikos Ntarmos
715f95555a
libxdg-basedir 1.0.0 compatibility
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-04-18 18:51:04 +02:00
Julien Danjou
f473a107b0
cleanup #includes
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-04-17 16:52:25 +02:00
Julien Danjou
d834e19a23
awesome: use xcb_event error code
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-04-15 12:01:55 +02:00
Julien Danjou
cda33ca3e6
key: cleanup modifiers system
...
We stop retrieving useless key, since we have constant.
We also grab correctly all keycode for a keysym.
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-04-15 12:01:54 +02:00
Julien Danjou
f4221a1fdf
spawn: add support for startup-notification
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-04-14 14:23:38 +02:00
Julien Danjou
be752cc81c
client: change global linked list to an array
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-04-12 15:11:32 +02:00
Uli Schlachter
4b82608952
Remove the argument to awesome_refresh()
...
awesome_refresh() had a xcb_connection_t as first argument. Since there is
only one connection to the X server, this argument doesn't really have any
alternatives to globalconf.connection and thus makes no sense.
Signed-off-by: Uli Schlachter <psychon@znc.in>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-04-10 18:02:49 +02:00
Julien Danjou
09b166d71e
version: remove product name
...
We only ship one binary now.
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-04-08 18:53:53 +02:00
Julien Danjou
7dbb02adf3
awesome-client: remove socket code
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-04-08 17:56:25 +02:00
Julien Danjou
f7bca3271c
luaa: use only one xdgHandle for all
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-04-08 15:47:31 +02:00
Julien Danjou
b14b52b60c
awful.mouse: set the default cursor
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-04-03 17:15:14 +02:00
Julien Danjou
17e2d9e58f
client: remove _AWESOME_TAGS property
...
We use EWMH hints.
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-03-12 11:49:58 +01:00
Julien Danjou
8745d691fe
buttons: change grabbing method
...
We stop grabbing buttons on root windows. We select button press and
release events, and then we check that we have a bindings for them.
This allow to simply grab buttons on client once, and not redo such
things on arrange or mouse-over-window changes.
Most window managers do like this, anyway.
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-03-12 11:49:58 +01:00
Julien Danjou
401b8ce3e9
awesome: flush after ungrabbing server
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-02-14 17:54:04 +01:00
Julien Danjou
c7e94c810c
event: ignore much of mouse motion events
...
This should improve move/resize performance.
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-01-28 12:27:58 +01:00
Julien Danjou
139dea2987
atexit: fix shadow declaration
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-01-26 09:35:40 +01:00
Nikos Ntarmos
8562223458
atexit: check for NULL pointer return
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-01-26 09:23:09 +01:00
Julien Danjou
d6dbb00f10
client: add support for input faking
...
This is done using XTest extension.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-12-29 17:03:17 +01:00
Julien Danjou
d779aa6c40
client: client screen change at manage is done in Lua
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-12-29 12:26:01 +01:00
Julien Danjou
cd667802db
hooks: manage gets an extra startup arg
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-12-29 12:23:37 +01:00
Julien Danjou
8b88541f0a
xembed: store windows in an array
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-12-14 10:28:22 +01:00
Maarten Maathuis
f9c2ee62a3
client: reimplement client_{ban,unban} for more performance
...
- From now on clients shall remain mapped for their entire lifetime.
- This should seriously boost tag switching speed with composite active.
- A lesser improvement may be noticed in non-composite situations.
- Titlebars that are set to invisble are still unmapped.
Since it would clutter the implementation and titlebars are cheap to render.
Not to mention that invisible titlebars are pretty rare.
- It's safe to attach titlebars while the client is banned.
- Titlebars are explicitly removed at exit.
Signed-off-by: Maarten Maathuis <madman2003@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-12-12 19:19:28 +01:00
Julien Danjou
79ae3ab72a
dbus: export in Lua request_name()
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-12-12 19:19:28 +01:00
Julien Danjou
0e972d4845
mousegrabber: import
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-12-12 16:51:41 +01:00
Julien Danjou
3cf79072cd
xcursor: add new cursor infra
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-12-12 16:51:41 +01:00
Julien Danjou
aca61daecd
config check: be more precise about what we check
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-11-17 20:45:53 +01:00
Julien Danjou
83eadb46cb
util: check asprintf return
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-11-10 10:36:39 +01:00
Julien Danjou
8e66a543bc
draw: remove phys_screen from font handling
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-11-04 17:50:10 +01:00
Julien Danjou
ede5a54355
event: handle background changes
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-10-10 18:27:43 +02:00
Julien Danjou
85cbdc044b
awesome: init systray earlier
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-10-02 12:24:05 +02:00
Julien Danjou
afbcd681be
lua: add --check option
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-30 16:59:08 +02:00
Julien Danjou
49abc66089
xutil: do not return pointer, init struct instead
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:56 +02:00
Julien Danjou
4193e81fa8
screen: merge with xscreen, remove screens_info
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:56 +02:00
Julien Danjou
2be620618b
property: use xcb property handler system
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:55 +02:00
Julien Danjou
6a5ad6af9b
common: move draw, xscreen and swindow out
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:55 +02:00
Julien Danjou
b4d89eec6c
screen: move screen_getbycoord()
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:54 +02:00
Julien Danjou
3a45831242
client: manage take phys_screen as arg
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:54 +02:00
Julien Danjou
7cf2b6615f
client: split X props; handle fullscreen status
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:54 +02:00
Julien Danjou
be52f5b047
update to new xcb-event
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-16 15:36:44 +02:00
Arnaud Fontaine
00d8a0cddd
Update to new xcb-util library.
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-15 14:02:23 +02:00
Julien Danjou
6690456668
core: ungrab before init dbus
...
D-Bus seems to require X access, otherwise it get stuck.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-11 11:15:55 +02:00
Julien Danjou
803d837d88
grab server on initialization
...
That allows to not miss any window on startup.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-10 16:06:32 +02:00
Arnaud Fontaine
9e426be091
awesome: get rid of unecessary malloc in scan()
2008-09-09 17:50:25 +02:00
Julien Danjou
97cf3a7719
systray: add some cleanup code
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-03 18:03:50 +02:00
Julien Danjou
11dfa832a8
factorize quit/exec elements, and reparent systray
...
That fixes FS#296.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-02 17:12:10 +02:00
Julien Danjou
3e13545cc9
Remove 2-level polling
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-31 13:18:02 +02:00
Julien Danjou
04eff691c9
Use xcb_aux_sync to register error
...
Otherwise we get multiple awesome at the same time.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-30 09:21:48 +02:00
Julien Danjou
87a89b6aa1
use xcb_flush; move refresh stuff in common function
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-26 19:35:37 +02:00
Julien Danjou
5cb870c7b8
scan: fix array indice
...
WTF.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-14 21:42:36 +02:00
Arnaud Fontaine
73c4415a0a
window: make window_getstate() asynchronous and rename this function
...
according to the rest of code.
2008-08-13 19:01:36 +02:00
Arnaud Fontaine
5c9cc7857d
xutil: make xutil_lock_mask_get() asynchronous
2008-08-13 12:29:43 +02:00
Arnaud Fontaine
193a73c5d9
draw: make xcolor_init() asynchronous.
2008-08-12 14:53:57 +02:00
Julien Danjou
d310605a64
clients: fix manage on restart
...
We do not manage if they _don't_ have awesome prop.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-12 08:47:29 +02:00
Arnaud Fontaine
b655f6348c
xutil: rename xutil functions according to the rest of code.
2008-08-11 18:05:35 +02:00
Julien Danjou
be2bfdcfc5
screen: introduce screen objects
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-11 17:14:02 +02:00
Julien Danjou
0903e21a1a
clients: manage client with _AWESOME_PROPERTIES
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-11 15:10:54 +02:00
Julien Danjou
6e5d89e4de
Revert "client: fix windows managed on startup"
...
This reverts commit f32cba6bd8
.
2008-08-11 15:04:10 +02:00
Julien Danjou
f32cba6bd8
client: fix windows managed on startup
...
We need to not take the UNVIEWABLE, but everything else should be
managed.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-11 14:57:15 +02:00
Julien Danjou
13714a2b8b
remove useless include
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-06 20:54:20 +02:00
Julien Danjou
9cbee5b32e
remove goto statement
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-06 14:05:11 +02:00
Julien Danjou
d98c28ef86
fix memory leak in event polling
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-05 15:40:57 +02:00
Julien Danjou
5e3e968d2f
rewrite two levels polling
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-05 15:37:41 +02:00
Julien Danjou
0ea4ce4980
remove two levels polling
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-05 15:12:24 +02:00
Julien Danjou
81ae462a70
focus: remove focus history
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-31 17:30:01 +02:00
Julien Danjou
063bf2083d
titlebar: use need_update system (like statusbar, …)
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-31 14:11:07 +02:00
Kanru Chen
700ace5197
length of static string s should be sizeof(s)-1
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-22 10:30:53 +02:00
Kristof Provost
30aeb3f311
Reload awesome on SIGHUP
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-22 10:23:07 +02:00
Julien Danjou
36fd44d1a0
draw: add char len as arg of xcolor_init()
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-10 15:30:16 +02:00
Julien Danjou
fb13bff697
config: use XDG for loading config
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-08 14:07:56 +02:00
Pierre Habouzit
924078c898
Streamline xcolor_t.
...
Do not have a ->name char * field, but a char[32] instead. This isn't a
big problem, the longest color in /etc/X11/rgb.txt is 23 chars long, and
if it becomes a problem one day, one could just strip the name and
generate an hexadecimal representation on the fly instead. But allocating
the name is asking for a lot of trouble.
Since we do not allocate anything anymore, just don't allocate anything
anymore at all, it avoids the mess of xcolor_copy/_wipe and fixes a lot of
sleeping bugs (p_dup were used e.g., which is wrong).
Pass xcolor_t *, xcolor_t becomes too big to be passed by value. Add
consts at some places.
xcolor_new allocates nothing, hence is renamed xcolor_init, has xcolor_t
as a first argument (OO-style, this is self), and doesn't touch the
structure at all if it returns false, which allow us to skip a lot of
intermediates values.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-02 10:36:46 +02:00
Julien Danjou
5daa38ac2d
atom: new atom infra
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-30 18:25:01 +02:00
Julien Danjou
c007cacd09
xutil: make atoms cache an array
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-27 12:08:19 +02:00
Pierre Habouzit
3f9c7aee54
actually call our xcb events setup function
...
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-26 23:04:55 +02:00
Pierre Habouzit
585496b66a
Make event handler setup private to the event module.
...
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-26 22:47:56 +02:00
Julien Danjou
013b2afe62
remove useless #include
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-26 18:10:45 +02:00
Julien Danjou
104df8912b
systray: set handler before ewmh/systray init
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 19:55:14 +02:00
Julien Danjou
f8f882d948
systray: fix scan() and stop managing XEMBED
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 17:39:22 +02:00
Julien Danjou
46ead6ea3f
comments fixing
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-20 08:38:00 +02:00
Julien Danjou
933e05f7b0
scan: manage withdrawn windows on start
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-20 07:24:31 +02:00
Julien Danjou
206bf49525
awesome: fix documentation position
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-19 09:46:17 +02:00
Julien Danjou
0fdc03faa4
util: rename eprint() to fatal()
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-19 09:45:08 +02:00
Pierre Habouzit
4617f0ba34
The X socket MUST keep us alive.
...
We must not unref the loop for the X socket, that's our reason to live !
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-18 02:12:37 +02:00
Arnaud Fontaine
b9e1ec69d0
Replace xcb_aux_get_screen() by a safer function
2008-06-17 17:14:00 +02:00
Julien Danjou
26738c4dab
xshape: remove, nothing prove it's really useful
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-17 15:06:05 +02:00
Julien Danjou
5bae1f0c37
window: rework root_grabbuttons()
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-17 14:35:58 +02:00
Pierre Habouzit
9ea15fd224
And migrate the rest of the loop to the libev.
...
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-17 00:30:53 +02:00
Pierre Habouzit
476c851510
Migrate the lua server to the libev.
...
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-16 23:51:11 +02:00
Pierre Habouzit
38f8d2fdce
Plug dbus in the event loop.
...
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-16 23:51:07 +02:00
Pierre Habouzit
a4953d13d5
Fix a couple of warnings.
...
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-15 23:58:51 +02:00