The window is now no longer enlarged to make it fit into its aspect ratio, but
only ever made lower. This was verified with a small test app that sets a min
aspect ratio of 0.5 and max aspect ratio of 2.
Signed-off-by: Uli Schlachter <psychon@znc.in>
ICCCM says that the min size should be used for the base size if no base size is
specified. The only exception is when calculating the aspect ratio of the
window, in that case only the "real" base size may be used.
Awesome didn't do this last part before.
Signed-off-by: Uli Schlachter <psychon@znc.in>
If a window is fullscreen it is supposed to cover the full screen. Obeying size
hints makes no sense in this case.
Signed-off-by: Uli Schlachter <psychon@znc.in>
I cherry-picked this commit from master and there was a conflict. I fixed this
up by hand and apparently failed here.
Instead of first saving the systray window and then destroying the wibox, this
first destroyed the wibox and then tried to save the systray, but it was already
destroyed in the previous step. Just swapping these two calls fixes this.
Thanks to anrxc for making me notice how much I fail.
Signed-off-by: Uli Schlachter <psychon@znc.in>
A new window is by default above all other windows. This means that when we map
it and then *later* move it to the correct place in the stacking order (thanks
to lazy restacking), the window on the top of the stack has to redraw itself.
I noticed this via naughty notifies redrawing themselves after opening a browser
window.
Signed-off-by: Uli Schlachter <psychon@znc.in>
When a wibox is destroyed or detached from a screen, it is wiped to clean up its
resources. This also includes destroying the window which is associated with the
wibox.
The problem here is that if the wibox contains the systray, the systray window
would automatically be destroyed since all childs of a window are destroyed when
said window is destroyed. To fix this, we kick out the systray window before
destroying the wibox' window.
Signed-off-by: Uli Schlachter <psychon@znc.in>
This fixes a bug where pango was called with already-freed arguments because
wipe() didn't zero out those variables and a later init() failed.
Signed-off-by: Uli Schlachter <psychon@znc.in>
Previously, an invalid markup caused an empty popup. Since the C core now throws
a lua error on invalid markup, we have a way to notice that something is wrong.
This patch first tries to set the notification's text the same way we did
previously. If that fails, everything is escaped and the result is used as the
text for the notification.
Thanks to farhaven/Gregor Best for the initial version of this and for the
string.gsub() call I stole from him. :)
Signed-off-by: Uli Schlachter <psychon@znc.in>
luaA_loadrc() now returns a failure when executing the config file causes an
error.
Previously it returned a success which meant the next config file wasn't tried.
Signed-off-by: Uli Schlachter <psychon@znc.in>
When an application loses its connection to the X11 server, all the windows in
its save-set are saved by reparenting them back to their closest ancestor. Also,
to they are unconditionally mapped. This second property is exactly what we
need: All windows should be in mapped state, else the next window manager which
starts up won't be managing them.
This should fix all bugs where clients where lost due to a restart, yay! :)
Signed-off-by: Uli Schlachter <psychon@znc.in>
Since the last commit, systray windows will automatically be reparented by the
X11 server. This means we no longer have to do this ourselves.
Signed-off-by: Uli Schlachter <psychon@znc.in>
When an X11 client disconnects from the X server, all of its windows are
destroyed. This also means that all the sub-windows of those windows are
destroyed which is not necessary what one wants to happen.
To work around this, X11 has a "save-set". All the windows that are in the
save-set are reparented to their closest ancestor when they would normally be
destroyed. This is just what this code needs. :)
(The windows in the save-set are also mapped when they are saved, dunno if this
hurts here or not)
Signed-off-by: Uli Schlachter <psychon@znc.in>
This makes sure that an invalid value for this property doesn't cause the client
to have no tag at all. This should be especially useful when one uses dynamic
tags and restarts awesome which causes less tags to exist than before.
Signed-off-by: Uli Schlachter <psychon@znc.in>
Signed-off-by: Julien Danjou <julien@danjou.info>
EWMH says that "Window Managers MUST keep this property updated on all windows",
but doesn't say anything about clients which got no desktop at all. Removing the
property seems to be the best we could do.
Signed-off-by: Uli Schlachter <psychon@znc.in>
Signed-off-by: Julien Danjou <julien@danjou.info>
tag.add(name, props):
make tags and pass a table of properties to apply to it
tag.new:
modified to use add() instead of calling capi.tag
Signed-off-by: Perry Hargrave <perry.hargrave@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
tag.getidx(t):
Return the index of 't' in the screen[]:tags() table. Return 'nil'
if 't' is not found.
Signed-off-by: Perry Hargrave <perry.hargrave@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
tag.move(i, t):
move tag 't', or tag.selected(), to index 'i' in the current
screen's tags table.
Signed-off-by: Perry Hargrave <perry.hargrave@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
This will store the widgets references that the wibox have inside their
environment table, and not in the global registry, avoiding memory leaks.
This should fix FS#771.
Signed-off-by: Julien Danjou <julien@danjou.info>
Raising it makes it more obvious that the focus was really changed and makes
working with the client easier since it's, well, raised.
Signed-off-by: Uli Schlachter <psychon@znc.in>
Signed-off-by: Julien Danjou <julien@danjou.info>
Patch allows user to define menu position in pixels when
showing menu in keyboard-driven mode.
Note: Patch changes signature of show() and toggle() functions.
Signed-off-by: Julien Danjou <julien@danjou.info>
On 09/04/2010, Julien Danjou <julien@danjou.info> wrote:
>
> Well, I cannot find anything to say against this patch, so I've merged
> it.
>
Thanks for the kind comments and for your quick reply, I'm glad you
find this contribution useful.
I also noticed that in the previous patch there is a line that was not
supposed to be there, since its purpose was to help debugging the
cmake file. My apologies for that: I have removed it and attached the
corresponding patch (against the already patched version).
Signed-off-by: Diego Moreda <diego.plan9@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
The patch changes the path where the manual pages are compiled, resulting in
a tree structure that follows the man-db convention: the man pages of each
language are stored in a subdirectory of the main man path. For example, the
input file "$AWESOME_SRC/manpages/awesome.1.fr.txt" would be compiled as
"$BUILD_DIR/manpages/fr/man1/awesome.1". The installation step just copies
the resulting directory (in the example, "$BUILD_DIR/manpages/") into the
global man path of the system, excluding the temporary files.
The input .txt files for the translations are not added directly to
AWE_MAN_FILES: instead, the new variable AWE_MAN_LANGS stores the language
names and their input file names are generated automatically. The main
reason of this modification is that it was more convenient for my testing
purposes: this behaviour can be changed back with minor modifications to the
code. This patch is supposed to be a first draft, after all, and it is far
from being perfect, but I hope it is of help.
Signed-off-by: Diego Moreda <diego.plan9@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
If a window didn't have a WM_STATE set, xwindow_get_state_reply() returned 0
which just happened to be XCB_WM_STATE_WITHDRAWN. This caused issues in scan().
Instead, we now assume a window is in state normal if no state is explicitly
set, which makes a lot more sense and fixes actual bugs.
Signed-off-by: Uli Schlachter <psychon@znc.in>
Signed-off-by: Julien Danjou <julien@danjou.info>