summaryrefslogtreecommitdiff
path: root/sway/tree/container.c
AgeCommit message (Collapse)Author
2018-07-09Remove duplicate function declaration and add assertionRyan Dwyer
2018-07-09Implement some floating move commandsRyan Dwyer
This implements the following for floating containers: * move <direction> <amount> * move [absolute] position <x> <y> * move [absolute] position mouse
2018-07-08Destroy empty workspace when destroying its outputvilhalmer
2018-07-07Fix titles when container titles contain UTF-8 charactersRyan Dwyer
The title and marks textures would have their height set from the config's computed max font height, but the textures were not regenerated when the config's max font height changed which made a gap appear. Rather than making it regenerate the title textures every time the config font height was changed, I've changed it to just make the textures the height of the title itself and fill any gap when rendering. Also, the title_width and marks_width variables have been renamed to make it more obvious that they are in output-buffer-local coordinates. Fixes #1936.
2018-07-05container_free: free formatted titleDominique Martinet
2018-07-04Fix booleanRyan Dwyer
2018-07-04Only call view_set_tiled when switching floating modeRyan Dwyer
Otherwise it repeatedly sets the view's border to the config's default.
2018-06-30Merge remote-tracking branch 'upstream/master' into atomicRyan Dwyer
2018-06-30container_at_view: don't offset the view by the window geometryRostislav Pehlivanov
Fixes floating window input offsets. As discussed on IRC with emersion, this shouldn't have been done in the first place.
2018-06-30Revert "Don't unmaximize floating views"Rostislav Pehlivanov
This reverts commit 97672295ed50d1d6272876c4a3b6b5607cab05c6.
2018-06-27Fix memleak in container_get_boxRyan Dwyer
Rather than allocate a structure and expect callers to free it, take a pointer to an existing struct as an argument. This function is no longer called anywhere though.
2018-06-27Fix nitpicksRyan Dwyer
2018-06-26Remove incorrect assertion and supporting codeRyan Dwyer
Children can exist when destroying a container, such as when destroying the last output. Sway is not terminating in that case.
2018-06-26Fix crash when closing output window from outer sessionRyan Dwyer
Emitting the close event needs to happen before container_output_destroy, because container_output_destroy sets the sway_output to NULL and sway_output is used in IPC.
2018-06-26Fix crash when disconnecting outputRyan Dwyer
We were freeing the sway_output immediately upon disconnect which left a dangling pointer in the output's container. It then tried to use the pointer when the container is freed. We don't need to store the sway_output in an output's container which is destroying, so the fix is to set the pointer to NULL and remove the use in container_free. Also added an arrange when the output is disconnected for good measure.
2018-06-24Fix another crash when moving out of stacks or tabsRyan Dwyer
2018-06-24Fix crash when unmapping a view with reapable parentsRyan Dwyer
container_destroy was calling container_reap_empty, which calls container_destroy and so on. Eventually the original container_destroy would return a NULL pointer to the caller which caused a crash. This also fixes an arrange on the wrong container when moving views in and out of stacks.
2018-06-23Implement atomic layout updates for tree operationsRyan Dwyer
This implements atomic layout updates for when views map, reparent or unmap.
2018-06-18Preserve buffers during transactionsRyan Dwyer
* Also fix parts of the rendering where it was rendering the pending state instead of current.
2018-06-11Merge remote-tracking branch 'upstream/master' into atomicRyan Dwyer
2018-06-09Implement gaps (PR #2047)Nate Symer
2018-06-09Refactor everything that needs to arrange windowsRyan Dwyer
* The arrange_foo functions are now replaced with arrange_and_commit, or with manually created transactions and arrange_windows x2. * The arrange functions are now only called from the highest level functions rather than from both high level and low level functions. * Due to the previous point, view_set_fullscreen_raw and view_set_fullscreen are both merged into one function again. * Floating and fullscreen are now working with transactions.
2018-06-09WIP: Atomic layout updates ground workRyan Dwyer
2018-06-08Switch restore workspaces to a nested for-loopBrian Ashworth
2018-06-08Restore workspaces to outputs based on priorityBrian Ashworth
2018-06-06Address emersions comments on output re-enablingBrian Ashworth
2018-06-06Store sway_outputs so that they can be reenabledBrian Ashworth
2018-06-03Fix potential crash when destroying workspaceRyan Dwyer
`_container_destroy` emits a destroy event, and any listener for this event should have access to the full container, not a half destroyed one. `_container_destroy` also destroys the swayc, so we have to grab a reference to the sway_workspace so we can free it afterwards. This also fixes a memory leak where the floating container wasn't freed. Fixes #2092.
2018-06-01Don't unmaximize floating viewsRyan Dwyer
2018-06-01Remove container_self_or_parent_floatingRyan Dwyer
2018-06-01Rename container_set_geometry_from_viewRyan Dwyer
2018-06-01Store swayc coordinates as layout-localRyan Dwyer
2018-06-01Rename set_maximized functions to set_tiledRyan Dwyer
2018-06-01Fix issues with sticky containers and workspacesRyan Dwyer
* Attach sticky containers to new workspaces when switching * Fire the close event *before* we start destroying the workspace to prevent a crash Because the sticky container now follows the visible workspace, this simplifies the rendering and container_at logic.
2018-06-01Fix unfullscreening a floating viewRyan Dwyer
2018-06-01Replace is_floating boolean with functionRyan Dwyer
2018-06-01Use L_FLOATING instead of reapable booleanRyan Dwyer
2018-06-01Implement floatingRyan Dwyer
2018-05-29Add tree representation to IPC workspace descriptionRyan Dwyer
2018-05-28Fix ancestor typosRyan Dwyer
2018-05-27Send workspace::move in container_output_destroyBrian Ashworth
2018-05-27Don't move empty workspaces when output is destroyedemersion
2018-05-25Clean up container title functionsRyan Dwyer
* Add and use lenient_strcat and lenient_strncat functions * Rename `concatenate_child_titles` function as that's no longer what it does * Rename `container_notify_child_title_changed` because we only need to notify that the tree structure has changed, not titles * Don't notify parents when a child changes its title * Update ancestor titles when changing a container's layout * Eg. create nested tabs and change the inner container to stacking * No need to store tree presentation in both container->name and formatted_title
2018-05-22Implement clicking stacked title barsRyan Dwyer
2018-05-22Use constants for titlebar dimensionsRyan Dwyer
2018-05-21Use class or app_id in tree representationRyan Dwyer
2018-05-21Don't track damage for views on inactive tabsRyan Dwyer
2018-05-21Add assertion in container_at_viewRyan Dwyer
2018-05-21Implement tabbed layoutRyan Dwyer
2018-05-19Rebuild textures if needed when moving a containerRyan Dwyer
When moving a container to an output which has a different scale than the previous, rebuild the title and marks textures at the new scale. Fixes #1999.