aboutsummaryrefslogtreecommitdiff
path: root/include/extensions.h
AgeCommit message (Collapse)Author
2016-07-17Turn swaybg into a shell surfaceDrew DeVault
2016-07-14Set panels' geometries correctly and don't render them explicitlyDavid Eklov
Panels were explicitly rendered by calling wlc_surface_render in handle_output_pre_render. Calling wlc_surface_render does not set the surface's geometry (like wlc_view_set_geometry does). Sway did not call wlc_view_set_geometry for panels, so wlc defaulted their geometry to be at the origin. This is not correct for bars unless their location is top. Furthermore, for a surface to receive pointer events, its mask has to be set to visible. This causes wlc to render these surfaces, causing panels and backgrounds to be rendered twice. This commit makes panels and surfaces visible, sets the correct geometries and removes the code that explicitly rendered them.
2016-07-14Don't treat backgrounds as shell surfacesDavid Eklov
This code had some issues. Remove it now so that we can start clean and fix it later.
2016-07-04Fix formatting guide violations (spaces instead of tabs)David Eklov
2016-07-04Enable backgrounds and panels to be shell surfacesDavid Eklov
Prior to this commit all windows (e.g. shell surfaces) were handled the same way in handle_view_created. Since backgrounds and panels have to be treated differently, they could not be shell surfaces. This changes checks whether a client is a background or a panel in handle_view_created and exists to let them be dealt with elsewhere.
2016-03-17Remove unused panel_size (and fix rearrange)Mikkel Oscar Lyderik
desktop_shell.panel_size was only used to determine if sway should rearrange the output when rendering the panel in the output_pre_render hook. This is not needed since the output will have been arranged at that point. It also caused sway to rearrange all the time when running with two or more different monitors/resolutions because panel_size kept changing with every output_pre_render callback. Should fix #514
2015-12-20extensions: Track panels by wl_resource, position per panel.S. Christoffer Eliesen
Track each panel separately via its wl_resource. `set_panel_position` might be called before `set_panel`, so reuse panel config. Place the position in panel_config so that each panel has its own position.
2015-12-20extensions: panel_config->resource => wl_surface_res.S. Christoffer Eliesen
Change the name to something less ambigious.
2015-12-18Add shims for swaylock on compositorDrew DeVault
2015-12-10Include wayland-server.h instead of -core.hDrew DeVault
2015-12-03Add swaylock protocol, add resource destructorsDrew DeVault
This prevents sway crashing if swaybg or swaybar dies.
2015-11-29Support desktop shell panels in compositorDrew DeVault
2015-11-19Fix background extensionsDrew DeVault
Thanks @Cloudef, it works great
2015-11-18Add background handlingDrew DeVault
This does not work as expected. I think the problem is on the wlc side. Please review, @Cloudef. To reproduce the issues: 1. Run sway 2. Open terminal in sway 3. Run swaybg swaybg will create a surface and ask to have it set as the background, but wlc_handle_from_wl_surface_resource will return 0. If the swaybg surface is a shell surface, then it works - but wlc complains about the pointer type and segfaults as soon as the pre-render hook tries to draw the background.
2015-11-18Basic support for extensions in server and clientsDrew DeVault