Commit Graph

4919 Commits

Author SHA1 Message Date
Julien Danjou 742d85dd0e Handle synthetic UnmapNotify events
According to the Inter-Client Communication Conventions Manual, if you want to
switch your window to withdrawn state, you unmap it and send a synthetic
UnmapNotify to the root window.

This synthetic event fixes a race condition. When you map and unmap a window
quickly, the map will generate a MapRequest for the WM but won't actually map
the window. Thus, the unmap will be discarded (-> window not yet mapped) and the
window stays map once the WM handles the MapRequest

Before this patch, awesome just ignored the synthetic unmap notify which caused
the bug to appear again. With this patch it doesn't happen anymore.

Signed-off-by: Uli Schlachter <psychon@znc.in>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-12-28 16:41:39 +01:00
Pierre Allegraud a4fb1e00f7 build: make manpage compression optional
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-12-28 10:44:10 +01:00
Uli Schlachter 531381fa6d Implement the GetCapabilities call in naughty
This call is required by the freedesktop specification.

Signed-off-by: Uli Schlachter <psychon@znc.in>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-12-28 10:42:06 +01:00
Julien Danjou 1e2fcadfd0 dbus: add support for array as returned type
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-12-28 10:39:51 +01:00
Julien Danjou b92c3735a1 dbus: move some convert code in a function
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-12-28 10:36:41 +01:00
Uli Schlachter 365e80c5bb Make it easier to change the default layout
In older versions of awesome, the first entry in the layouts table was the
default layout. Currently it's always the floating layout.

With this patch the default is again the first entry in the layouts table.  At
the same time, floating is moved to be the first entry, so this patch doesn't
change any behavior at all.

