Commit Graph

5675 Commits

Author SHA1 Message Date
Uli Schlachter c18f5f22f9 client: Re-add shape support
Same reasoning as for the recent commit which adds these to drawins.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-11-06 20:51:54 +01:00
Uli Schlachter dac95db79b drawin: Correctly set window shape
Thanks to "rnoway" (aka Arnaud?) for noticing my typo.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-11-06 20:43:05 +01:00
Uli Schlachter 37d074f881 Drawin: Re-add shape support
Commit 03e0ee53d2 removed window shapes, because at the time I was too
lazy to port them from the old image system to oocairo.

This commit re-adds them, but for now only as a way to set the shape.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-11-05 18:11:16 +01:00
Uli Schlachter 4711354b5d awful.tooltip: Update geometry in set_text (FS#956)
Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-11-04 21:53:38 +01:00
Uli Schlachter 52d618c811 Fix fullscreen windows
Fullscreen windows only worked on a screen which had x and y coordinates 0.
Otherwise, the window inside the frame window was completely misplaced.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-11-04 21:35:32 +01:00
Uli Schlachter 14fa66c63f wibox.drawables: Fix a memleak
Drawables could never be garbage-collected, because of the "wallpaper_changed"
signal. The callback function for this signal kept a strong reference to the
drawable.

Fix this by putting all drawable's draw() methods into a weakly keyed tabled so
that the strong reference to them disappears.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-11-03 19:52:39 +01:00
Uli Schlachter 3c320927f8 Hide titlebars on fullscreen clients
Fullscreen clients shouldn't be decorated, thus hide titlebars on those.

This commits assumes that clients get resized when they enter or leave the
fullscreen state. I don't think that this assumption is necessarily true, but
let's just wait for bug reports. :-)

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-11-03 19:34:16 +01:00
Uli Schlachter e57e4a99c5 Enlarge clients when adding titlebars
Previously, the area of the window that the client could draw to got smaller
when titlebars are added. This causes all sorts of odd-looking effects, so
instead this should enlarge the window suitably.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-11-03 18:44:44 +01:00
Uli Schlachter 30860eba87 awful.icccm: Handle titlebars
Size hints should be applied to the "real" client geometry. That means the area
taken by titlebars should be ignored.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-11-01 13:53:23 +01:00
Uli Schlachter 77fedaeee8 Remove unused signal property::widgets
Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-10-31 22:24:23 +01:00
Uli Schlachter 0ff4fc3aef awful.client: Convert another t.screen to awful.tag.getscreen()
Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-10-31 22:13:30 +01:00
Uli Schlachter fa86fbeb52 lib/wibox: Make signals from drawables available
Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-10-31 22:12:30 +01:00
Uli Schlachter 10d48e1fc8 Send correct geometry in ConfigureNotifies
The code was sending out ConfigureNotify events which contained the size of the
frame window. Thus, the client assumed that it is was larger than it actually
was.

Fix this by subtracting the size of the titlebars from the geometry for the
event.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-10-29 10:20:03 +01:00
Uli Schlachter a526e0a559 rc.lua: Resize clients via the titlebar
Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-10-29 09:46:56 +01:00
Uli Schlachter c6658742ff drawin: Update the drawable's geometry on move
We only need to update a drawin's drawing related resources when its size
changes. Thus, when a drawin is just moved, drawin_update_drawing() is not
called. However, this function was used for telling the drawin's drawable about
its geometry. This means that the drawable had an outdated idea about what its
geometry was.

Fix this by making sure to always call drawable_set_geometry().

Thanks to Javafant for reporting this bug on IRC.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-10-26 21:11:27 +02:00
dodo 57746d7a62 capi.screen[scr]:tags() doesn't exist anymore
awful.tag.gettags(scr) does now the job

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-10-26 18:29:30 +02:00
dodo 1e4c14d306 tag.screen doesn't exist anymore
awful.tag.getscreen(tag) returns now the tag's screen index

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-10-26 18:28:52 +02:00
Clément Démoulins d729b71b17 Fix a bug when using in a rule the property 'tag'.
Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-10-26 18:22:05 +02:00
Uli Schlachter 2ea8f44694 Add "-colorspace rgb" to our ImageMagick calls
The old PNGs that were generated caused a warning from libpng when they were
read:

    incorrect gamma=(0/100000)
    Ignoring incorrect gAMA value when sRGB is also present

This changes the look of the resulting icons by making them darker. However,
right now I just want to get rid of that stupid warning. Feel free to suggest
better options.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-10-24 18:09:55 +02:00
Uli Schlachter 779d43fc46 Don't let Xlib own the event queue
Since commit 531f8b415c, we are using Xlib for our X11 connection. However,
we still use XCB for event processing. This means we actually have to tell Xlib
to leave all events alone.

This might fix FS#1047. Perhaps.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-10-24 15:22:52 +02:00
Uli Schlachter a1918b8306 awful.titlebars: Implement
This commits adds the necessary lua code so that we finally can have titlebars.
As the baseline for the needed functionality, the titlebar code in awesome 3.4
and a quick poll on the mailing list were used.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-10-23 20:37:50 +02:00
Uli Schlachter 1f69f36993 Client: Properly get rid of titlebars on unmanage
Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-10-23 10:19:10 +02:00
Uli Schlachter 8348d44444 Tags: Remove screen property
A tag's screen is now implemented purely in lua and it is no longer C's
business.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-10-23 10:05:34 +02:00
Uli Schlachter 9c9b2b52b0 awful.tag.attached_connect_signal: Simplify
Signals are emitted on individual objects and on the class for a while now. This
can be used to simplify this function a lot.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-10-20 22:54:20 +02:00
Uli Schlachter 2ada67b730 Added a functions for getting all tags on a screen
Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-10-20 22:54:20 +02:00
Uli Schlachter 1e418cbe3b drawable: Add property::surface
This new property is used for fixing some missing redraws that the old code had.
Those could be seen via awful.menu. Open and close a submenu repeatedly and the
submenu will appear black.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-10-20 22:51:52 +02:00
Uli Schlachter 1115457ac8 luaA_window_get_opacity: Always return a number
What's the point of distinguishing between "opacity 1" and "no opacity set"?
This commit makes awesome handle both cases identically.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-10-19 13:10:13 +02:00
Uli Schlachter c4a7f80e26 Use gdk-pixbuf instead of Imlib2 (FS#1028)
There are two reasons for this switch:

- gdk-pixbuf is smaller
- gdk-pixbuf supports SVGs

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-10-16 20:02:56 +02:00
Uli Schlachter 41ef107b88 Add titlebars on the C side
This commit makes it possible to add titlebars to a client. These titlebars are
drawables.

The drawin's input handling is moved to the drawable. This allows it to use the
same code for drawin and titlebar input handling, although there are lots of
differences between the two on the C side.

On the lua side, a new wibox.drawable module is created which handles all the
drawable-specific magic and which can also be used for titlebars.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-10-14 17:30:59 +02:00
Uli Schlachter f0512eeaab Introduce drawables
A drawable is something that you can draw to, just like a drawin. However, a
drawable isn't necessarily its own windows. This will later on be used to
implement titlebars where the titlebars are drawables.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-10-14 17:30:54 +02:00
Uli Schlachter f8e6a3a909 draw.h: Include lua.h
This header uses lua_State*, but doesn't actually include lua.h

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-10-14 17:03:00 +02:00
Uli Schlachter 241d582c55 gears.object: Give better error messages
It helps a lot to know which signal does not exist. That should make it a lot
easier to look for the "guily" code without having to resort to the backtrace.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-10-14 16:58:54 +02:00
Uli Schlachter 77243cd09a Add x11-xcb to the pkg-config checks
This is needed for XGetXCBConnection().

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-10-07 16:48:41 +02:00
Tumin Alexander 531f8b415c Added initial support for Xlib cursor themes
I hope this time i got all right with git format-patch.

Signed-off-by: Tumin Alexander <iamtakingiteasy@eientei.org>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-10-07 12:39:56 +02:00
Abdó Roig-Maranges ed9f218669 Fixes module namespace issues in screen.lua and client.lua
The wrong module names were introduced in commits:
0e2960ebf3 and
d799ac76aa.

Once fixed, client.lua and screen.lua mutually require each other, so we must
use a trick, and load the modules inside the functions that need them.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-09-29 16:52:53 +02:00
Abdó Roig-Maranges 34c1c7d416 Makes awful.screen.focus keep the cursor position on screen
When changing focus to an other screen, awful.screen.focus keeps relative
position of the cursor, instead of moving to the top left corner. Does not
trigger mouse:enter and mouse:leave signals.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-09-27 11:26:57 +02:00
Abdó Roig-Maranges 0e2960ebf3 Functions to change client focus by direction across screens
Added functions awful.client.focus.global_bydirection and
awful.client.swap.global_bydirection, that change focus and swap clients,
crossing screen boundaries.

Also modified awful.client.movetoscreen. Now calls awful.screen.focus.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-09-27 11:24:51 +02:00
Abdó Roig-Maranges d799ac76aa Added function to change screen focus by direction
The function awful.screen.focus_bydirection changes the screen focus
according to physical position. The code is based on
awful.client.focus.bydirection.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-09-27 11:14:55 +02:00
Abdó Roig-Maranges 5701c473d4 make naughty catch appname from DBUS messages
Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-09-16 10:44:39 +02:00
Abdó Roig-Maranges 98185eb123 Makes awful.client.restore return the restored client
If some client is restored, returns it, otherwise returns nil.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-09-15 16:06:17 +02:00
Alexander Yakushev c1addbbf72 menubar: Make prompt configurable
Add a parameter to configure menubar's prompt.

Signed-off-by: Alexander Yakushev <yakushev.alex@gmail.com>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-09-12 17:34:22 +02:00
Alexander Yakushev 8150482a53 menubar: Make some parameters configurable again
After the rewrite from modules they ended up being local, but should
be available to user externally.
Also remove unnecessary local context bindings.

Signed-off-by: Alexander Yakushev <yakushev.alex@gmail.com>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-09-12 17:34:22 +02:00
Steven Oliver d60488f73e Have only FreeBSD require dynamic linking (FS#743)
Signed-off-by: Steven Oliver <oliver.steven@gmail.com>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-09-12 17:28:29 +02:00
Alexander Yakushev ec66ac876b Fix debug.dump
dump_return is no longer local, so debug prefix must be provided

Signed-off-by: Alexander Yakushev <yakushev.alex@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
2012-08-31 15:23:56 +02:00
Steven Oliver 175c3b1313 Remove incorrect comment.
The FindLua module from CMake now displays the correct Lua version.

Signed-off-by: Steven Oliver <oliver.steven@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
2012-08-28 13:33:08 +02:00
Uli Schlachter 5d95559977 layout: Remove duplicate capi definition (FS#1032)
Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-08-24 21:57:10 +02:00
Steven Oliver cde352fd45 Don't strip RPATH on Solaris (FS#744)
Signed-off-by: Steven Oliver <oliver.steven@gmail.com>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-08-24 21:52:57 +02:00
Steven Oliver 954af3b62f Add NoDisplay to .desktop file (FS#1031)
Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-08-22 11:38:23 +02:00
Sébastien Luttringer 4d5f001887 Add mousegrabber and keygrabber isrunning luadoc
Signed-off-by: Sébastien Luttringer <seblu@seblu.net>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-08-12 13:21:07 +02:00
Sébastien Luttringer a6ae34d003 Add awful.client.setmaster
This function is the counterpart of awful.client.setslave.

Windows is moved to the first position in the stack.

Signed-off-by: Sébastien Luttringer <seblu@seblu.net>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-08-12 13:21:07 +02:00