aboutsummaryrefslogtreecommitdiff
path: root/sway/desktop/xwayland.c
AgeCommit message (Collapse)Author
2018-07-14Simplify transactions by utilising a dirty flag on containersRyan Dwyer
This PR changes the way we handle transactions to a more simple method. The new method is to mark containers as dirty from low level code (eg. arranging, or container_destroy, and eventually seat_set_focus), then call transaction_commit_dirty which picks up those containers and runs them through a transaction. The old methods of using transactions (arrange_and_commit, or creating one manually) are now no longer possible. The highest-level code (execute_command and view implementation handlers) will call transaction_commit_dirty, so most other code just needs to set containers as dirty. This is done by arranging, but can also be done by calling container_set_dirty.
2018-07-12Don't disable borders for xwayland floating viewsemersion
2018-07-09Update for swaywm/wlroots#1126emersion
2018-07-06Make view_update_* update live props as wellemersion
2018-07-06Fix xwayland floating views unclickableemersion
Some xwayland views are first configured with a 1x1 size, and then resized. Since the view size isn't updated, they are unclickable. Fixes #2195
2018-07-05Updates per wlroots#1076Drew DeVault
2018-07-02Fix damage on swaybar when view requests to exit fullscreenRyan Dwyer
Fixes #2191
2018-06-30sway views: add helpers to get view and layer from wlr_surfaceDominique Martinet
2018-06-30Merge remote-tracking branch 'upstream/master' into atomicRyan Dwyer
2018-06-30Revert "Don't unmaximize floating views"Rostislav Pehlivanov
This reverts commit 97672295ed50d1d6272876c4a3b6b5607cab05c6.
2018-06-30Fix flash of background when xwayland views are mappedRyan Dwyer
A flash of background was happening for two reasons: 1) We were using the xsurface's dimensions to check if the surface is ready, but these are pending dimensions. 2) In my particular setup, the default geometry of the xsurface does not intersect any output, which prevented it from receiving a frame done event. This made the transaction time out and the client would only redraw once it's been rendered.
2018-06-29Merge remote-tracking branch 'upstream/master' into atomicRyan Dwyer
2018-06-27fix accidently removing borders on XCB_CONFIGURE_REQUESTArmin Preiml
The view was configured with the container coordinates. Although they were right on the first configure, they changed after a XCB_CONFIGURE_REQUEST, when the border was already drawn.
2018-06-27Move unsetting of view->surface into view_unmapRyan Dwyer
2018-06-27Remove transaction_add_damageRyan Dwyer
Instead, damage each container when applying the transaction.
2018-06-26Damage output when views toggle fullscreenRyan Dwyer
Also add workspace to the transaction when a view maps in fullscreen mode.
2018-06-26Rename view's free callback to destroyRyan Dwyer
2018-06-26Damage output when a fullscreen view unmapsRyan Dwyer
Also moved the arranging into view_unmap to avoid excessive code duplication.
2018-06-24xwayland: accept configure requests from floating viewsemersion
2018-06-24Implement atomic layout updates for xwayland viewsRyan Dwyer
2018-06-23Implement atomic layout updates for tree operationsRyan Dwyer
This implements atomic layout updates for when views map, reparent or unmap.
2018-06-18Automatically float xwayland windowsemersion
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-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-09Make main properties be the pending stateRyan Dwyer
2018-06-09WIP: Atomic layout updates ground workRyan Dwyer
2018-06-04Don't restore focus if unmapping surface wasn't focusedRyan Dwyer
2018-06-04Restore focus when unmapping unmanaged xwayland surfacesRyan Dwyer
2018-06-01Fix fullscreen position of xwayland viewsRyan Dwyer
2018-06-01Fix floating position when view is floated when mappedRyan Dwyer
2018-06-01Don't unmaximize floating viewsRyan Dwyer
2018-06-01Remove unfinished wants_floating implementation for xwaylandRyan Dwyer
2018-06-01Don't let xwayland views set position unless unmanagedRyan Dwyer
2018-06-01Store swayc coordinates as layout-localRyan Dwyer
2018-06-01Rename set_maximized functions to set_tiledRyan Dwyer
2018-06-01Replace is_floating boolean with functionRyan Dwyer
2018-06-01Implement floatingRyan Dwyer
2018-05-14Revert "Revert "Merge pull request #1943 from RyanDwyer/criteria-improvements""Ryan Dwyer
This reverts commit 32a572cecfd0f6072a78ce0a381a2f8365f9010a. This reimplements the criteria overhaul in preparation for fixing a known bug.
2018-05-12Don't destroy view child on xdg-popup unmapemersion
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-10Damage borders when damaging viewemersion
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-03Update titles when surfaces are committedRyan 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-28Don't call view_set_fullscreen on unmapped xwayland viewsemersion
2018-04-24Do not let tiled xwayland views do what they wantemersion
2018-04-20Don't unmap on destroy, this is already guaranteed by wlrootsemersion
2018-04-17Handle fullscreen flag when mapping a surface.Ryan Dwyer
2018-04-17Feedback for fullscreen.Ryan Dwyer