Commit graph

1087 commits

Author SHA1 Message Date
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
robotanarchy 03c041dd30 add -fPIC flag (position independent code) like in wlc
Linking fails otherwise:

Linking C executable ../bin/sway
/usr/bin/ld: CMakeFiles/sway.dir/commands.c.o: relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC
CMakeFiles/sway.dir/commands.c.o: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
sway/CMakeFiles/sway.dir/build.make:442: recipe for target 'bin/sway' failed
2015-12-21 19:10:49 +01:00
robotanarchy 94cac7a014 use CMake's FindBacktrace for backtrace feature detection 2015-12-21 19:01:17 +01:00
robotanarchy 3dd2393797 remove unused execinfo.h include from debug_log.c 2015-12-21 18:57:26 +01:00
Drew DeVault 5fbecba37a Merge pull request #381 from sce/fix_gaps
Fix gaps
2015-12-20 15:44:42 -05:00
S. Christoffer Eliesen f4b9c3856a layout: Fix edge_gaps off with top/left panels.
Since x/y won't be zero when there's a top or left panel in place, we
need to take those coordinates into account too.
2015-12-20 21:23:20 +01:00
S. Christoffer Eliesen ce54b4ff2e container: Fix inner gaps against screen edge. 2015-12-20 21:23:20 +01:00
Drew DeVault adf5b8fed7 Merge pull request #380 from mikkeloscar/bar-font-support
swaybar: Add font support
2015-12-20 13:30:11 -05:00
Mikkel Oscar Lyderik 83eb8d16aa swaybar: Add font support 2015-12-20 18:32:54 +01:00
Drew DeVault 3082245243 Merge pull request #373 from sce/per_panel_config
Per panel config
2015-12-20 12:05:32 -05:00
Drew DeVault fdb9ce52ef Merge pull request #378 from mikkeloscar/bar-pixel-perfect
swaybar: pixel perfect layout
2015-12-20 12:05:13 -05:00
Drew DeVault dfc23086fd Merge pull request #377 from progandy/optional-pixbuf
make gdk-pixbuf dependency really optional
2015-12-20 11:56:13 -05:00
Mikkel Oscar Lyderik d373a193ac swaybar: pixel perfect layout
This should make the bar workspace button layout identical to the layout
used in i3.
2015-12-20 17:52:33 +01:00
progandy 21014e606b make gdk-pixbuf dependency really optional 2015-12-20 17:37:52 +01:00
Drew DeVault 66554698a0 Update README screenshot
The new one has the top cut off, I didn't notice.
2015-12-20 09:30:13 -05:00
Drew DeVault b171047d82 Merge pull request #369 from crondog/master
swaybar: use height from config
2015-12-20 09:24:55 -05:00
Drew DeVault 33fb648938 Merge pull request #372 from sce/fix_swaybar_output_name_test
config: load_swaybars: Fix name comparison.
2015-12-20 09:23:34 -05:00
Drew DeVault 702cf053e2 Merge pull request #370 from sce/fix_free_bar
config: free_bar: Check if outputs is NULL.
2015-12-20 09:20:03 -05:00
Drew DeVault 05e48835f7 Make some dependencies optional
Closes #368
2015-12-20 09:14:30 -05:00
S. Christoffer Eliesen e45fd9b6c5 extensions: Track panels by wl_resource, position per panel.
Track each panel separately via its wl_resource. `set_panel_position`
might be called before `set_panel`, so reuse panel config.

Place the position in panel_config so that each panel has its own
position.
2015-12-20 12:54:34 +01:00
S. Christoffer Eliesen 6db0f6f80f extensions: panel_config->resource => wl_surface_res.
Change the name to something less ambigious.
2015-12-20 12:54:34 +01:00
S. Christoffer Eliesen 6ace37d0b1 config: load_swaybars: Fix name comparison. 2015-12-20 12:53:56 +01:00
S. Christoffer Eliesen 2779559b15 config: free_bar: Check if outputs is NULL.
bar_config.outputs is NULL if no output is explicitly defined in config
(ie. use for for all outputs).
2015-12-20 10:14:36 +01:00
crondog da6cd3cef7 swaybar: use height from config 2015-12-20 15:47:32 +11:00
Drew DeVault 3777c8993b Merge pull request #366 from mikkeloscar/fix-swaybar-high-cpu
swaybar: use select instead of busyloop
2015-12-19 10:44:47 -05:00
Mikkel Oscar Lyderik bc9b93f597 swaybar: use select instead of busyloop
Use of busyloop caused high cpu usage for sway because swaybar had to be
redrawn all the time. By using select instead the bar only has to be
redrawn when the status_command changes (i.e. every second) or when the
workspaces are updated.

