aboutsummaryrefslogtreecommitdiff
path: root/sway/tree
AgeCommit message (Collapse)Author
2018-05-11Overhaul criteria implementationRyan Dwyer
The criteria struct now uses properties for each token type rather than the list_t list of tokens. The reason for this is that different token types have different data types: pcre, string and number to name a few. This solution should be more flexible moving forward. A bonus of this is that criteria is now easier to understand when looking at the struct definition. The criteria parser has been rewritten because the previous one didn't support valueless pairs (eg. [class="foo" floating]). Criteria now has types. Types at the moment are CT_COMMAND, CT_ASSIGN_WORKSPACE and CT_ASSIGN_OUTPUT. i3 uses types as well. Previously the assign command was creating a criteria with 'move to workspace <name>' as its command, but this caused the window to appear briefly on the focused workspace before being moved to the assigned workspace. It now creates the view directly in the assigned workspace. Each view will only execute a given criteria once. This is achieved by storing a list of executed criteria in the view. This is the same strategy used by i3. Escaping now works properly. Previously you could do things like [class="Fire\"fox"] and the stored value would be 'Fire\"fox', but it should be (and now is) 'Fire"fox'. The public functions in criteria.c are now all prefixed with criteria_. Xwayland views now listen to the set_title, set_class and set_window_type events and criteria will be run when these happen. XDG shell has none of these events so it continues to update the title in handle_commit. Each view type's get_prop function has been split into get_string_prop and get_int_prop because some properties like the X11 window ID and window type are numeric. The following new criteria tokens are now supported: * id (X11 window ID) * instance * tiling * workspace
2018-05-10Damage container when updating titleemersion
2018-05-10Damage borders when damaging viewemersion
2018-05-06Implement pango supportRyan Dwyer
Implements support for the pango: prefix in the font command. Closes #1903.
2018-05-05Add extra check for view title being NULLRyan Dwyer
2018-05-05Move code for re-arranging after font height change into a common placeRyan Dwyer
2018-05-05Refactor parse_title_format()Ryan Dwyer
2018-05-05Implement title_formatRyan Dwyer
This implements the title_format command, with a new placeholder %shell which gets substituted with the view type (xwayland, xdg_shell_v6 or wl_shell). Example config: for_window [title=".*"] title_format %title (class=%class instance=%instance shell=%shell)
2018-05-05Use scissor to render title textureRyan Dwyer
This allows the title's texture to always be the full width of the text, and clipped at render time according to the desired width (eg. tabs...). As an added bonus, the texture no longer needs to be updated when containers are arranged.
2018-05-04Check for NULL in container_update_titleAlex Xu (Hello71)
Fixes crash when opening Firefox developer tools.
2018-05-03Fix title texture widthRyan Dwyer
Use max of the container width or text width.
2018-05-03Convert border_colors.text to float[4]Drew DeVault
2018-05-03Fix anti-aliasingDrew DeVault
2018-05-03Fix potential segfault when setting container titleRyan Dwyer
2018-05-03Calculate config->font_height based on existing container titlesRyan Dwyer
2018-05-03Render titlesRyan Dwyer
2018-05-02Fixed #1888 GCC cannot compile due to uninitialized variables (#1889)Dillen Meijboom
2018-05-01Fix layer surface crash on output destroydb
Before freeing sway_output, NULL the wlr_output reference to it. Check for that NULL in layer_shell handle_destroy. Don't damage null container in unmap. Additionaly, terminate swaybg if its output is being disabled.
2018-05-01Restore view_update_position()Ryan Dwyer
2018-05-01Allow clicking view decorations to focus viewRyan Dwyer
2018-05-01Fix surface offset when using bordersRyan Dwyer
2018-05-01Move docblock and fix indenting of switch/case.Ryan Dwyer
2018-05-01Implement bordersRyan Dwyer
Implements rendering of borders. Title text is still to do. Implements the following configuration directives: * client.focused * client.focused_inactive * client.unfocused * client.urgent * border * default_border
2018-05-01Fix segfault in view_unmap()Ryan Dwyer
If the last remaining view on a workspace is unmapped and the workspace is not visible, parent will be a C_OUTPUT. Call the arrange_output() function in this case.
2018-04-30Remove arrange_windows()Ryan Dwyer
After the refactor, this function is no longer called.
2018-04-28Refactor arrange_windows()Ryan Dwyer
Replaces arrange_windows() with arrange_root(), arrange_output(), arrange_workspace() and arrange_children_of(). Also makes fullscreen views save and restore their dimensions, which allows it to preserve any custom resize and is also a requirement for floating views once they are implemented.
2018-04-26Remove sway_container.workspace_layoutRyan Dwyer
Fixes #1716.
2018-04-24Update wording about unmanaged/unmapped viewsRyan Dwyer
2018-04-24Add assert to view_execute_criteria()Ryan Dwyer
2018-04-24Implement criteria commandsRyan Dwyer
Implements the following commands: * for_window [...] <cmdlist> * assign [...] <workspace>
2018-04-24Fix crash in container_descendants()Ryan Dwyer
If root is a C_VIEW, the children property is a null pointer.
2018-04-21Update for wlroots#885emersion
2018-04-20Keep view fullscreened when moving to another workspace.Ryan Dwyer
container_handle_fullscreen_reparent() must be called *after* setting the container's new parent.
2018-04-19container_get_in_direction(): Don't split this functionRyan Dwyer
2018-04-19arrange_windows(): Calculate workspace properties when fullscreenRyan Dwyer
2018-04-18More fullscreen fixes.Ryan Dwyer
* Render fullscreen views without wlr function, which makes popups and lockscreen work. * Don't allow input events to surfaces behind fullscreen views. * Use correct output dimensions (for rotated outputs).
2018-04-18Fullscreen fixes.Ryan Dwyer
2018-04-17Fix views unmapping their own fullscreen windows.Ryan Dwyer
2018-04-17Create sway_workspace struct.Ryan Dwyer
2018-04-17Feedback for fullscreen.Ryan Dwyer
2018-04-16Implement fullscreen.Ryan Dwyer
2018-04-13Fix gcc maybe-uninitialized warningDominique Martinet
2018-04-13container_destroy: fix segfaultDominique Martinet
cont->children doesn't have to be NULL when there is no children
2018-04-07container_create_notify on splitTony Crisci
2018-04-07seat get focus inactive viewTony Crisci
2018-04-07Fix output containers positionemersion
2018-04-07Merge pull request #1756 from emersion/output-damageDrew DeVault
Fine-grained damage tracking
2018-04-07Merge pull request #1700 from swaywm/move-cmd-fullDrew DeVault
Implement move [left|right|up|down]
2018-04-06Don't rejigger if parent has two childrenemersion
2018-04-06When moving between outputs, use output center as referenceemersion