Commit Graph

5414 Commits

Author SHA1 Message Date
Uli Schlachter 6494540b0c Unban clients when they are focused
In commit 3dbf89c I removed a client_unban() in the code path for focusing
clients. The idea was that client focusing is now done after rebanning, so that
it should already be visible by the time this code is executed.

However, minimized clients obviously don't get unbanned, So we have to call
client_unban() here to make sure the client is unminimized.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-01-09 10:44:19 +01:00
Uli Schlachter d16ca829aa textbox: Verify a text when it is set
This makes the textbox pass the markup/text it is given to oopango immediately.
If it is invalid, a lua error will be thrown and the old text will still be
shown.

This fixes a bug where the whole wibox isn't redrawn when a textbox complains
about broken UTF8.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-01-08 13:55:36 +01:00
Uli Schlachter 75956804bd Make awful.client.idx public
The luadoc API documentation already contained this function and it seems to be
useful for user configs.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-01-03 14:18:11 +01:00
Uli Schlachter f57dbb6a78 Remove a possibility for lua to cause X11 errors
The lua code could keep a reference to out cairo surface for a drawin after it
was destroyed. So make sure the surface is finished before the associated
drawable is destroyed.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-12-19 14:29:52 +01:00
Uli Schlachter da78a89dcd Remove some pointless code
This is a left-over from when widgets where removed (commit
d213f19c5f).

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-12-19 14:26:34 +01:00
Julien Danjou 14a7fc4fde timer: add again method
Signed-off-by: Julien Danjou <julien@danjou.info>
2010-12-17 15:07:40 +01:00
Julien Danjou 7008d927f9 awesome-client: allow to send multi line code
Signed-off-by: Julien Danjou <julien@danjou.info>
2010-12-16 11:55:51 +01:00
Uli Schlachter 3ec32306db (Try to) document the wibox constructor
Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-12-14 21:07:04 +01:00
Michael Abbott bcc97b46ae Revert "build: look for libs in /usr/local/lib"
This reverts commit 7c86714dca.

