Commit graph

4590 commits

Author SHA1 Message Date
taiyu d625d68d4a
prevent ub caused by misaligned stores/loads 2018-09-02 17:07:12 -07:00
emersion 3af9588eb4
Merge pull request #2562 from RyanDwyer/ld-library-path
Add meson option for LD_LIBRARY_PATH
2018-09-02 21:42:46 +02:00
emersion e438342157
Merge pull request #2560 from RyanDwyer/focus-on-window-activation
Implement focus_on_window_activation
2018-09-02 21:41:24 +02:00
Ryan Dwyer 4ece26e511 Add ld-library-path meson option 2018-09-02 23:07:47 +10:00
Ryan Dwyer 7795f733d8 Use dashes in meson option names 2018-09-02 22:58:15 +10:00
Ryan Dwyer 6fb03817c9 Rename fowa enum and use switch in view_request_activate 2018-09-02 18:25:45 +10:00
Ryan Dwyer f057a0195e Implement focus_on_window_activation
Depends on https://github.com/swaywm/wlroots/pull/1223
2018-09-02 18:20:34 +10:00
emersion 159edc6d13
Merge pull request #2559 from RyanDwyer/xwayland-check-modal
Check modal state when determining whether an xwayland view should float
2018-09-02 10:17:29 +02:00
Ryan Dwyer 69cd1dfaca Check modal state when determining whether an xwayland view should float
Depends on https://github.com/swaywm/wlroots/pull/1222.

I don't know of a program that sets the state to modal without setting
the window type, but I know the modal property works because logging the
property shows it's true for the Firefox Open File dialog.
2018-09-02 17:14:12 +10:00
emersion ca3be93757
Merge pull request #2554 from emersion/init-dmabuf-global-in-renderer
Update for swaywm/wlroots#1216
2018-09-02 08:51:07 +02:00
emersion 407c12fddd Update for swaywm/wlroots#1216 2018-09-01 19:33:24 +02:00
Drew DeVault 80270ba086
Merge pull request #2544 from RyanDwyer/fix-deferred-cmd-crash
Fix crash when running deferred commands
2018-09-01 13:00:26 -04:00
emersion 349d1f3be8 Do not modeset disabled outputs 2018-09-01 18:56:53 +02:00
Drew DeVault 89a045835f
Merge pull request #2547 from RyanDwyer/fix-reload-crash
Fix crash on reload
2018-09-01 10:39:36 -04:00
Drew DeVault 692dc55eca
Merge pull request #2549 from RyanDwyer/border-improvements
Implement deprecated new_window and new_float commands
2018-09-01 10:38:02 -04:00
Drew DeVault 4ac67d6408
Merge pull request #2550 from RyanDwyer/window-type-criteria
Implement window_type criteria token
2018-09-01 10:37:42 -04:00
Ryan Dwyer f4ec308376 Implement window_type criteria token 2018-09-01 23:04:49 +10:00
Ryan Dwyer 016d0455f8 Implement deprecated new_window and new_float commands
May as well make it as easy as possible for users who are coming from
i3.

This also changes the `border` command to accept a thickness when
setting the border to normal. This makes it work the same way as the
`default_border` command. Eg. `border normal 5`
2018-09-01 21:28:13 +10:00
Ryan Dwyer 7e81e58e7d Allow reload command to exist anywhere in the command string
This fixes a crash if you have commands where reload appears in the
middle or at the end, such as `bindsym r mode default, reload`.
2018-09-01 11:45:48 +10:00
Ryan Dwyer ebe65a4d48 Fix crash on reload
If sway is reloaded using a bindsym which has multiple commands, it
failed to detect the reload command, didn't create a duplicate of the
binding and would crash because the reload command frees the bindings.

For example:

    mode system {
        bindsym r reload, mode default
    }

In this example, the binding->command is "reload, mode default".

Fixes #2545
2018-09-01 11:17:15 +10:00
emersion 1f1b1b34d6
Merge pull request #2546 from RyanDwyer/fix-transaction-spamming
Don't send never-ending transactions when a focused layer surface commits
2018-08-31 14:05:19 +02:00
Ryan Dwyer dce549c537 Don't send never-ending transactions when a focused layer surface commits
This moves the arrange_windows call into the arrange_layers function,
where we know the output actually needs to be arranged.

