aboutsummaryrefslogtreecommitdiff
path: root/sway
AgeCommit message (Collapse)Author
2018-09-04Implement window_role criteria tokenRyan Dwyer
Depends on https://github.com/swaywm/wlroots/pull/1226
2018-09-03Merge pull request #2564 from ppascher/masterDrew DeVault
Fix window_type with disabled xwayland support
2018-09-03Merge pull request #2542 from sghctoma/fix-freebsd-buildDrew DeVault
FreeBSD fixes
2018-09-03Merge pull request #2563 from taiyu-len/fix/misaligned-pointer-accessDrew DeVault
fix misaligned integer stores/loads
2018-09-03Fix crash when a splash screen opens on an empty workspaceIan Fan
2018-09-03move criteria "instance", "class" and "window_role" inside HAVE_XWAYLAND ifdefs"Pascal Pascher
2018-09-03Fixed window_type with disabled xwayland support.Pascal Pascher
2018-09-03Change _XOPEN_SOURCE defines to _POSIX_C_SOURCEsghctoma
2018-09-03Merge remote-tracking branch 'upstream/master' into fix-freebsd-buildsghctoma
2018-09-03Merge branch 'master' into disabled-no-modesetBrian Ashworth
2018-09-02prevent ub caused by misaligned stores/loadstaiyu
2018-09-02Rename fowa enum and use switch in view_request_activateRyan Dwyer
2018-09-02Implement focus_on_window_activationRyan Dwyer
Depends on https://github.com/swaywm/wlroots/pull/1223
2018-09-02Check modal state when determining whether an xwayland view should floatRyan Dwyer
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-02Merge pull request #2554 from emersion/init-dmabuf-global-in-rendereremersion
Update for swaywm/wlroots#1216
2018-09-01Update for swaywm/wlroots#1216emersion
2018-09-01Merge pull request #2544 from RyanDwyer/fix-deferred-cmd-crashDrew DeVault
Fix crash when running deferred commands
2018-09-01Do not modeset disabled outputsemersion
2018-09-01Merge pull request #2547 from RyanDwyer/fix-reload-crashDrew DeVault
Fix crash on reload
2018-09-01Merge pull request #2549 from RyanDwyer/border-improvementsDrew DeVault
Implement deprecated new_window and new_float commands
2018-09-01Implement window_type criteria tokenRyan Dwyer
2018-09-01Implement deprecated new_window and new_float commandsRyan Dwyer
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-01Allow reload command to exist anywhere in the command stringRyan Dwyer
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-01Fix crash on reloadRyan Dwyer
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-08-31Don't send never-ending transactions when a focused layer surface commitsRyan Dwyer
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-31Fix crash when running deferred commandsRyan Dwyer
Fixes #2541
2018-08-30Enable privilege dropping of FreeBSDsghctoma
Privilege dropping works on FreeBSD too, so only the caps parts need to be Linux-only.
2018-08-30Add missing destroy calls to server_finisghctoma
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-30Fix feature macros for FreeBSDsghctoma
On FreeBSD, snprintf and vsnprintf are visible only if _XOPEN_SOURCE >= 600.
2018-08-29Merge pull request #2537 from ianyfan/commandsDrew DeVault
commands: fix exec quoting
2018-08-29Merge pull request #2531 from RyanDwyer/maybe-fix-transaction-crashDrew DeVault
Don't use bitfield to test for similar transactions
2018-08-29commands: fix exec quotingIan Fan
2018-08-29Fix rendering of nested tabsRyan Dwyer
The C_CONTAINER check needs to apply to C_VIEW as well.
2018-08-29Fix crash when reaping a workspaceRyan Dwyer
It wasn't returning the surviving container.
2018-08-29Fix workspace tabsRyan Dwyer
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-29Don't use bitfield to test for similar transactionsRyan Dwyer
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-28commands: fix moving container to different outputIan Fan
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-28Fix gaps issuesRyan Dwyer
* 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-28Prepare arrange code for type safe argumentsRyan Dwyer
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-27Merge pull request #2523 from RedSoxFan/fix-floating-drag-outputsDrew DeVault
Stop floaters from snapping on move to new output
2018-08-27Merge pull request #2494 from RyanDwyer/fix-overflowing-subsurfacesDrew DeVault
Allow subsurfaces which overflow the container to be interacted with
2018-08-27Merge pull request #2520 from RedSoxFan/destroy-empty-ws-on-evacDrew DeVault
Destroy empty workspaces in output_evacuate
2018-08-27seat.c: clean-up seat_set_focus_warp functionIan Fan
2018-08-27Stop floaters from snapping on move to new outputBrian Ashworth
2018-08-27Initialise variable properlyScott Anderson
2018-08-27Destroy empty workspaces in output_evacuateBrian Ashworth
2018-08-26ipc: clean-up container_create_notify functionIan Fan
2018-08-26ipc: emit window close event earlier, before destroyingIan Fan
2018-08-26Merge pull request #2513 from RyanDwyer/rename-root-outputsDrew DeVault
Rename sway_root.outputs to sway_root.all_outputs
2018-08-26Remove layout.cRyan Dwyer
When we have type safety we'll need to have functions for workspace_add_tiling and so on. This means the existing container functions will be just for containers, so they are being moved to container.c. At this point layout.c doesn't contain much else, so I've relocated everything and removed the file. * container_swap and its static functions have been moved to the swap command and made static. * container_recursive_resize has been moved to the resize command and made static. * The following have been moved to container.c: * container_handle_fullscreen_reparent * container_insert_child * container_add_sibling * container_add_child * container_remove_child * container_replace_child * container_split * enum movement_direction and sway_dir_to_wlr have been moved to util.c. Side note: Several commands included layout.h which then included root.h. With layout.h gone, root.h has to be included by those commands.