summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* Align titles to baselineLibravatar Ryan Dwyer2018-09-08
| | | | | | | | | | | | | This does the following: * Adds a baseline argument to get_text_size (the baseline is the distance from the top of the texture to the baseline). * Stores the baseline in the container when calculating the title height. * Takes the baseline into account when calculating the config's max font height. * When rendering, pads the textures according to the baseline so they line up.
* Fix gaps in title textures and vertically center themLibravatar Ryan Dwyer2018-09-08
| | | | | | | | | | | | | | | | | | | There was code that attempted to fill in the gap below the title texture when the texture isn't tall enough, but this only worked when the output was positioned at 0,0. The reason is that render_rect expects a box passed in a hybrid layout-local/output-buffer-local system, and we were passing purely output-buffer-local. I've added a comment documenting this. By the way, we can't use layout-local coordinates for the rectangle box because in some cases we set the box based on a texture size. Texture sizes are buffer-local, and we'd have to divide them to bring it back to layout-local which means losing precision. We could use output-buffer-local coordinates for the box, but this would require translating the coordinates from layout-local to output-buffer-local in many places during rendering. This patch also vertically centers the text inside the title bar.
* Merge pull request #2603 from emersion/fix-dndLibravatar Drew DeVault2018-09-07
|\ | | | | Fix drag-and-drop
| * Fix drag-and-dropLibravatar emersion2018-09-07
| |
* | Merge pull request #2600 from RyanDwyer/fix-workspace-switchingLibravatar Drew DeVault2018-09-06
|\ \ | | | | | | Fix workspace switching
| * | Fix workspace switchingLibravatar Ryan Dwyer2018-09-07
|/ / | | | | | | The output also needs to be made dirty when focusing a new output.
* | Merge pull request #2594 from RyanDwyer/fix-pinentryLibravatar emersion2018-09-06
|\ \ | | | | | | Float views when min == max on either dimension
| * | Float views when min == max on either dimensionLibravatar Ryan Dwyer2018-09-06
| | | | | | | | | | | | | | | | | | This fixes pinentry-gtk-2, but might make other views floating which would otherwise be tiled. This patch is more of a trial which could end up becoming a permanent fix.
* | | Merge pull request #2593 from RyanDwyer/dont-be-so-dirtyLibravatar Drew DeVault2018-09-06
|\ \ \ | |/ / |/| | Don't dirty outputs unnecessarily
| * | Don't dirty outputs unnecessarilyLibravatar Ryan Dwyer2018-09-06
|/ /
* | Merge pull request #2592 from RyanDwyer/fix-fullscreen-unmap-focusLibravatar emersion2018-09-06
|\ \ | | | | | | Second attempt at restoring focus when closing a fullscreen view
| * | Second attempt at restoring focus when closing a fullscreen viewLibravatar Ryan Dwyer2018-09-06
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | To reproduce the problem this is fixing, create H[view view view], fullscreen one of the views and close it. The entire workspace will be given focus rather than one of the siblings. This happens because we emit the destroy event, so the seat code tries to find a new focus, but the view it finds is still believed to be hidden by the fullscreen view so it's discarded and the workspace is used instead. This clears the workspace's fullscreen pointer prior to emitting the destroy event so that the seat code finds an appropriate new focus.
* | Merge pull request #2591 from RyanDwyer/fix-workspace-switchLibravatar Brian Ashworth2018-09-06
|\ \ | | | | | | Make outputs dirty when changing focus
| * | Make outputs dirty when changing focusLibravatar Ryan Dwyer2018-09-06
|/ / | | | | | | | | Fixes a workspace switch bug introduced by 5967ee1fbcba66ea57d971b924a51209a70d3aaa.
* | Merge pull request #2589 from RyanDwyer/seat-set-focus-typeLibravatar emersion2018-09-06
|\ \ | | | | | | Introduce seat_set_focus_container and seat_set_focus_workspace
| * | Introduce seat_set_focus_container and seat_set_focus_workspaceLibravatar Ryan Dwyer2018-09-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These are the same as seat_set_focus, but accept a specific type rather than using nodes. Doing this adds more typesafety and lets us avoid using &con->node which looks a little ugly. This fixes a crash that pretty much nobody would ever come across. If you have a bindsym for "focus" with no arguments and run it from an empty workspace, sway would crash because it assumes `container` is not NULL.
* | | Merge pull request #2590 from RyanDwyer/fix-output-active-workspaceLibravatar Brian Ashworth2018-09-06
|\ \ \ | |/ / |/| | Fix crash when switching to new workspace during transaction
| * | Fix crash when switching to new workspace during transactionLibravatar Ryan Dwyer2018-09-06
|/ / | | | | | | | | | | | | When rendering, the workspace for the output needs to be retrieved from the output's `current` state. output_get_active_workspace returns the pending workspace, which crashes if the pending workspace is new and hasn't completed a transaction yet.
* | Merge pull request #2578 from RyanDwyer/fix-binding-reloadLibravatar emersion2018-09-06
|\ \ | | | | | | Fix management of bindings during reload
| * | Fix management of bindings during reloadLibravatar Ryan Dwyer2018-09-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | seat_execute_command needs to check the flags on `binding_copy`, as `binding` will be a dangling pointer after a reload command. handle_keyboard_key needs to set the next_repeat_binding for non-reloads prior to executing the command in case the binding is freed by the reload command.
* | | Merge pull request #2587 from RyanDwyer/fix-layout-toggle-crashLibravatar Brian Ashworth2018-09-06
|\ \ \ | | | | | | | | Fix crash when running "layout toggle"
| * | | Fix crash when running "layout toggle"Libravatar Ryan Dwyer2018-09-06
|/ / / | | | | | | | | | | | | The argc and argv used in this function are the same ones used by the layout command itself.
* | | Merge pull request #2586 from RyanDwyer/fix-fullscreen-focus-crashLibravatar Drew DeVault2018-09-05
|\ \ \ | | | | | | | | Fix crash when focusing from fullscreen in an invalid direction
| * | | Fix crash when focusing from fullscreen in an invalid directionLibravatar Ryan Dwyer2018-09-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fullscreen a view * Run `focus <direction>` where there is no output in that direction The output returned was rightfully NULL, which needs to be handled.
* | | | Merge pull request #2585 from RyanDwyer/fix-move-across-outputsLibravatar Drew DeVault2018-09-05
|\ \ \ \ | | | | | | | | | | Fix crash when moving view across outputs
| * | | | Fix crash when moving view across outputsLibravatar Ryan Dwyer2018-09-06
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It was incorrectly determining that the container being moved and the destination had the same parent, which resulted in tree corruption. Both parents can be NULL but the containers may belong to different workspaces. To reproduce, create layout H[V[view] view] in one workspace then move a view left or right from another output into that workspace.
* | | | Merge pull request #2583 from RyanDwyer/fix-null-surface-crashLibravatar Drew DeVault2018-09-05
|\ \ \ \ | |/ / / |/| | | Fix crash when views rapidly map and unmap
| * | | Fix crash when views rapidly map and unmapLibravatar Ryan Dwyer2018-09-06
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Suppose the following: * Transactions are already in progress - say transaction A. * View A maps, which creates transaction B and appends it to the transaction queue. * View B maps, which creates transaction C and appends it to the queue. * View A unmaps, which creates transaction D and appends it to the queue. * Transaction A completes, so transaction B attempts to save View A's buffer, but this doesn't exist so it saves nothing. * Rendering code attempts to render View A, but there is no saved buffer nor live buffer that it can use. Rather than implement an elaborate solution for a rare circumstance, I've take the safe option of just not rendering anything for that view. It means that if you reproduce the scenario above, you might get the title and borders rendered but no surface.
* | | Merge pull request #2582 from ascent12/funcLibravatar Drew DeVault2018-09-05
|\ \ \ | | | | | | | | Remove __PRETTY_FUNCTION__
| * | | 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
| | |