Fix #345
2015-12-19 16:33:58 +01:00
Drew DeVault 616ea27e19 Merge pull request #364 from cyberhuman/master
Update readme dependency list and build instructions
2015-12-19 09:01:50 -05:00
Raman Varabets bb4339f62e Update readme dependency list 2015-12-19 15:42:16 +08:00
Drew DeVault 155fb7a221 Merge pull request #362 from crondog/master
swaybar: use position from config
2015-12-18 20:24:05 -05:00
crondog c8555f5813 swaybar: use position from config 2015-12-19 12:15:12 +11:00
Drew DeVault 859f2fea0c Just bail if ws_json is fucked up 2015-12-18 19:45:16 -05:00
Drew DeVault de2f3b393a Wow that was stupid 2015-12-18 19:38:36 -05:00
Drew DeVault d1e031025d I'm still getting crashes without this line 2015-12-18 19:35:27 -05:00
Drew DeVault 3282163f64 Implement compositor support for swaylock
This makes swaylock more or less work.
2015-12-18 19:30:19 -05:00
Drew DeVault eefc93db43 Fix lock extension setup in compositor 2015-12-18 19:30:19 -05:00
Drew DeVault 253efad437 Merge pull request #361 from mikkeloscar/i3bar-command
Add support for running swaybar_command
2015-12-18 19:17:56 -05:00
Mikkel Oscar Lyderik 207678e809 Add support for running swaybar_command 2015-12-19 01:03:39 +01:00
Drew DeVault 7647762bab Fix default workspace name generation
This fixes the issue where workspace 10 ends up being the default.
2015-12-18 18:52:51 -05:00
Drew DeVault 2ab4e5676e Merge pull request #360 from sce/fix_arrange_windows
Fix arrange windows
2015-12-18 18:39:02 -05:00
Drew DeVault f62502e78d Drop sway-xorg.desktop 2015-12-18 18:21:55 -05:00
Drew DeVault b9f14cee41 Merge pull request #359 from mikkeloscar/i3bar-command
Add bar option: swaybar_command <command>
2015-12-18 18:19:59 -05:00
Mikkel Oscar Lyderik 9d7f1afdfb Add bar option: swaybar_command <command> 2015-12-19 00:13:51 +01:00
Drew DeVault 6555aad7f9 Merge pull request #358 from mikkeloscar/reload-swaybg-swaybar
Reload swaybar/swaybg on config reload.
2015-12-18 18:13:40 -05:00
S. Christoffer Eliesen f0b3ee6d84 layout: arrange_windows: Partially fix swaybar irregularties. 2015-12-18 23:53:42 +01:00
S. Christoffer Eliesen 0ad5059b6f layout: arrange_windows: Fix/better debug output. 2015-12-18 23:53:42 +01:00
Mikkel Oscar Lyderik 90ff36cab8 Terminate children when freeing output container 2015-12-18 18:27:54 +01:00
Mikkel Oscar Lyderik ede27eabc5 Reload swaybar/swaybg on config reload.
This works by tracking the pids of the child processes in the related
output container and terminating the processes and spawning new ones on
a config reload.

Should solve: #347
2015-12-18 18:27:44 +01:00
Drew DeVault 73c8a48417 Merge pull request #357 from sce/fix_swaybar_crashes
swaybar: ipc_update_ws: Fix memory corruption.
2015-12-18 09:42:54 -05:00
S. Christoffer Eliesen de219f6bec swaybar: ipc_update_ws: Fix memory corruption.
json_object_object_get_ex does not require json_object_put according to
docs, this should fix the random crashes.
2015-12-18 15:30:46 +01:00