aboutsummaryrefslogtreecommitdiff
path: root/include/wlr/xwayland.h
AgeCommit message (Collapse)Author
2021-07-27xwayland: embed wlr_xwayland_server_options in server structSimon Ser
As more options are added, more fields will be duplicated. Let's just embed the struct in wlr_xwayland_server so that we don't need to keep both in sync.
2021-05-31xwm: implement _NET_CLIENT_LIST_STACKINGTudor Brindus
This property is present on all modern X11 instances. The nonpresence of it requires applications to fall back to XQueryTree-based logic to determine stacking logic (e.g., to determine what surface should get Xdnd events). These code paths are effectively untested nowadays, so this makes it more likely for wlroots to "break" applications. For instance, the XQueryTree fallback path has been broken in Chromium for the last 10 years. It's easy enough to maintain this property, so let's just do it. Fixes #2889.
2021-01-20Expose ICCCM input statusBrassyPanache
In certain situations windows can have their input field set to false but still expect to receive input focus by passively listening to key presses via a parent window. The ICCCM specification outlines how focus should be given to clients. Further reading: https://tronche.com/gui/x/icccm/sec-4.html#s-4.1.7 Relates to #2604
2020-12-07xwayland: use pipe instead of SIGUSR1 to signal readinessDominik Honnef
Closes: https://github.com/swaywm/wlroots/issues/2154
2020-11-30xwm: add wlr_xwayland_surface_restack()Ilia Bozhinov
2020-11-05xwayland: remove unused listenerIsaac Freund
2020-10-14xwayland: add set_geometry eventIlia Bozhinov
This is necessary to react to changes in position of override-redirect views.
2020-07-21xwm: add support for xwayland minimizeTobias Langendorf
2020-05-19xwayland: add option to disable WMSimon Ser
2020-05-19xwayland: split serverSimon Ser
Split the server part of wlr_xwayland into wlr_xwayland_server. This allows compositors to implement their own XWM when wlroots' isn't a good fit.
2019-10-08xwayland: Expose configure request maskScott Moreau
Without this information, compositors have no way to tell whether or not to consider the position information valid. Most notably, a compositor needs to know if it should pick a position for the surface or use the position sent in the configure request.
2019-03-04xwayland: don't set DISPLAYemersion
Let the compositor set it. This allows for multiple Xwayland instances to run at the same time. Fixes https://github.com/swaywm/wlroots/issues/1442
2018-11-29primary-selection: introduce wlr_primary_selection_sourceemersion
This is a common interface that can be used for all primary selection protocols, as discussed in [1]. A new function wlr_seat_set_primary_selection is added to set the primary selection for all protocols. The seat now owns again the source, and resets the selection to NULL when destroyed. [1]: https://github.com/swaywm/wlroots/issues/1367#issuecomment-442403454
2018-11-27gtk-primary-selection: refactor everything, untie from seatemersion
This commits completely refactors wlr_gtk_primary_selection. The goal is to remove gtk-primary-selection state from the seat and better handle inert resources where it makes sense. wlr_seat_client.primary_selection_devices has been removed and replaced by wlr_gtk_primary_selection_device. This allows us to make offers inert when the current selection is replaced. wlr_seat_set_primary_selection has been removed because it relied on wlr_seat instead of wlr_gtk_primary_selection_device_manager. A new function, wlr_gtk_primary_selection_device_manager_set_selection (candidate for the longest function name in wlroots) has been added. It doesn't take a serial anymore as serial checking only makes sense for set_selection requests coming from Wayland clients (serial checking is now done in the Wayland interface implementation). Since wlr_gtk_primary_selection_device_manager is now required to set the selection, a new function wlr_xwayland_set_gtk_primary_selection_device_manager (candidate number two for longest function name) has been added. Devices are now made inert when the seat goes away. Future work includes removing the last primary selection bits from the seat, mainly wlr_seat.primary_selection_source and wlr_seat.events.primary_selection, replacing those with new fields in wlr_gtk_primary_selection_device. Or maybe we could keep those in the seat and replace them with a re-usable interface (for future zwp_primary_selection_v1 support). We need to think how we'll sync these three protocols (GTK, X11 and wayland-protocols). See https://github.com/swaywm/wlroots/issues/1388
2018-09-24xwayland: Introduce set_decorations eventRyan Dwyer
2018-09-03xwayland: Introduce set_role eventRyan Dwyer
2018-09-02xwayland: Introduce request_activate eventRyan Dwyer
2018-09-02xwayland: Add WM_STATE modal propertyRyan Dwyer
Adds a modal property to indicate whether the surface wants to be a modal.
2018-08-02xwayland: document SIGUSR1 handleremersion
2018-07-29Initial pass on API stability guaranteesDrew DeVault
This introduces -DWLR_USE_UNSTABLE and adds information regarding the stability status to all headers. I started with a conservative set of headers to mark as stable: - types/wlr_matrix.h - util/edges.h - util/log.h - util/region.h - xcursor.h
2018-07-29reintroduce xwayland is_unmanagedMarkus Ongyerth
153f37bdf57c61e7fb09162a6791afe8b9b4d0ef (#1145) removed the wlr_xwayland_is_unamanged function while fixing OR, because it was belieived that it's supposed to work around the broken OR handling. This was a misunderstanding. is_unmanaged is (while sort of a hack) intended to work around inherent differences between "real" X sessions and our Xwayland/wayland situation. The main reason it exists is to support applications like rofi and dzen, while not handing focus to other OR windows (which should *not* be required). Traditionally, these applications just grabbed input from X and didn't need to be focused by any logic in the WM. Which of course doesn't work in wayland compositors. So we have to give them focus in some way. Giving *every* OR window focus, breaks other applications that don't expect focus to change. A testcase that was pointed out to me where wlr_xwayland_is_unamanged was breaking things is https://github.com/swaywm/sway/issues/2128 (syncplay, gitk, gitgui) Supposedly it broke using keyboard to navigate the menus. I can't reproduce this with this patch. The popups can be navigated as long as the parent has focus.
2018-07-19Introduce set_hints event for xwaylandRyan Dwyer
2018-07-18xwayland: handle override_redirect flag changesemersion
The override_redirect flag can change on configure notify and on map notify. This adds an event to know when it changes. This removes wlr_xwayland_surface_is_unmanaged which was wrongly using the window type to decide whether the view should be unmanaged. A similar patch was proposed to Weston, but has never been merged upstream [1]. [1]: https://patchwork.freedesktop.org/patch/211161/
2018-05-10Fix Xwayland cleanupVincent Vanlaer
Fixes #964
2018-05-08Merge pull request #959 from VincentVanlaer/xwayland-lazyemersion
Add the option to start Xwayland only when a client connects
2018-05-08Make xwayland_finish* clean up wlr_xwaylandVincent Vanlaer
2018-05-06Allow xwayland to start lazilyVincent Vanlaer
Makes the xwayland startup process two phased. The first phase just initialises the X11 sockets. The second phase starts the Xwayland server itself. When starting xwayland lazily the second phase will be postponed until a client has connected to the X11 socket. Changes in behaviour: The DISPLAY environment is now set immediately after the X11 sockets are created. When the Xwayland server is killed or crashes, the sockets will not be recreated, but reused. Fixes #849: Start up Xwayland lazily
2018-05-04Use UTF-8 xwayland window title if availableemersion
2018-05-03Fix typos in comments and stringsmorganamilo
2018-04-13xwayland: emit new_surface when unmappedemersion
2018-04-11Always unmap before destroying surfaceemersion
2018-04-08Add wlr_xwayland_surface_pingemersion
2018-04-02Missed a spotDrew DeVault
2018-03-31xwyaland: fix style issuesemersion
2018-03-30xwayland: rename map_notify to map for consistencyemersion
2018-03-03move xwm.h out of include/wlrDominique Martinet
xwm.h was meant to be private, so move it to include/xwayland/xwm.h We had an ifdef WLR_HAS_XCB_ICCCM in xwayland.h which was easy to move to xwm, it is not safe to use the WLR_HAS_* in the public headers. I checked a few of our current users and none rely on xwm.h being public as expected (rootston, sway, hsroots)
2018-02-26add xwayland unmanaged tests to support dmenuMarkus Ongyerth
This adds `wlr_xwayland_surface_is_unamanged`, to allow compositors more fine grained control over XWayland focus. A surface that is unmanaged should not receive focus, while other windows that are just override redirect may want it (dmenu). The way unamanged is determined is taken from wlc.
2018-02-12Reformat all #include directivesemersion
2018-01-14xwayland: render children window in fullscreenemersion
2017-12-29wlr_xwayland: preserve end of struct on restartDominique Martinet
This is more robust than trying to recopy a few fields. Note: wlr_xwayland->events.ready now resets after each trigger, so one can hook on it again and be called when restart is ready
2017-12-29xwayland: listen to wlr_seat destroy signalDominique Martinet
2017-12-27config: Avoid clash with other config-headersBjörn Esser
2017-12-27Merge pull request #524 from acrisci/role-committedemersion
[wip] Role committed
2017-12-27xwayland: role committedTony Crisci
2017-12-26config: Put all defines into config.hBjörn Esser
2017-12-14Merge branch 'master' into xwm-selectionemersion
2017-12-14Merge branch 'master' into display-destroyemersion
2017-12-14Merge branch 'master' into xwm-selectionemersion
2017-12-13xwm: user custom event handlerTony Crisci
2017-12-08Merge branch 'master' into feature/xwm-selectionTony Crisci