summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
...
| * | | Remove __PRETTY_FUNCTION__Libravatar Scott Anderson2018-09-06
|/ / / | | | | | | | | | | | | This is a non-standard extension as well as completely useless in C. __func__ is the standard way of doing this.
* | | Merge pull request #2579 from RyanDwyer/adjust-container-boxLibravatar Drew DeVault2018-09-05
|\ \ \ | | | | | | | | Adjust container box
| * | | Adjust container boxLibravatar Ryan Dwyer2018-09-06
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prior to f5b9815128b6c000bb5d47c339480fa481a5e99d, children of tabbed and stacked containers would have their container size and position set to the same as the tabbed/stacked container. Normally this would be a problem for a layout such as T[V[view]], but there was some code in the arrange functions which would check if the grandparent of the view was a tabbed or stacked container and would offset the view's Y accordingly. Commit f5b9815128b6c000bb5d47c339480fa481a5e99d changed the box to exclude the titlebar for all tabbed/stacked children so that the grandparent check could be removed. But this meant the title was not covered in the container and wasn't damaged when the child changed its title. This patch changes it so that a child of a tabbed/stacked container will have its box include the title bar if the child is a view, but not if it's a layout container. This fixes the title damage issue while avoiding the grandparent check in the arrange functions, and matches what we see visually.
* | | Merge pull request #2580 from RyanDwyer/fix-focus-after-fullscreenLibravatar Drew DeVault2018-09-05
|\ \ \ | |/ / |/| | Restore focus correctly when closing a fullscreen view
| * | Restore focus correctly when closing a fullscreen viewLibravatar Ryan Dwyer2018-09-06
|/ / | | | | | | | | We weren't calling seat_send_focus. I think this was previously called by seat_set_focus_warp.
* | Merge pull request #2572 from RedSoxFan/wlr-output-disablingLibravatar Drew DeVault2018-09-05
|\ \ | | | | | | Call wlr_output_enable on enable/disable if needed
| * | Call wlr_output_enable on enable/disable if neededLibravatar Brian Ashworth2018-09-05
|/ /
* | Merge pull request #2540 from RyanDwyer/typesafetyLibravatar Drew DeVault2018-09-05
|\ \ | | | | | | Implement type safe arguments and demote sway_container
| * | Allow marked containers to be moved out of the scratchpad via move commandLibravatar Ryan Dwyer2018-09-05
| | |
| * | Fix inversed condition in criteriaLibravatar Ryan Dwyer2018-09-05
| | |
| * | Fix clicking workspace buttonsLibravatar Ryan Dwyer2018-09-05
| | | | | | | | | | | | | | | Because node_at_coords was returning the workspace's node, it interpreted this as clicking the focused workspace which was a no op.
| * | Fix crash when view in scratchpad becomes urgentLibravatar Ryan Dwyer2018-09-05
| | |
| * | Focus empty workspace when clicking itLibravatar Ryan Dwyer2018-09-05
| | | | | | | | | | | | | | | Also removes container_at_coords as this function is no longer necessary.
| * | Fix crash when running layout toggle splitLibravatar Ryan Dwyer2018-09-05
| | |
| * | Fix floating view moving to 0,0 when splittingLibravatar Ryan Dwyer2018-09-05
| | |
| * | Fix crash when using focus parent/child from an empty workspaceLibravatar Ryan Dwyer2018-09-05
| | |
| * | Fix scratchpad related crashesLibravatar Ryan Dwyer2018-09-05
| | | | | | | | | | | | | | | | | | | | | * Was crashing when a view was moved to the scratchpad (prev focus had no parent). * Was crashing when a hidden scratchpad view unmaps because it has no workspace.
| * | Fix output position issueLibravatar Ryan Dwyer2018-09-05
| | | | | | | | | | | | | | | | | | | | | Looks like the output dimensions need to be set when arranging rather than when a mode is set. Fixes an issue with position of fullscreen views.
| * | Fix another focus bug when moving into outputLibravatar Ryan Dwyer2018-09-05
| | | | | | | | | | | | Find the focused_inactive view rather than possibly selecting a parent.
| * | Fix focus bugLibravatar Ryan Dwyer2018-09-05
| | | | | | | | | | | | | | | | | | | | | | | | When changing focus from a view in one workspace to an empty workspace using `focus <direction>`, the view in the previous workspace would keep focused styling. This is because the check to unfocus it was only done in the container case and not workspace case, so it's been moved out of both.
| * | Fix swaybars with no defined outputLibravatar Ryan Dwyer2018-09-05
| | |
| * | Fix crash when moving mouse over a fullscreen split containerLibravatar Ryan Dwyer2018-09-05
| | |
| * | Fix moving workspace to outputLibravatar Ryan Dwyer2018-09-05
| | |
| * | Update output propertes on mode changeLibravatar Ryan Dwyer2018-09-05
| | | | | | | | | | | | | | | This was previously done when arranging the output, but only needs to be done on mode change.
| * | Fix mouse_warpingLibravatar Ryan Dwyer2018-09-05
| | |
| * | Apply default config to outputLibravatar Ryan Dwyer2018-09-05
| | | | | | | | | | | | | | | When starting without any output config, the default config was not applying.
| * | Remove offset argument to container_add_siblingLibravatar Ryan Dwyer2018-09-05
| | | | | | | | | | | | I added this thinking that it might come in useful. Turns out it didn't.
| * | Fix crash when focus hits edge of rootLibravatar Ryan Dwyer2018-09-05
| | |
| * | Don't use wlr_output propertiesLibravatar Ryan Dwyer2018-09-05
| | | | | | | | | | | | These properties are before rotation.
| * | Implement type safe arguments and demote sway_containerLibravatar Ryan Dwyer2018-09-05
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit changes the meaning of sway_container so that it only refers to layout containers and view containers. Workspaces, outputs and the root are no longer known as containers. Instead, root, outputs, workspaces and containers are all a type of node, and containers come in two types: layout containers and view containers. In addition to the above, this implements type safe variables. This means we use specific types such as sway_output and sway_workspace instead of generic containers or nodes. However, it's worth noting that in a few places places (eg. seat focus and transactions) referring to them in a generic way is unavoidable which is why we still use nodes in some places. If you want a TL;DR, look at node.h, as well as the struct definitions for root, output, workspace and container. Note that sway_output now contains a workspaces list, and workspaces now contain a tiling and floating list, and containers now contain a pointer back to the workspace. There are now functions for seat_get_focused_workspace and seat_get_focused_container. The latter will return NULL if a workspace itself is focused. Most other seat functions like seat_get_focus and seat_set_focus now accept and return nodes. In the config->handler_context struct, current_container has been replaced with three pointers: node, container and workspace. node is the same as what current_container was, while workspace is the workspace that the node resides on and container is the actual container, which may be NULL if a workspace itself is focused. The global root_container variable has been replaced with one simply called root, which is a pointer to the sway_root instance. The way outputs are created, enabled, disabled and destroyed has changed. Previously we'd wrap the sway_output in a container when it is enabled, but as we don't have containers any more it needs a different approach. The output_create and output_destroy functions previously created/destroyed the container, but now they create/destroy the sway_output. There is a new function output_disable to disable an output without destroying it. Containers have a new view property. If this is populated then the container is a view container, otherwise it's a layout container. Like before, this property is immutable for the life of the container. Containers have both a `sway_container *parent` and `sway_workspace *workspace`. As we use specific types now, parent cannot point to a workspace so it'll be NULL for containers which are direct children of the workspace. The workspace property is set for all containers, except those which are hidden in the scratchpad as they have no workspace. In some cases we need to refer to workspaces in a container-like way. For example, workspaces have layout and children, but when using specific types this makes it difficult. Likewise, it's difficult for a container to get its parent's layout when the parent could be another container or a workspace. To make it easier, some helper functions have been created: container_parent_layout and container_get_siblings. container_remove_child has been renamed to container_detach and container_replace_child has been renamed to container_replace. `container_handle_fullscreen_reparent(con, old_parent)` has had the old_parent removed. We now unfullscreen the workspace when detaching the container, so this function is simplified and only needs one argument now. container_notify_subtree_changed has been renamed to container_update_representation. This is more descriptive of its purpose. I also wanted to be able to call it with whatever container was changed rather than the container's parent, which makes bubbling up to the workspace easier. There are now state structs per node thing. ie. sway_output_state, sway_workspace_state and sway_container_state. The focus, move and layout commands have been completely refactored to work with the specific types. I considered making these a separate PR, but I'd be backporting my changes only to replace them again, and it's easier just to test everything at once.
* | Merge pull request #2574 from ammgws/block-bg-fixLibravatar emersion2018-09-05
|\ \ | |/ |/| Fix swaybar block background fill logic
| * Fix swaybar block background fill logicLibravatar Jason2018-09-05
|/ | | Same as #2571 but for 1.0.
* Merge pull request #2569 from RyanDwyer/deny-reload-repeatLibravatar Drew DeVault2018-09-04
|\ | | | | Deny repeating reload by holding key
| * Deny repeating reload by holding keyLibravatar Ryan Dwyer2018-09-04
|/ | | | | | | | | | | | | | | Fixes #2568 The binding that gets stored in the keyboard's `repeat_binding` would get freed on reload, leaving a dangling pointer. Rather than attempt to unset the keyboard's `repeat_binding` along with the other bindings, I opted to just not set it for the reload command because there's no point in reloading repeatedly by holding the binding. This disables repeat bindings for the reload command. As we now need to detect whether it's a reload command in two places, I've added a binding flag to track whether it's a reload or not.
* Merge pull request #2561 from RyanDwyer/window-role-criteriaLibravatar Drew DeVault2018-09-03
|\ | | | | Implement window_role criteria token
| * Implement window_role criteria tokenLibravatar Ryan Dwyer2018-09-04
|/ | | | Depends on https://github.com/swaywm/wlroots/pull/1226
* Merge pull request #2564 from ppascher/masterLibravatar Drew DeVault2018-09-03
|\ | | | | Fix window_type with disabled xwayland support
| * move criteria "instance", "class" and "window_role" inside HAVE_XWAYLAND ifdefs"Libravatar Pascal Pascher2018-09-03
| |
| * fix window_type with disabled xwayland supportLibravatar Pascal Pascher2018-09-03
| |
| * Fixed window_type with disabled xwayland support.Libravatar Pascal Pascher2018-09-03
| |
* | Merge pull request #2542 from sghctoma/fix-freebsd-buildLibravatar Drew DeVault2018-09-03
|\ \ | | | | | | FreeBSD fixes
| * | Change _XOPEN_SOURCE defines to _POSIX_C_SOURCELibravatar sghctoma2018-09-03
| | |
| * | Merge remote-tracking branch 'upstream/master' into fix-freebsd-buildLibravatar sghctoma2018-09-03
| |\|
| * | Enable privilege dropping of FreeBSDLibravatar sghctoma2018-08-30
| | | | | | | | | | | | | | | Privilege dropping works on FreeBSD too, so only the caps parts need to be Linux-only.
| * | Add missing destroy calls to server_finiLibravatar sghctoma2018-08-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | Add FreeBSD-specific PAM configurationLibravatar sghctoma2018-08-30
| | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | Fix SYSCONFDIR to include "prefix"Libravatar sghctoma2018-08-30
| | | | | | | | | | | | | | | | | | | | | 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.
| * | Make libcap an optional dependencyLibravatar sghctoma2018-08-30
| | | | | | | | | | | | | | | FreeBSD does not have libcap, so without "required: false" Sway fails to build.
| * | Fix feature macros for FreeBSDLibravatar sghctoma2018-08-30
| | | | | | | | | | | | | | | On FreeBSD, snprintf and vsnprintf are visible only if _XOPEN_SOURCE >= 600.
* | | Merge pull request #2563 from taiyu-len/fix/misaligned-pointer-accessLibravatar Drew DeVault2018-09-03
|\ \ \ | | | | | | | | fix misaligned integer stores/loads