Additionally, we shouldn't set focus to the parent of an unknown
container type, because the parent may be an output and this causes a
crash because outputs can't have direct focus.

Fixes #2543
2018-08-31 21:39:28 +10:00
Ryan Dwyer 1e0459f7f7 Fix crash when running deferred commands
Fixes #2541
2018-08-31 19:49:12 +10:00
sghctoma 67188b7cba Enable privilege dropping of FreeBSD
Privilege dropping works on FreeBSD too, so only the caps parts need to
be Linux-only.
2018-08-30 10:33:48 +02:00
sghctoma ac7a0aa038 Add missing destroy calls to server_fini
Rootston calls "wlr_xwayland_destroy" and "wl_display_destroy_clients"
on shutdown, but these were not called by Sway. Without them, Sway
crashes on exit before the display destroy event handler could be
called. This causes two problems:

 - The TTY is not reset, and it locks up after exiting Sway.
 - drmDropMaster is not called, and the implicit drop (that should
   occur when the DRM fd is closed) seems not to be working in some
   scenarios (e.g. if you have a tmux session running - maybe the fd
   is retained somehow by tmux?). In other words, it you exit Sway,
   you can't start it (or any other program that wants to be DRM
   master) again until you close all your tmux sessions.
2018-08-30 10:05:04 +02:00
sghctoma 6de777a986 Add FreeBSD-specific PAM configuration
The "login" PAM configuration means somathing entirely different on
FreeBSD than on Linux: if you try to authenticate as the calling user,
it OKs the request without prompting for password. The "passwd" config
implements the desired functionality, therefore it should be used by
swaylock.
2018-08-30 09:58:57 +02:00
sghctoma 6942f5b684 Fix SYSCONFDIR to include "prefix"
SYSCONFDIR is used to determine the path of the default configuration
file. 'sysconfdir' is set to 'prefix/sysconfdir' later (on line 139),
so configuration files are installed under 'prefix', but SYSCONFDIR did
not reflect it.
2018-08-30 09:44:24 +02:00
sghctoma 462e15d9a5 Make libcap an optional dependency
FreeBSD does not have libcap, so without "required: false" Sway fails
to build.
2018-08-30 09:40:35 +02:00
sghctoma cc16948c85 Fix feature macros for FreeBSD
On FreeBSD, snprintf and vsnprintf are visible only if
_XOPEN_SOURCE >= 600.
2018-08-30 09:34:26 +02:00
Drew DeVault de9e80459a
Merge pull request #2537 from ianyfan/commands
commands: fix exec quoting
2018-08-29 08:42:03 -04:00
Drew DeVault 3686724c9e
Merge pull request #2531 from RyanDwyer/maybe-fix-transaction-crash
Don't use bitfield to test for similar transactions
2018-08-29 08:40:13 -04:00
Ian Fan 79899064b6 commands: fix exec quoting 2018-08-29 10:55:12 +01:00
Brian Ashworth 5f6dcffe47
Merge pull request #2536 from RyanDwyer/fix-nested-tabs
Fix rendering of nested tabs
2018-08-29 00:47:46 -04:00
Ryan Dwyer 3c4196b986 Fix rendering of nested tabs
The C_CONTAINER check needs to apply to C_VIEW as well.
2018-08-29 14:38:51 +10:00
Drew DeVault ed775103c8
Merge pull request #2535 from RyanDwyer/fix-reap-crash
Fix crash when reaping a workspace
2018-08-28 21:00:56 -04:00
Ryan Dwyer 2438f5f050 Fix crash when reaping a workspace
It wasn't returning the surviving container.
2018-08-29 10:51:54 +10:00
Drew DeVault 095ca75769
Merge pull request #2533 from RyanDwyer/fix-workspace-tabs
Fix workspace tabs
2018-08-28 20:49:14 -04:00
Ryan Dwyer 53fe7b02e9 Fix workspace tabs
When collecting focus to save into the transaction state, the workspace
needs to look in the tiling list only.

