Commit Graph

6995 Commits

Author SHA1 Message Date
S. Christoffer Eliesen
b18f004210 handlers: geometry_request: Better debug output.
Previous output was confusing.
2015-12-28 14:58:17 +01:00
S. Christoffer Eliesen
6750975b9f arrange_windows_r: Round pixels to match reality, fixes calculations.
If the width or height of a container can't be evenly distributed to its
children, then the layout algorithm still thought it got it right (due
to using decimals) which caused a gap of one or more pixels for some
window arrangements.

This is fixed by this patch by first rounding off the width and height
(so that decimals are never introduced) and then adjusting the last
view in a container to fill the remaining pixels (which now is counted
correctly due to the decimals being removed).

Also, due to the way gaps are implemented, an odd sized gap can never be
aligned properly, so just adjust to closest even number.
2015-12-28 14:58:17 +01:00
S. Christoffer Eliesen
831f6680f4 arrange_windows_r: Bring parent coordinates into layout calculations.
This brings consistency into the algorithm (instead of resetting and
then fetching again).
2015-12-28 01:14:48 +01:00
Drew DeVault
97a4f7ceac Merge pull request #409 from mikkeloscar/bar-airblade-features
swaybar: Add support for Airblade i3bar extensions
2015-12-27 11:10:41 -05:00
Drew DeVault
a67832ab11 Update README 2015-12-27 11:09:28 -05:00
Drew DeVault
82aca85cf8 Merge pull request #410 from mikkeloscar/free-ipc-response
swaybar: Free unused IPC response
2015-12-27 11:06:22 -05:00
Mikkel Oscar Lyderik
8955e5f1ad swaybar: Free unused IPC response 2015-12-27 13:45:22 +01:00
Mikkel Oscar Lyderik
e7aef1e23c swaybar: if-else style fixes 2015-12-27 13:26:37 +01:00
Mikkel Oscar Lyderik
d21b15a4be swaybar: Add support for Airblade i3bar extensions
This extends the i3bar protocol implementation with the following
features from @Airblade/i3:

* background
* border
* border_top, border_bottom, border_left, border_right

A block will now be rendered like this:

```
(border_left + margin) + width + (margin + border_right) + sep
```

Where `border_left/border_right` and their related margin is only drawn
if the `border` is specified and the border has a width > 0 (default is
1).

`border_top` and `border_bottom` does not affect the height of the bar
(no margin is added), thus it will be drawn behind the text if it is too
big. The user should specify a bar height if more space between
top/bottom borders are required.
2015-12-27 13:18:55 +01:00
Drew DeVault
33a74bfb93 Merge pull request #408 from mikkeloscar/add-focus-sibling
Focus new sibling added to container
2015-12-25 14:52:14 -07:00
Mikkel Oscar Lyderik
cf64000e21 Focus new sibling added to container
This makes sure that the window being added to a container gets focus.
2015-12-25 22:32:42 +01:00
Drew DeVault
ed46fa7230 Merge pull request #407 from mikkeloscar/trigger-on-move-floating
Trigger workspace init event (floating)
2015-12-25 10:13:22 -07:00
Mikkel Oscar Lyderik
5d07c61330 Trigger workspace init event (floating)
Triggers workspace init event when moving a floating window to a new
workspace.

This is a follow up on #391 which didn't handle floating windows.
2015-12-25 18:02:12 +01:00
Drew DeVault
3bcb3b332d Merge pull request #406 from mikkeloscar/fix-swaybar-json
swaybar: Fix json related crash.
2015-12-25 08:06:50 -07:00
Mikkel Oscar Lyderik
26d2381040 swaybar: remove random whitespaces 2015-12-25 15:59:00 +01:00
Mikkel Oscar Lyderik
e370187394 swaybar: Fix json related crash.
This should fix the random json related crashes in swaybar.

The crashes occured because the same socket was used for listening on
workspace events and requesting workspace info, resulting in a
unreliable message queue on the socket.

