summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLibravatar David Eklov <david.eklov@gmail.com>2016-07-06 00:28:14 -0500
committerLibravatar David Eklov <david.eklov@gmail.com>2016-07-14 17:18:01 -0500
commit5c4f52f9537ad0e8e1f251392fea986871ab73b0 (patch)
treeb4aeeb0ca1452824d7b8f55218dd5cebee2c5b2f /include
parentDon't treat backgrounds as shell surfaces (diff)
downloadsway-5c4f52f9537ad0e8e1f251392fea986871ab73b0.tar.gz
sway-5c4f52f9537ad0e8e1f251392fea986871ab73b0.tar.zst
sway-5c4f52f9537ad0e8e1f251392fea986871ab73b0.zip
Set panels' geometries correctly and don't render them explicitly
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.
Diffstat (limited to 'include')
-rw-r--r--include/extensions.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/extensions.h b/include/extensions.h
index 2e2e4b07..d26e95c1 100644
--- a/include/extensions.h
+++ b/include/extensions.h
@@ -23,6 +23,8 @@ struct panel_config {
23 enum desktop_shell_panel_position panel_position; 23 enum desktop_shell_panel_position panel_position;
24 // used to determine if client is a panel 24 // used to determine if client is a panel
25 struct wl_client *client; 25 struct wl_client *client;
26 // wlc handle for this panel's surface, not set until panel is created
27 wlc_handle handle;
26}; 28};
27 29
28struct desktop_shell_state { 30struct desktop_shell_state {