As seat_get_focus_inactive_tiling returns any descendant, the list also
needs to be traversed back up to the direct child of the workspace.

Fixes #2532
2018-08-29 10:38:46 +10:00
Ryan Dwyer b12f7be907 Don't use bitfield to test for similar transactions
When there's multiple transactions in the queue, sway can take a
shortcut by checking if they all operate on the same set of containers.
If they do, it can skip all but the last transaction. The way we tested
for transactions which used the same containers was to exclusive-or
their con IDs together, but this has proved not only to be ineffective
but also has the potential to make sway crash.

This patch replaces the exclusive-or with a loop and container
comparison.
2018-08-29 08:29:11 +10:00
Brian Ashworth 602ccca1a8
Merge pull request #2526 from ianyfan/commands
Fix moving container to inactive workspace on different output
2018-08-28 12:41:18 -04:00
Brian Ashworth 876b5147cf
Merge branch 'master' into commands 2018-08-28 12:32:22 -04:00
Drew DeVault 6143a64cda
Merge pull request #2528 from fokditkak/add-bulgarian-readme
Add bulgarian readme
2018-08-28 10:58:37 -04:00
Martin Kalchev 5f2ebe0dd5 added ref to bulgarian translation 2018-08-28 17:12:38 +03:00
Ian Fan bc30f2d528 commands: fix moving container to different output
When moving a container to an inactive workspace on a different output, this will change the focus on the destination output back to its last active workspace
2018-08-28 15:08:46 +01:00
Martin Kalchev 15f709b155 spellcheck and help add. 2018-08-28 17:06:15 +03:00
Drew DeVault 83230435f7
Merge pull request #2511 from RyanDwyer/refactor-arrange
Prepare arrange code for type safe arguments
2018-08-28 10:03:52 -04:00
Ryan Dwyer 126a82f14f Fix gaps issues
* In layout command, arrange parent of parent - not sure why this is
needed but it is
* Remove gap adjustment when rendering
* Workspace should use outer gaps, not inner
* Add exceptions for tabbed and stacked containers
* Don't mess with gap state when splitting a container
2018-08-28 23:53:51 +10:00
Ryan Dwyer f5b9815128 Prepare arrange code for type safe arguments
This commit changes the arrange code in a way that will support type
safe arguments.

The arrange_output et al functions are now public, however I opted not
to use them directly yet. I've kept the generic arrange_windows there
for convenience until type safety is fully implemented. This means this
patch has much less risk of breaking things as it would otherwise.

To be type safe, arrange_children_of cannot exist in its previous form
because the thing passed to it could be either a workspace or a
container. So it's now renamed to arrange_children and accepts a list_t,
as well as the parent layout and parent's box.

There was some code which checked the grandparent's layout to see if it
was tabbed or stacked and adjusted the Y offset of the grandchild
accordingly. Accessing the grandparent layout isn't easy when using type
safe arguments, and it seemed odd to even need to do this. I determined
that this was needed because a child of a tabbed container would have a
swayc Y matching the top of the tab bar. I've changed this so a child of
a tabbed container will have a swayc Y matching the bottom of the tab
bar, which means we don't need to access the grandparent layout.  Some
tweaks to the rendering and autoconfigure code have been made to
implement this, and the container_at code appears to work without
needing any changes.

arrange_children_of (now arrange_children) would check if the parent had
gaps and would copy them to the child, effectively making the
workspace's gaps recurse into all children. We can't do this any more
without passing has_gaps, gaps_inner and gaps_outer as arguments to
arrange_children, so I've changed the add_gaps function to retrieve it
from the workspace directly.

apply_tabbed_or_stacked_layout has been split into two functions, as it
had different logic depending on the layout.

Lastly, arrange.h had an unnecessary include of transaction.h. I've
removed it, which means I've had to add it to several other files.
2018-08-28 23:50:41 +10:00
Martin Kalchev da0ffa3b20 initial commit 2018-08-28 16:16:37 +03:00
Drew DeVault 98ef29c228
Merge pull request #2523 from RedSoxFan/fix-floating-drag-outputs
Stop floaters from snapping on move to new output
2018-08-27 13:44:08 -04:00