The solution is to use one socket for the events and one socket for
reliably requesting workspace/output info.
2015-12-25 15:57:04 +01:00
Drew DeVault
2179ac353c Merge pull request #403 from crondog/master
swaybar: min_width and align
2015-12-24 15:09:36 -07:00
Drew DeVault
625f90b773 Merge pull request #405 from robotanarchy/add-voidwiki-link-to-readme
Readme: add link to sway article in Void Linux wiki
2015-12-24 15:05:40 -07:00
crondog
8e8ec6d92b Merge branch 'master' of https://github.com/SirCmpwn/sway 2015-12-25 08:59:01 +11:00
robotanarchy
4ec427c0f2 Readme: add link to sway article in Void Linux wiki 2015-12-24 22:50:10 +01:00
Drew DeVault
deb1546be3 Merge pull request #402 from progandy/without-fgets
swaybar: read status line without fgets
2015-12-24 07:04:35 -07:00
Drew DeVault
3e84c4b307 Merge pull request #404 from StephenBrown2/readme_feature_support
Add references to other feature support issues to README
2015-12-24 07:02:37 -07:00
progandy
21541e9e64 swaybar: Replace fgets with read and own buffer 2015-12-24 13:20:37 +01:00
Stephen Brown II
d1af8c45be Add references to other feature support issues to README 2015-12-23 21:49:05 -06:00
Drew DeVault
6ed2485134 Merge pull request #401 from mikkeloscar/travis-clang-build
Add clang build to travis
2015-12-23 19:56:12 -07:00
crondog
edd93b5b55 swaybar: min_width and align 2015-12-24 13:55:17 +11:00
progandy
b66c51ea2c swaybar: fix array indices in i3json_handle 2015-12-24 01:21:29 +01:00
Mikkel Oscar Lyderik
c0568395ee Add clang build to travis 2015-12-23 22:23:27 +01:00
Drew DeVault
ac23fa5f20 Merge pull request #400 from gpyh/forgot_include
Bugfix: Added include(GNUInstallDirs)
2015-12-23 16:49:43 +00:00
Yacine Hmito
284720cf5f Added include(GNUInstallDirs)
Fixes configuration not properly installed since f02cf75
2015-12-23 16:40:28 +01:00
Drew DeVault
f438d3897d Merge pull request #398 from juju2143/bug-correction-1
swaygrab: Fix memory leak when recording videos
2015-12-23 07:53:08 -05:00
Drew DeVault
72043b231d Merge pull request #399 from gpyh/dont-hardcode-path
Use SYSCONFDIR as recommended
2015-12-23 07:52:55 -05:00
Yacine Hmito
f02cf75ff3 Use SYSCONFDIR as recommended
- swaylock config path not hardcoded anymore
- the unusual and weird FALLBACK_CONFIG_DIR is no more
2015-12-23 12:22:48 +01:00
Julien Savard
7b00eab8ad swaygrab: Fix memory leak when recording videos 2015-12-22 23:47:07 -05:00
Drew DeVault
23df7ed502 Merge pull request #396 from crondog/fixbar
Stop swaybar from not rendering after the first go around
2015-12-22 19:47:12 -05:00
crondog
bd74320da9 Stop swaybar from not rendering after the first go around
I am not sure if this is a correct issue/fix but on my system at least
after an i3bar protocol is detected this while loop never goes back
around meaning it doesnt process the status line anymore.
2015-12-23 10:49:21 +11:00
Drew DeVault
27848b41ab Merge pull request #394 from progandy/i3bar-json-protocol
swaybar: I3bar json protocol
2015-12-22 12:19:51 -05:00
progandy
8fefdb3c64 swaybar: fix memory leaks 2015-12-22 17:54:47 +01:00
progandy
d060d0a39f swaybar: add a visible separator between elements 2015-12-22 17:54:38 +01:00
progandy
aa5930c966 swaybar: Improve i3bar proto implementation
Also reintroduce plaintext fallback for simple status lines.
2015-12-22 17:34:37 +01:00
progandy
d37169a927 swaybar: fix whitespace 2015-12-22 17:26:40 +01:00
Drew DeVault
8a22ac3966 Initialize id, part two 2015-12-22 08:21:13 -05:00
Drew DeVault
7c06ef35de Initialize ID 2015-12-22 08:14:50 -05:00
crondog
70b24fbb1f Clean up a bit 2015-12-22 22:49:41 +11:00
crondog
d1f6f45cb3 Make start on i3bar json parsing 2015-12-22 22:36:57 +11:00
Drew DeVault
91c102a897 Merge pull request #393 from robotanarchy/musl-libc-compatibility
musl libc compatibility
2015-12-21 20:42:08 -05:00
Drew DeVault
5a13d19d49 Merge pull request #391 from mikkeloscar/trigger-workspace-ipc
Trigger ipc_event_workspace in all cases
2015-12-21 20:37:55 -05:00
robotanarchy
c3e9ee5e43 replace non-standard qsort_r with qsort
I've tried to make as few changes, as possible.

Usually the reason for using qsort_r is, that you can pass an extra userdata pointer to the
compare function. However, in sway list_sort wrapped qsort_r and always called a wrapper
function for comparing, the wrapper function then had the real compare function as argument.
The only thing, that the wrapper function does, is dereferencing the 'left' and 'right' function
arguments before passing them to the real compare function.

I have renamed list_sort to list_qsort to avoid confusion (so nobody tries to use list_qsort like
list_sort) and removed the wrapper functionality. Now the dereferencing must be done in the
compare function, that gets passed.

Some compare functions were used in both list_sort and list_seq_find. To make the difference
clear, I've added a '_qsort' suffix to the compare functions, that are intended to be used with
the new list_qsort. (In other words: list_qsort is not compatible anymore with list_seq_find).

- Changed and renamed function (it isn't used anywhere but in commands.c, and only for sorting):
	compare_set -> compare_set_qsort
- New wrapper functions:
	sway_binding_cmp_qsort (for sway_binding_cmp)
	sway_mouse_binding_cmp_qsort (for sway_mouse_binding_cmp)
2015-12-22 00:38:18 +01:00
robotanarchy
470e59b291 fix backtrace detection in CMake
works on arch (glibc) and void linux (tested with musl libc) now
2015-12-22 00:32:41 +01:00
Mikkel Oscar Lyderik
50b04884b6 Trigger ipc_event_workspace in all cases
This makes sure that the workspace IPC event is triggered when needed.

Fixes #382 while making sure that the IPC event is only triggered once.
2015-12-21 23:07:52 +01:00