Commit graph

24 commits

Author SHA1 Message Date
Uli Schlachter
21b7b29630 xwindow_translate_for_gravity: Change instead of set argument
Previously, this function overwrote the value of its argument with the
result. After this change, the function merely changes the given
variable by the calculated argument.

Thus, the old behaviour is achieved by setting the variable to zero
before the call, which all callers already did. However, for most
callers this change means that a temporary variable can be removed and
instead xwindow_translate_for_gravity() will directly change the target
variable.

No change in behaviour intended.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2018-08-17 09:58:30 +02:00
Uli Schlachter
01e61079c3 Add & use a non-fatal kind of assert() (#1779)
Aborting the process is sometimes a bit harsh for a failed assertion.
This adds a non-fatal assert() macro called "check()" and uses it in
some places where we might be able to survive the error.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2017-05-13 23:22:15 +02:00
Uli Schlachter
64e05c236f xwindow: Add support for input shape from SHAPE 1.1
Signed-off-by: Uli Schlachter <psychon@znc.in>
2017-01-26 10:45:24 +01:00
Uli Schlachter
39df6d98e7 Fix obvious typo in xwindow_translate_for_gravity()
Signed-off-by: Uli Schlachter <psychon@znc.in>
2015-10-10 17:38:51 +02:00
Daniel Hahler
418b7cf459 minor: formatting 2015-03-28 22:17:45 +01:00
Uli Schlachter
c9ff826fbe xwindow_shape_pixmap: Correctly handle invalid geometry
Signed-off-by: Uli Schlachter <psychon@znc.in>
2014-04-14 10:04:14 +02:00
Uli Schlachter
d2b1e92f9e Clean up header includes
Every .c file has to include the corresponding .h file first to make sure the
headers are self-contained. Additionally, this moves some unneeded includes
around.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2014-03-30 20:07:48 +02:00
Uli Schlachter
56c5797905 Finish C-side support for window shapes (FS#1051)
A drawin's and a client's bounding and clip shape can now be queried and is
returned as a cairo surface.  Also, a client window's shape (e.g. xeyes setting
its own shape) can be queried via c.shape_client_bounding and
c.shape_client_clip.  All of these properties now emit signals when changed.

(This also silently fixes a bug in luaA_drawin_set_shape_bounding() which forgot
to include the drawin's border in its size calculation)

Signed-off-by: Uli Schlachter <psychon@znc.in>
2014-01-03 17:01:43 +01:00
Uli Schlachter
2d3103345e Implement window gravity in ConfigureRequests (FS#1137)
Previously, awesome didn't move windows when they sent a ConfigureRequest (and
it also shrunk them by the size of titlebars, before it forgot to add these).
This commit adds proper gravity support to ConfigureRequest handling.

This was tested with test-gravity from metacity (in src/wm-tester).

Signed-off-by: Uli Schlachter <psychon@znc.in>
2013-04-07 11:57:40 +02:00
Uli Schlachter
a7c3f10ce5 Send correct position in ConfigureNotify events (FS#1030)
This event should contain the position of the top-left corner of the client's
content area. Thus, we have to add the border width to the position.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2013-03-31 18:07:49 +02: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
Gregor Best
c2ea920ca0 remove encoding=utf-8 from modelines
This option is no longer valid in modelines, so it has been removed from
all modelines using the following shellscript:

    #!/bin/ksh

    git ls-tree -r HEAD | cut -f2 | while read f; do
        egrep -e '^(//|--) vim: .*encoding=' $f >/dev/null || continue
        sed -E -e '/^(\/\/|--) vim:/s/:encoding=utf-8//' $f > /tmp/foo
        mv /tmp/foo $f
    done

Signed-off-by: Gregor Best <gbe@ring0.de>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-09-11 17:34:09 +02:00
Arnaud Fontaine
be7fda45d8 Update the code following release of xcb-util 0.3.8.
xcb-util is now split into several repositories since 0.3.8. This
release also cleaned up the API a lot, thus update the code
accordingly.

Signed-off-by: Arnaud Fontaine <arnau@debian.org>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-05-10 18:27:39 +02:00
Uli Schlachter
0e819f2328 xcolor: Rename to color
Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-10-06 20:14:19 +02:00
Uli Schlachter
f0297e5dd2 xwindow_buttons_grab(): Ignore XCB_NONE as window
Trying to grab buttons on window "XCB_NONE" results in an X11 error.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-09-30 20:56:58 +02:00
Uli Schlachter
ce814b4dbf Use globalconf.timestamp
This makes us use globalconf.timestamp instead of XCB_CURRENT_TIME in the places
where it makes sense.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-08-12 14:52:23 +02:00
Uli Schlachter
87237a197f Get a client's property more intelligently
Previous, there was a round-trip after each request for a property since we
waited for the reply immediately. Instead, it makes a lot more sense to first
send all of the requests and then handle all the replies. This now takes only a
single round-trip for all the properties from client_update_properties().

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-08-09 13:54:49 +02:00
Gregor Best
5d0a81c8bf fix some deprecated atom constants
Signed-off-by: Gregor Best <gbe@ring0.de>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-08-08 21:43:23 +02:00
Uli Schlachter
0c393c8f39 xwindow_set_state(): Use uint32_t instead of long
This function calls xcb_change_property() with format==32 which means that it is
called with a 32-bit integer. However, on 64-bit machines, sizeof(long) == 64
which means that this code did the wrong thing.

This wasn't noticed before because it only causes a real difference on
big-endian machines.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-06-16 18:16:42 +02:00
Julien Danjou
cdd888d6cf xwindow: add xwindow_set_border_color helper function
Signed-off-by: Julien Danjou <julien@danjou.info>
2010-05-28 13:28:10 +02:00
Julien Danjou
af654a75d2 xwindow: ungrab before grabbing
Signed-off-by: Julien Danjou <julien@danjou.info>
2010-05-28 13:28:00 +02:00
Uli Schlachter
ac4c788fd9 Use WM_STATE_NORMAL as default
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>
2010-03-29 17:47:41 +02:00
Julien Danjou
d5e3a25bbc xwindow: check that window exists before setting opacity
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-10-27 12:16:53 +01:00
Julien Danjou
3ce7638e0f window: rename to xwindow
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-10-20 20:42:05 +02:00
Renamed from window.c (Browse further)