aboutsummaryrefslogtreecommitdiff
path: root/sway/desktop
AgeCommit message (Collapse)Author
2018-05-12Revert "Merge pull request #1943 from RyanDwyer/criteria-improvements"Drew DeVault
This reverts commit 3e1bf721c69cb6df70c3dc3d3d4933e987339676, reversing changes made to 2217518bd554d0f11dafa7ec4e8f35f2e4762fbd.
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-11Highlight all child borders when using focus parentRyan Dwyer
2018-05-10Fix damage tracking on HiDPIemersion
2018-05-10Accumulate surface damage even if whole=trueemersion
2018-05-10Damage borders when damaging viewemersion
2018-05-10Render borders with damageemersion
2018-05-10Implement full damage trackingemersion
2018-05-10layer-shell: use usable_area when arranging non-exclusive layer surfacesemersion
2018-05-09Fix titles on rotated outputsRyan Dwyer
If the output is rotated, the scissor box needs to be transformed in the opposite rotation.
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-03Update titles when surfaces are committedRyan Dwyer
2018-05-03Render titlesRyan Dwyer
2018-05-02Support alpha in border coloursRyan Dwyer
The alpha component is merged with the container's opacity. Completes #1882.
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-01Implement indicator borderRyan Dwyer
2018-05-01Scale borders according to output scaleRyan Dwyer
2018-04-30Implement 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-04-29Merge branch 'master' into refactor-arrange-windowsemersion
2018-04-28Don't call view_set_fullscreen on unmapped xwayland viewsemersion
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-24Do not let tiled xwayland views do what they wantemersion
2018-04-23Updates per swaywm/wlroots#887Drew DeVault
2018-04-23Render unmanaged xwayland views when an xwayland view is fullscreenRyan Dwyer
This makes Chromium and Firefox context menus appear when fullscreen.
2018-04-20Don't unmap on destroy, this is already guaranteed by wlrootsemersion
2018-04-20Add TODO about rendering fullscreen views smaller than the outputRyan Dwyer
2018-04-20Ignore xdg_shell_v6 request_fullscreen if not mappedRyan Dwyer
2018-04-20Don't render top layer when fullscreen.Ryan Dwyer
2018-04-19render_output(): When fullscreen, clear to black and don't render backgroundRyan Dwyer
2018-04-19xdg_shell_v6: Use client_pending state instead of currentRyan Dwyer
It appears client_pending is the state that should be used here.
2018-04-18Fullscreen rendering and input fixes.Ryan Dwyer
* Render background when using fullscreen, because transparency. * Check that fullscreen surface allows input. * Don't look for surfaces in top layer if there's a fullscreen view.
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-17Handle fullscreen flag when mapping a surface.Ryan Dwyer
2018-04-17Don't damage views if they're hidden by a fullscreen view.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-13Do not call the map handler when an xwayland surface is createdemersion
2018-04-07Give keyboard focus to unmanaged xwayland surfacesemersion
This fixes dmenu
2018-04-07Merge pull request #1759 from emersion/output-send-frame-doneDrew DeVault
Don't send frame done immediately when rendering
2018-04-07Don't send frame done immediately when renderingemersion
2018-04-07Fix inverted assertionemersion
Seems like it doesn't work this way
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-06Revert "Break everything^W^WUse wlr_box for sway_container"Drew DeVault
2018-04-06Damage all surfaces when damaging whole containeremersion
2018-04-06Break everything^W^WUse wlr_box for sway_containerDrew DeVault
2018-04-06Don't damage the whole outputemersion