Commit graph

23 commits

Author SHA1 Message Date
Daniel Eklöf
b41255dbcc bar: wayland: check return values of ftruncate(), read() and write()
Fixes building with -D_FORTIFY_SOURCE=2
2019-05-04 11:27:51 +02:00
Daniel Eklöf
879d5cefb1 wayland: HiDPI: initial support for HiDPI displays
We do it differently from everybody else...

A traditional HiDPI implementation typically scales up
everything. I.e. if the user wants a 1px border, it's scaled up to
2px. The wayland server typically presents an output width/height that
has been scaled *down*.

This is all a bit backwards, but perhaps was the best choice to make
legacy applications at least work.

f00bar on the other hand, wants to give the user absolute
control. Thus, we don't scale up at all. If the user wants a 25px bar
height, that's what he gets.

This does mean however, that we need to scale *down* the surface size
since it's in logical pixels, not physical.

So we scale *down* the surface size (which then gets scaled back up by
the wayland server), and then render everything *on* that surface
without any scaling.
2019-04-15 11:08:38 +02:00
Daniel Eklöf
0aee7befd8 bar/wayland: better name for SHM backing memfd 2019-03-30 22:24:13 +01:00
Daniel Eklöf
fa586b9ac1 wayland: depend on xdg-output for output size/positioning information 2019-03-14 19:41:06 +01:00
Daniel Eklöf
6030ef5298 bar/wayland: use cairo_format_stride_for_width() to calculate stride 2019-03-03 12:56:13 +01:00
Daniel Eklöf
fe709bd82b Revert "bar/wayland: drop wl_seat interface version requirement to 1"
This reverts commit a1bcf07599.
2019-02-18 21:43:44 +01:00
Daniel Eklöf
28d39f3aec bar/xcb: ignore non-zero border margins 2019-02-17 19:45:26 +01:00
Daniel Eklöf
0ab772f869 bar: move x,y coordinates to xcb backend 2019-02-17 19:40:20 +01:00
Daniel Eklöf
3d8cb7f17e bar/wayland: implement border margins 2019-02-17 15:47:44 +01:00
Daniel Eklöf
12ef2569a4 bar/wayland: log *something* when a global is removed 2019-02-17 12:38:52 +01:00
Daniel Eklöf
a1bcf07599 bar/wayland: drop wl_seat interface version requirement to 1
This allows us to drop the empty 'name' handler.
2019-02-17 12:38:52 +01:00
Daniel Eklöf
ad3a33cf3d bar/wayland: do *not* enable keyboard interactivity 2019-02-07 18:27:09 +01:00
Daniel Eklöf
76655bc944 bar/wayland: much improved error handling
Most asserts() have now been replaced with error messages. Cleanup()
no longer tries to free/destroy NULL resources.
2019-02-07 11:51:42 +01:00
Daniel Eklöf
0fc5778107 bar/wayland: wl_* APIs typically don't handle destroy(NULL) 2019-02-07 11:22:02 +01:00
Daniel Eklöf
4a064ebfff bar/wayland: fix includes 2019-02-06 18:04:32 +01:00
Daniel Eklöf
73c62e9797 bar/wayland: cleanup 2019-02-03 17:45:26 +01:00
Daniel Eklöf
29b57bcc48 bar/wayland: call on_mouse() directly from listeners 2019-02-03 15:28:32 +01:00
Daniel Eklöf
85a1940e47 bar/wayland: free XDG outputs, and manager, in cleanup() 2019-02-03 15:16:19 +01:00
Daniel Eklöf
c6fd99f005 bar/wayland: track XDG outputs, as this gets us the monitor identifiers 2019-02-03 15:10:26 +01:00
Daniel Eklöf
c226f9f0c8 bar/wayland: initial support for multiple monitors
We don't actually support multiple monitors, but now we at least track
the available monitors.

This also adds support for the BAR_BOTTOM location.
2019-02-03 13:55:21 +01:00
Daniel Eklöf
47ac57dd03 bar/wayland: cursor support
This implements backend.set_cursor().
2019-02-03 13:13:10 +01:00
Daniel Eklöf
130043a259 bar/wayland: comment out most of the debug logging 2019-02-03 12:21:42 +01:00
Daniel Eklöf
ed8e17c6c9 wayland: mucho wip: initial sort-of-working wayland backend
Bar is drawn, though only TOP is supported atm. No
screen/display/output selection is possible yet. Mouse *click* works,
but not setting the cursor.

Lots of debug output, crappy code yada yada.
2019-02-03 11:08:53 +01:00