Signed-off-by: Uli Schlachter <psychon@znc.in>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-12-22 12:47:17 +01:00
Pierre Allegraud 1fd1155897 build: do not install .in files
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-12-22 12:46:29 +01:00
Pierre Allegraud 93fdc17799 fix build on NetBSD (FS#706)
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-12-21 08:48:21 +01:00
Julien Danjou f8984fc503 image: load with image
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-12-14 10:27:15 +01:00
Julien Danjou 4b622523eb image: Use imlib2's image cache
This makes imlib add images loaded from files to its image cache again. That way
we avoid loading the same image again and again (e.g. if you cycle through the
list layouts all the layout icons are loaded).

To not reintroduce FS#651 (fixed in 2dadce9b), we call
imlib_image_set_changes_on_disk(). This causes two stat() calls if the same file
is loaded again to check if the file's timestamps changed which is still less
expensive than loading the whole image again.

Signed-off-by: Uli Schlachter <psychon@znc.in>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-12-14 10:24:08 +01:00
Julien Danjou 84acfc4652 systray: fix screen number retrieval
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-12-10 10:10:20 +01:00
Sébastien Gross a8425df036 tooltip: force place() if tooltip is not visible
Commit 6c5d0ca9 introduced a side effect. If tooltip text isn't changed
place() function is not called. To prevent multiple place() set_geometry
calls that function when tooltip is not visible (before it appears to the
user).

Signed-off-by: Sébastien Gross <seb•ɱɩɲʋʃ•awesome•ɑƬ•chezwam•ɖɵʈ•org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-12-03 14:22:21 +01:00
Adrian C. (anrxc) 878f9e7580 awful.menu: add keygrabber support to clients menu
Functions show() and toggle() accept a boolean parameter controlling
keyboard navigation. In case of the clients menu neither is called
directly, instead the clients menu is always re-created in case any
new clients appeard since the last invocation. This patch adds a
keygrabber parameter to the clients() function as well.

Signed-off-by: Adrian C. (anrxc) <anrxc@sysphere.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-12-03 14:22:15 +01:00
Uli Schlachter 3d60aa7d83 Fix a invalid pointer crash bug
This changes wibox_t::mouse_over to a proper reference. That way one can't
remove that widget from underneath us which would lead to an unprotected lua error.

Signed-off-by: Uli Schlachter <psychon@znc.in>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-12-02 09:33:09 +01:00
Robert Lehmann 7ea3c35cc2 naughty: fix CloseNotification argument usage
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-12-01 14:15:04 +01:00
Julien Danjou b45fd1f530 dbus: fix D-Bus documentation typo
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-12-01 10:01:50 +01:00
Julien Danjou dd7362157e change codename
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-26 20:03:25 +01:00
Julien Danjou 3ed302239e build: dist now build .xz instead of .gz
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-26 20:03:25 +01:00
Hiltjo Posthuma 4c2c741743 Rules: check if properties of a rule exist
Actually check if properties are set now, since we can also only
apply callbacks now.

Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-25 17:10:13 +01:00
perry 298f773357 Revert "awful.autofocus: fix multiple screens autofocus"
This reverts commit 7575f64993.

As seen on ML:

Switching tags with multiple heads causes focus to change
screens with this commit

Signed-off-by: perry <perry.hargrave@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-23 19:28:36 +01:00
Hiltjo Posthuma b097266925 awful.menu: use actual wibox border width
We check the wibox border width for inappropiate values now, if we set
border_width to a negative value (invalid) in our theme and draw it, the
actual border_width will be 0 so the menu will be drawn incorrectly.
This fixed this.

Signed-off-by: Hiltjo Posthuma <hiltjo@codemadness.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-21 10:48:10 +01:00
Julien Danjou a56e1b11d3 wibox: check border width
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-21 10:46:00 +01:00
Levin Du 553bf417f8 Fix awful.util.table.reverse
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-17 10:25:21 +01:00
Tomi Belan 064f4c92fd awful.autofocus: fix multiple screens autofocus
There might be multiple screens with visible windows. When closing the
last window of the current screen, try to focus them as well.

If no window has focus and yet some windows are visible (e.g. on another
screen), awesome misbehaves: it uses sloppy keyboard focus (as is the X11
default), but doesn't refresh their border colors or tasklists etc.

Signed-off-by: Tomi Belan <tomi.belan@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-16 15:15:14 +01:00
Uli Schlachter 78541da82a Wibox: Check if a window exists before changing it
wibox_set_border_color() and luaA_wibox_set_border_width() didn't check if a
wibox really had an associated X11 window before changing this window which
resulted in (silent) errors.

Signed-off-by: Uli Schlachter <psychon@znc.in>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-16 15:12:53 +01:00
Adrian C. (anrxc) 6c5d0ca90c awful.tooltip: call set_geometry on show()
Function set_geometry was never called if the timer_function argument
was omitted. show function only called place() which would not display
a tooltip since it didn't have proper geometry.

Signed-off-by: Adrian C. (anrxc) <anrxc@sysphere.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-11 17:48:42 +01:00
Julien Danjou 240a83d215 widget: fix screen number of layouts as arg
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-09 21:27:32 +01:00
Julien Danjou 88dfed11e1 dbus: check that interface is not NULL (FS#667)
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-09 20:50:33 +01:00
Julien Danjou ab66ce8bec dbus: field can be nil
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-09 20:50:27 +01:00
Julien Danjou a955519a7a util: mark strhash with nonnull
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-09 20:50:05 +01:00
Julien Danjou 44edd4a75e change codename
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-09 14:52:15 +01:00
bob 82dd61a692 awful.rules: add "callback" option when a rule matches
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-09 10:26:58 +01:00
Uli Schlachter c912da0189 wibox: check if a wibox' window exists before modifying it
If you change the .bg of an existing wibox which isn't attached to any screen
yet, then there is no window for which we can update the XCB_CW_BACK_PIXEL.

Signed-off-by: Uli Schlachter <psychon@znc.in>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-08 11:23:22 +01:00
Uli Schlachter 8ed6d60a25 wibox: make sure no garbage is painted to the screen
Wiboxes are lazily updated. This means that we could receive an expose event on
them between making them visible and actually painting their content.

Due to this we were copying undefined content to the wibox, because the pixmap
was only created just now, but it wasn't actually filled with anything yet.

Signed-off-by: Uli Schlachter <psychon@znc.in>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-08 10:34:05 +01:00
Uli Schlachter 12977febee Set a wibox' bit gravity to NorthWest.
After the last patch, after each resize the X server fills the complete wibox
with its background color which means that the widgets will still flicker. This
patch fixes this by setting the wibox' bit gravity to NorthWest.

This means that if a wibox is enlarged, only the new, larger part will be filled
with the wibox' background color and the rest of the wibox' content will be left
intact. With this patch I couldn't see any flickering anymore.

Signed-off-by: Uli Schlachter <psychon@znc.in>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-08 10:34:03 +01:00
Uli Schlachter 02ea8feb54 wibox: Set a proper back pixel
Currently wiboxes have their background set to "inherit parent pixmap". That
means that each time a wibox is e.g. resized, the X server sets the wibox'
content to the wallpaper and then immediately awesome redraws the wibox with the
proper background. This causes flicker when you e.g. resize clients which have a
titlebar.

With this patch, wiboxes get their proper background color for their "back
pixel" value. Now, instead of showing the wallpaper, the X server will fill the
complete wibox with its background color.

With this patch, the actual widgets will still flicker. Also, if the wibox has a
background image, this image obviously won't be used by the X server and we get
some flicker again. My next patch will address these issues.

Signed-off-by: Uli Schlachter <psychon@znc.in>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-08 10:34:00 +01:00
Julien Danjou 2577f945d6 naughty: convert <br> tag to \n
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-06 12:46:09 +01:00
Julien Danjou a146ad7e19 awful.layout: emit arrange signal
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-06 12:39:48 +01:00
Julien Danjou 50690e7a48 mouse: coords() get silent parameter
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-11-06 11:06:02 +01:00
Lukas Hrazky 21223cabd9 progressbar: remove minimum size limit
Signed-off-by: Lukas Hrazky <lukkash@email.cz>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-10-26 17:27:29 +01:00
Lukas Hrazky dea2a1f30f progressbar/graph: fix rounding and graph drawing
Signed-off-by: Lukas Hrazky <lukkash@email.cz>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-10-26 17:27:26 +01:00
Julien Danjou 735e612362 awful.tag: fix new when layout is nil
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-10-26 11:12:03 +01:00
Zsolt Udvari b853f2df0a awful.tag: allow table as layout argument (FS#670)
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-10-26 10:59:05 +01:00
Anton Bobrov 148e095fa9 awful.rules: apply accumulated rule properties (FS#669)
To avoid the screen flickering, when two rules have different tags
with true switchtotag.

Signed-off-by: Julien Danjou <julien@danjou.info>
2009-10-26 10:27:58 +01:00
Damjan e7819ec211 awful.menu: fix gap (FS#665)
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-10-26 10:07:56 +01:00
Julien Danjou 06eeb41093 ewmh: fix toggle on maximized_horizontal
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-10-21 11:41:52 +02:00
Julien Danjou 1128f67f5d change codename
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-10-20 20:41:18 +02:00
Gregor Best 851889f2b7 awful.screen: fix padding
Signed-off-by: Gregor Best <gbe@intepi.net>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-10-09 20:05:42 +02:00
Julien Danjou 8296f58ee7 change codename
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-10-09 16:16:18 +02:00
Julien Danjou 8c109794d9 awful.titlebar: set a default name if client's nil (FS#653)
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-10-09 16:14:42 +02:00