aboutsummaryrefslogtreecommitdiff
path: root/sway/handlers.c
AgeCommit message (Collapse)Author
2016-08-01bugfix: focus container on output when focusedTony Crisci
Focus the container on the output (not the output itself) when an output is focused. This is intended to fix a bug where borders are not updated correctly when switching the vt away/back to sway.
2016-08-01Remove dead global locked_view_focusTony Crisci
The value of `locked_view_focus` is always false. Remove dead code associated with this variable to simplify things.
2016-07-31Bugfix: descend focus stack on new window focusTony Crisci
When switching back to a workspace after new window creation, it is now necessary to descend the focus stack into the focused container of the workspace to determine which container should get the focus. This is because the `set_focused_container()` function no longer automatically descends into the focus stack to find the correct view to focus.
2016-07-31Refactor functions to update container bordersTony Crisci
Replace `update_view_border()` with `update_container_border()`. The latter should handle both the case where the container is a view or if the container has children.
2016-07-29remove outdated (when wlc commit merged) commentZandr Martin
2016-07-29update handler to get pid from wlc for all viewsZandr Martin
2016-07-29Fix swaybg sizing on hidpi outputsDrew DeVault
2016-07-29Merge remote-tracking branch 'origin/hidpi'Drew DeVault
2016-07-28third try for #678Zandr Martin
2016-07-28Update hidpi support to latest wlc APIDrew DeVault
2016-07-28Initial pass on HiDPI supportDrew DeVault
2016-07-23don't passthrough a floating_scroll event to focused windowD.B
2016-07-21Initial work on window eventsMykyta Holubakha
2016-07-21Remove arrange_windows from post-renderDrew DeVault
Fixes #741
2016-07-17Fix clang warningDrew DeVault
2016-07-17Turn swaybg into a shell surfaceDrew DeVault
2016-07-16refactor swayc_tabbed_stacked_parent into _ancestor and _parent and use ↵D.B
where needed
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-15Suspend destruction of wss when creating viewsMykyta Holubakha
2016-07-15Spawn new views to target ws's focused containerMykyta Holubakha
2016-07-07Fix tabbed/stacked corner case #742D.B
Tabbed/stacked containers are now created only if a view is present on the workspace. If a view is created on previously empty tabbed/stacked workspace, it gets wrapped in a container.
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-07-04I think this fixes #678Zandr Martin
2016-06-30Spawn windows as floating if they have a parentDrew DeVault
Fixes #604
2016-06-21Check if found ws is focused in new view handlerMykyta Holubakha
Fixes #714, by preventing change of focus from a window to the whole ws
2016-06-11clean up pid/workspace stuffZandr Martin
2016-06-10semi-working (only non-client/server wayland apps)Zandr Martin
2016-06-06messy, unfinished versionZandr Martin
2016-05-31Initial work for floating view with sane valuesDenis Doria
2016-05-14Support floating_scroll sidewaysMykyta Holubakha
2016-05-08Remove FSB_GAPS_INNER and FSB_GAPS_OUTERMykyta Holubakha
2016-05-07Implemented configurable floating scroll behaviorMykyta Holubakha
2016-05-01Update view title of tabbed/stacked windowsMikkel Oscar Lyderik
Requires Cloudef/wlc@80bf003 Fix #623
2016-04-17Use correct format string for x86_64 and i686Mikkel Oscar Lyderik
Fix #587
2016-04-09Only update geometry of single floating viewMikkel Oscar Lyderik
2016-04-02Fix spelling mistakesEric Engestrom
2016-03-30Fix pointer scroll thingDrew DeVault
2016-03-30Remove leftover commentDrew DeVault
2016-03-30New feature: adjust gaps with floating_mod+scrollDrew DeVault
I made this configurable but I didn't make the command for it. That's left as an exercise to an eager contributor. mod_scroll_behavior [gaps inner|gaps outer] Would merge implementions of more behaviors for mod+scroll, if anyone has some neato ideas.
2016-03-30Fix borders with floating windowsMikkel Oscar Lyderik
2016-03-30Implement bordersMikkel Oscar Lyderik
The borders are implemented as a surface/buffer attached to each view which is sent to and rendered by wlc in the view_pre_render callback. All the drawing logic is handled in sway/border.c and all the logic for calculating the geometry of the border/view is handled in `update_geometry` in sway/layout.c (same place as gaps are calculated).
2016-03-30Implement some more on bordersDrew DeVault
Note that this segfaults ALL THE TIME in wlc code. Paging @Cloudef for help, I'm at a loss.
2016-03-30Initial setup of window border renderingDrew DeVault
Please don't complain to me about the performance of this
2016-03-24Update to new WLC APIDrew DeVault
2016-03-19Make key handling less strictMikkel Oscar Lyderik
Sway has been very strict when it comes to key handling. Only on an exact match would a bindsym be triggered. This patch makes it less strict by for instance allowing the key combo `$mod+1+2` to act as `$mod+2` if 2 was the last pressed key and `$mod+1` if 1 was the last pressed key. The new key handling uses the following algorithm: 1. List of bindings sorted by number of keys in binding (already the default) 2. Find all bindings covered by the current keyboard state and list them by same order as in 1. 3. Select the first binding from the list where the last pressed key is part of the binding. Addresses #452
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
2016-03-17Revert "Render outputs as soon as wlc is ready"Mikkel Oscar Lyderik
This reverts commit 96458bf63c10a702797a8687e2f73d7814a6b079.
2016-03-13Render outputs as soon as wlc is readyMikkel Oscar Lyderik
This makes sure that the outputs are rendered when sway is launched, so the user doesn't have to move the cursor before the background and bar gets rendered on screen. Fixes #509
2016-02-25Check for empty ws on view destroyed.Mikkel Oscar Lyderik
In some cases destroying a view can result in an empty and inactive workspace, which should be destroyed. This handles those cases.