aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-09-11Rename OP_MOVE to OP_MOVE_FLOATINGRyan Dwyer
In preparation for introducing OP_MOVE_TILING.
2018-09-10Merge pull request #2617 from wmww/cursor-enter-on-focus-changeDrew DeVault
Give windows pointer focus immediately
2018-09-10Minor fixWilliam Wold
2018-09-10Minor fixWilliam Wold
2018-09-10Prevent stacked layout from crashingWilliam Wold
2018-09-10Give windows pointer focus immediately when they are switched toWilliam Wold
Fixes #2401 (aka #2558) Previously, when switching windows, pointer focus was not changed until the pointer was moved. This makes the pointer enter happen immediately, without the side effects of other attempted fixes.
2018-09-10Merge pull request #2613 from apreiml/fix_no_last_focus_failemersion
handle_layer_shell_surface: Do not crash if seat doesn't have focus
2018-09-10handle_layer_shell_surface: Do not crash if seat doesn't have focusArmin Preiml
2018-09-08Merge pull request #2609 from ianyfan/commandsDrew DeVault
commands: prevent running empty seat command
2018-09-08commands: prevent running empty seat commandIan Fan
2018-09-08Merge pull request #2530 from apreiml/ipc_missing_get_treeDrew DeVault
start adding missing ipc properties
2018-09-08Merge pull request #2602 from RyanDwyer/fix-title-texturesDrew DeVault
Fix gaps in title textures and vertically center them
2018-09-08code style fixesArmin Preiml
2018-09-08get_tree: percent cast to double on divisionArmin Preiml
2018-09-08get_tree: default valuesArmin Preiml
Added default values for all nodes, because the i3 get_tree always returns all fields inside the json objects. Add geometry and window for views. Window is only availabel on x11 windows otherwise it's NULL. Calculate percent only if parent is not empty to avoid division by 0.
2018-09-08missing ipc stuff: rebase to typesafetyArmin Preiml
2018-09-08Align titles to baselineRyan Dwyer
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.
2018-09-08Fix gaps in title textures and vertically center themRyan Dwyer
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.
2018-09-07Merge pull request #2603 from emersion/fix-dndDrew DeVault
Fix drag-and-drop
2018-09-07Fix drag-and-dropemersion
2018-09-06Merge pull request #2600 from RyanDwyer/fix-workspace-switchingDrew DeVault
Fix workspace switching
2018-09-07Fix workspace switchingRyan Dwyer
The output also needs to be made dirty when focusing a new output.
2018-09-06Merge pull request #2594 from RyanDwyer/fix-pinentryemersion
Float views when min == max on either dimension
2018-09-06Merge pull request #2593 from RyanDwyer/dont-be-so-dirtyDrew DeVault
Don't dirty outputs unnecessarily
2018-09-06Float views when min == max on either dimensionRyan Dwyer
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.
2018-09-06Don't dirty outputs unnecessarilyRyan Dwyer
2018-09-06Merge pull request #2592 from RyanDwyer/fix-fullscreen-unmap-focusemersion
Second attempt at restoring focus when closing a fullscreen view
2018-09-06Second attempt at restoring focus when closing a fullscreen viewRyan Dwyer
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.
2018-09-06Merge pull request #2591 from RyanDwyer/fix-workspace-switchBrian Ashworth
Make outputs dirty when changing focus
2018-09-06Make outputs dirty when changing focusRyan Dwyer
Fixes a workspace switch bug introduced by 5967ee1fbcba66ea57d971b924a51209a70d3aaa.
2018-09-06Merge pull request #2589 from RyanDwyer/seat-set-focus-typeemersion
Introduce seat_set_focus_container and seat_set_focus_workspace
2018-09-06Merge pull request #2590 from RyanDwyer/fix-output-active-workspaceBrian Ashworth
Fix crash when switching to new workspace during transaction
2018-09-06Fix crash when switching to new workspace during transactionRyan Dwyer
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.
2018-09-06Introduce seat_set_focus_container and seat_set_focus_workspaceRyan Dwyer
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.
2018-09-06Merge pull request #2578 from RyanDwyer/fix-binding-reloademersion
Fix management of bindings during reload
2018-09-06Merge pull request #2587 from RyanDwyer/fix-layout-toggle-crashBrian Ashworth
Fix crash when running "layout toggle"
2018-09-06Fix crash when running "layout toggle"Ryan Dwyer
The argc and argv used in this function are the same ones used by the layout command itself.
2018-09-05Merge pull request #2586 from RyanDwyer/fix-fullscreen-focus-crashDrew DeVault
Fix crash when focusing from fullscreen in an invalid direction
2018-09-05Merge pull request #2585 from RyanDwyer/fix-move-across-outputsDrew DeVault
Fix crash when moving view across outputs
2018-09-06Fix crash when focusing from fullscreen in an invalid directionRyan Dwyer
* 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.
2018-09-05Merge pull request #2583 from RyanDwyer/fix-null-surface-crashDrew DeVault
Fix crash when views rapidly map and unmap
2018-09-06Fix crash when moving view across outputsRyan Dwyer
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.
2018-09-05Merge pull request #2582 from ascent12/funcDrew DeVault
Remove __PRETTY_FUNCTION__
2018-09-06Fix crash when views rapidly map and unmapRyan Dwyer
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.
2018-09-06Remove __PRETTY_FUNCTION__Scott Anderson
This is a non-standard extension as well as completely useless in C. __func__ is the standard way of doing this.
2018-09-05Merge pull request #2579 from RyanDwyer/adjust-container-boxDrew DeVault
Adjust container box
2018-09-05Merge pull request #2580 from RyanDwyer/fix-focus-after-fullscreenDrew DeVault
Restore focus correctly when closing a fullscreen view
2018-09-06Restore focus correctly when closing a fullscreen viewRyan Dwyer
We weren't calling seat_send_focus. I think this was previously called by seat_set_focus_warp.
2018-09-06Adjust container boxRyan Dwyer
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.
2018-09-06Fix management of bindings during reloadRyan Dwyer
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.