It doesn't make sense to hard-wire /usr/local into the build, as this
depends entirely on the build target.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-12-14 21:06:02 +01:00
Uli Schlachter df116331a1 Improve wibox' API documentation
Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-12-12 21:45:54 +01:00
Uli Schlachter 07bbe14d02 Wibox: Set the drawin's background color if possible
Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-12-12 21:18:32 +01:00
Uli Schlachter 1076a6ea47 Drawin: Add bg_color property
We actually have to set a proper background color on all our drawins, else the
default black will "flicker through" while the window is drawn.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-12-12 21:14:04 +01:00
Uli Schlachter b833ae75eb awful.client.setwfact: Handle invisible clients (FS#693)
setwfact() calls idx() on the client that it works on. When idx() is called with
a client that isn't visible, it fails while trying to find outs the client's
index in the current layout.

  event_handle_mousegrabber:119: error running function:
    lib/awful/client.lua:688: attempt to compare nil with number

Fix this by ignoring all clients that aren't visible in setwfact().

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-12-11 14:20:42 +01:00
Uli Schlachter 79b1f5aba1 Don't use luaL_error in luaA_object_emit_signal (FS#713)
This function can be called from unprotected contexts. Calling luaL_error() in
this case results in a call to luaA_panic() and awesome dies.

The only real change here is that this now calls warn() instead of luaL_error().
The rest is reindentation because warn() returns while luaL_error() didn't.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-12-11 13:48:31 +01:00
Uli Schlachter 22a5137299 Print a warning if an invalid reference is dropped (FS#820)
Previously, if you called luaA_object_decref() it would silently *create* a new
reference with reference count -1. Obviously, this is not good.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-12-11 13:25:44 +01:00
Radu Andries 66aa5beaf7 Improve naughty's dbus interface
Evil spec from galago project.
image_data should be read too as in http://www.galago-project.org/specs/notification/0.9/x344.html

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-12-10 17:20:47 +01:00
Uli Schlachter f05dabd76e spawn: Create sessions for processes (FS#851)
Each process spawned from awesome now gets its own session and process group.
This makes sure they aren't connected to awesome in any way any more. This
especially fixes some problems with signals.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-12-04 13:22:47 +01:00
Uli Schlachter 7898cc7de7 Properly die when the X server dies
When the X connection breaks for whatever reason, awesome wouldn't properly
exit, but go into a busy loop instead. Fix this by dying when our connection to
the X server dies.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-11-13 22:29:05 +01:00
Matthias e75186701e Fixed oocairo.image_surface_create_... typo
its oocairo.image_surface_create_from_data not oocairo.image.surface...

Signed-off-by: Matthias <ms@softimpulse.de>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-11-12 17:13:33 +01:00
Uli Schlachter 4f6c6cf32e dbus: Make sure the lua stack is balanced
Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-10-31 14:59:59 +01:00
Uli Schlachter 8882cf360a wibox: Fix mouse event handling
If you managed to press mouse button 4 exactly between two entries in the
taglist, the taglist would jump by two tags instead of just one. This is because
the mouse event was forwarded to both taglist items.

This happened because the calculation in wibox' find_widgets() was wrong. If you
have a widget at (1, 1) with a size of 1x1, then (1, 1) is the only point that
this widget covers. However, the math also included the pixels (2, 1), (1, 2)
and (2, 2) in the widget's extents. This is obviously wrong.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-10-30 19:56:07 +02:00
Uli Schlachter ae5a3160d4 Set minimum required cmake version to 2.8.0
We are using file(copy ...) which seems to be new in cmake 2.8.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-10-28 22:20:22 +02:00
Uli Schlachter f1fd4a52a1 wibox.widget.base: Use assert() instead of error()
This means you now get a backtrace (traceback?) that helps identifying
the faulty code.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-10-22 14:50:45 +02:00
Uli Schlachter 1f95825a1e gears.debug: Import
So far this only contains an "assert()" function, but I guess this could be
enhance. For example, a function which pretty-prints a table's contents might be
useful to have.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-10-22 14:49:12 +02:00
Uli Schlachter c7da695e10 Use the screen's default visual by default again
Seems like there are enough bugs in the X server that one can't really use a 32
bit visual. Looks of repaint errors. :(

This should somehow be fixed properly before release. For now, this just swaps
the default behavior and the "--no-argb" behavior.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-10-21 18:18:29 +02:00
Julien Danjou c98624077f awful.prompt: add ctrl-backspace
Signed-off-by: Julien Danjou <julien@danjou.info>
2010-10-21 09:05:40 +02:00
Julien Danjou 016b76e7bb awful.tag: do not update history when identical tags
Signed-off-by: Julien Danjou <julien@danjou.info>
2010-10-20 17:30:57 +02:00
Julien Danjou e2083050d4 awful.tag: remove useless line
Signed-off-by: Julien Danjou <julien@danjou.info>
2010-10-20 17:00:14 +02:00
Danny Navarro a44439a6c0 Add awful.widget.tasklist.filter.minimizedcurrenttags
Added function to show only minimized clients in the taskbar for the
 current tag.

 Signed-off-by: Danny Navarro <j@dannynavarro.net>

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-10-17 15:45:56 +02:00
Uli Schlachter fc44f4a049 Systray: Remove a now-useless default background
Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-10-17 09:26:09 +02:00
Uli Schlachter 107ba3fefc Systray: Configure background color via beautiful
Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-10-17 09:24:59 +02:00
Uli Schlachter 4af5ca8c34 draw: Fix transparent image handling
Everyone uses "normal" alpha. Cairo uses pre-multiplied alpha. That means that
0x80800000 is translucent red and 0x80ff0000 is just invalid. We were using the
invalid version previously.

This fixes all kinds of tray icons whose background was previously wrong.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-10-15 21:34:37 +02:00
Uli Schlachter 1beb274944 Wibox: Use the "refresh" signal for redrawing
Previously, we used a timer with a timeout of 0 for redrawing the wibox. I had
the visual impression that the wibox was black for a moment. With strace I was
able to measure a latency of 10ms until the wibox was finally redrawn.

This now uses the "refresh" signal. With this, we get our latency down to
something like 0.15ms which sounds a lot better. :)

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-10-15 18:57:50 +02:00
Uli Schlachter ab3674ec13 luaa: Add "refresh" signal
This signal is emitted whenever awesome finishes the current event loop run.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-10-15 18:48:07 +02:00
Uli Schlachter 8712be7265 awful.widget.prompt: Fix error display
This has to use :set_text() now.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-10-14 21:17:02 +02:00
Uli Schlachter 16d90af91d Set the systray background to white
This has to be enough until someone comes up with a good idea what to set the
systray background to. :/

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-10-14 12:54:38 +02:00
Stjujsckij Nickolaj 8bca1025ac Remove last known usage of deprecated in Lua 5.1 `arg`
Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-10-12 18:38:04 +02:00
Alexandre "kAworu" Perrin 7a3adfb741 use CMake check_function_exists() for execinfo
Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-10-11 22:52:20 +02:00
Alexandre "kAworu" Perrin cc08f45304 test for __builtin_clz() and fallback to an inline implementation.
__builtin_clz() is not defined by gcc prior to 3.4 and maybe not for some other
compiler vendors.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-10-11 20:42:03 +02:00
Alexandre "kAworu" Perrin 7c8e096a62 avoid using seq in awsetbg, and test for columns count argument of -m option.
Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-10-11 17:08:58 +02:00
Uli Schlachter bb52505bb8 awful.util.join: Stop using arg
Implementing vararg functions via arg is deprecated in lua. This kind of thing
should instead be done via "...".

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-10-11 16:55:56 +02:00
koniu dc6a2c6b0d awful.completion: callback functions return table of matches
Signed-off-by: koniu <gkusnierz@gmail.com>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-10-11 15:22:44 +02:00
koniu 4429bea62f awful.prompt: add 'autoexec' argument
If set the prompt will execute the command upon completion which returns
only one match.

Signed-off-by: koniu <gkusnierz@gmail.com>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-10-11 15:22:18 +02:00
Uli Schlachter 740db10951 Fix another case of unbalances lua stack
Previously, client_set_icon() popped the image that was being used. When I made
this use oocairo, I accidentally made this function not pop anything at all, so
the caller has to do this now.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-10-10 22:32:08 +02:00
Uli Schlachter e7cd824c07 Ignore changes to the root pixmap
We no longer use the root pixmap at all, so we can ignore changes to it.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-10-10 15:10:04 +02:00
Uli Schlachter b9c427d48f Fix another lua stack balance problem
Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-10-10 15:07:07 +02:00
Uli Schlachter 8b16d1ee4b client_unfocus_update: Merge into client_unfocus
Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-10-10 14:59:02 +02:00
Uli Schlachter 3dbf89c990 Lazyle set the input focus (FS#804)
Instead of immediately setting the X11 input focus when client.focus is assigned
something, we now just remember that we'll have to do something later. The focus
is then set in the next prepare call by libev (= after the current main loop run
is done).

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-10-10 14:57:14 +02:00
Uli Schlachter f931af7ce1 Rename globalconf.client_focus to focus.client
Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-10-10 14:46:56 +02:00
Julien Danjou fe43b99a2a client: remove prev_client_focus
Not sure it's good however.

Signed-off-by: Julien Danjou <julien@danjou.info>
2010-10-10 14:05:52 +02:00