aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-10-07Only damage popups when popups have damageRyan Dwyer
The previous behaviour was to damage the entire view, which would recurse into each popup. This patch makes it damage only the popup's surface, and respect the surface damage given by the client. This adds listeners to the popup's map and unmap events rather than doing the damage in the create and destroy functions. To get the popup's position relative to the view, a new child_impl function get_root_coords has been introduced, which traverses up the parents.
2018-10-06Merge pull request #2778 from emersion/swaybar-seat-pointerDrew DeVault
swaybar: fix binding to wl_pointer multiple times
2018-10-06Merge pull request #2779 from ianyfan/ipcemersion
ipc: set "type" of floating containers to "floating_con"
2018-10-06swaybar: fix binding to wl_pointer multiple timesemersion
2018-10-06ipc: set "type" of floating containers to "floating_con"Ian Fan
2018-10-06Merge pull request #2776 from swaywm/swaylock-setuidemersion
Fix swaylock w/shadow on glibc, improve security
2018-10-06Fix swaylock w/shadow on glibc, improve securityDrew DeVault
Today I learned that GNU flaunts the POSIX standard in yet another creative way. Additionally, this adds some security improvements, namely: - Zeroing out password buffers in the privileged child process - setuid/setgid after reading /etc/shadow
2018-10-06Update CONTRIBUTING.mdDrew DeVault
2018-10-06Merge pull request #2693 from RyanDwyer/move-sticky-in-seatemersion
Move sticky containers when switching workspace via criteria
2018-10-06Move sticky containers when switching workspace via criteriaRyan Dwyer
* Create a view on workspace 1 * Switch to workspace 2 (on the same output) and create a floating sticky view * Use criteria to focus the view on workspace 1 Previously, we only moved the sticky containers when using workspace_switch, but the above method of focusing doesn't call it. This patch relocates the sticky-moving code into seat_set_focus_warp. A side effect of this patch is that if you have a sticky container focused and then switch workspaces, the sticky container will no longer be focused. It would previously retain focus. In seat_set_focus_warp, new_output_last_ws was only set when changing outputs, but now it's always set. This means new_output_last_ws and last_workspace might point to the same workspace, which means we have to make sure we don't destroy it twice. It now checks to make sure they're different, and to make this more obvious I've moved both calls to workspace_consider_destroy to be next to each other.
2018-10-06Merge pull request #2771 from RyanDwyer/swaylock-seat-capabilitiesDrew DeVault
swaylock: Support keyboard and pointer disconnects and reconnects
2018-10-06swaylock: Support keyboard and pointer disconnects and reconnectsRyan Dwyer
2018-10-05Merge pull request #2768 from RyanDwyer/fix-flatten-crashemersion
Fix crash when flattening container after moving
2018-10-05Fix crash when flattening container after movingRyan Dwyer
container_flatten removes the container from the tree (via container_replace) before destroying it. When destroying, the recent changes to handle_seat_node_destroy incorrectly assumes that the container has a parent. This adds a check for destroying a container which is no longer in the tree. If this is the case, focus does not need to be changed.
2018-10-04Merge pull request #2764 from ianyfan/rm-base64emersion
Remove obsolete base64.c file
2018-10-04Remove obsolete base64.c fileIan Fan
2018-10-04Fix #2763Drew DeVault
2018-10-04Merge pull request #2760 from RyanDwyer/swaylock-handle-output-disconnectemersion
Give focus to another swaylock surface when output is disconnected
2018-10-04Merge pull request #2761 from RyanDwyer/seat-op-ignore-buttonsemersion
Ignore unrelated cursor buttons while doing seat operations
2018-10-04Ignore unrelated cursor buttons while doing seat operationsRyan Dwyer
* Click and hold a scrollbar * Drag the cursor onto another surface * While still holding the original button, press and release another cursor button * Things get weird There's two ways to fix this. Either cancel the seat operation and do the other click, or continue the seat operation and ignore the other click. I opted for the latter (ignoring the click) because it's easier to implement, and I suspect a second click during a seat operation is probably unintentional anyway.
2018-10-04Give focus to another swaylock surface when output is disconnectedRyan Dwyer
* Have multiple outputs * Launch swaylock * Unplug an output (possibly has to be the last "connected" one) * The swaylock surface on the remaining output would not respond to key events This was happening because when the output destroys, focus was not given to the other swaylock surface. This patch makes focus be transferred to another surface owned by the same Wayland client, but only if input was inhibited by the surface being destroyed, and only if it's in the overlay layer. I figure it's best to be overly specific and relax the requirements later if needed. This patch removes a check in seat_set_focus_surface which was preventing focus from being passed from a layer surface to any other surface. I don't know of a use case for this check, but it's possible that this change could produce issues.
2018-10-03Merge pull request #2759 from minus7/fix-view-container-nullemersion
Fix crash if view has no container
2018-10-03Merge pull request #2709 from BuJo/feature/raise_floatingDrew DeVault
raise floating
2018-10-03Fix crash if view has no containerminus
2018-10-03Reenable popup-handling for determining focusJonathan Buch
This reenables the popup-handling code before the floating-window focus change.
2018-10-03Use "raycasting" for determining focus for floating windowsJonathan Buch
Floating containers and their surfaces are ordered in "raised last". This is used to detect the topmost surface and thus the focus.
2018-10-03Fix focusing topmost floating windowsJonathan Buch
Re-focus on the container on which the cursor hovers over. A special case is, if there are menus or other subsurfaces open in the focused container. It will prefer the focused container as long as there are subsurfaces. This commit starts caching the previous node as well as the previous x/y cursor position. Re-calculating the previous focused node by looking at the current state of the cursor position does not work, if the environment changes.
2018-10-03Add manpage documentatioon for raise_floatingJonathan Buch
2018-10-03Simplify raising a container in seatJonathan Buch
* Factor out raising a floating window into s separate function to enable reuse.
2018-10-03Add configuration for raising containers on focusJonathan Buch
* New configuration option: raise_floating (From the discussion on https://github.com/i3/i3/issues/2990) * By default, it still raises the window on focus, otherwise it will raise the window on click.
2018-10-03Merge pull request #2757 from RyanDwyer/check-focus-stack-emptyemersion
Add sanity check for empty focus stack
2018-10-03Add sanity check for empty focus stackRyan Dwyer
2018-10-03Remove HACKING.mdDrew DeVault
Half of this is outdated and the other half is questionable.
2018-10-03Fix some missing commands in sway-input(5)Drew DeVault
2018-10-03Merge pull request #2703 from RyanDwyer/csd-borderDrew DeVault
Add CSD to border modes
2018-10-03Merge pull request #2755 from RyanDwyer/fix-tiling-criteriaDrew DeVault
Fix tiling criteria
2018-10-03Fix tiling criteriaRyan Dwyer
2018-10-02Merge pull request #2749 from ianyfan/swaybarDrew DeVault
swaybar: add leading comma to click event JSON
2018-10-02swaybar: add leading comma to click event JSONIan Fan
2018-10-02Merge pull request #2745 from RyanDwyer/fix-focus-inactive-on-destroyDrew DeVault
Set focus_inactive on a sibling when a container closes in an inactive workspace
2018-10-02Set focus_inactive on a sibling when a container closes in an inactive workspaceRyan Dwyer
To reproduce the problem, create layout H[view V[view view view-focused]], then switch to another workspace and have the previously focused view in the vsplit close (eg. using criteria, or an mpv video finishing). Return to the workspace using `$mod+<num>` and the entire vsplit would be focused. This happens because handle_seat_node_destroy would only set a new focus if the currently focused view or a parent was being destroyed. To fix it, it needs to set a sibling of the destroying container to focus_inactive regardless of the current focus, then restore current focus if needed. This patch changes the function accordingly. Additionally: * The function now makes an early return if the node being destroyed is a workspace. * set_focus has been renamed to needs_new_focus. This variable is true if the head focus needs to be changed.
2018-10-02Merge pull request #2740 from RedSoxFan/gap-bordersRyan Dwyer
Handle gap borders
2018-10-01Handle border options for gapsBrian Ashworth
Fixes `hide_edge_borders smart` when gaps are in use. Implements `hide_edge_borders smart_no_gaps` and `smart_borders on|no_gaps|off`. Since `smart_borders on` is equivalent to `hide_edge_borders smart` and `smart_borders no_gaps` is equivalent to `hide_edge_borders smart_no_gaps`, I opted to just save the last value set for `hide_edge_borders` and restore that on `smart_borders off`. This simplifies the conditions for setting the border.
2018-10-02Merge pull request #2739 from RedSoxFan/fix-2653Ryan Dwyer
Fix smart gaps
2018-10-02Merge branch 'master' into fix-2653Ryan Dwyer
2018-10-01Merge pull request #2735 from RedSoxFan/fix-quotesDrew DeVault
Do not strip quotes for exec or bind commands
2018-10-01Fix smart gapsBrian Ashworth
2018-09-30Merge pull request #2737 from Ragnis/criteria-floatingDrew DeVault
Parse floating criteria
2018-09-30Parse floating criteriaRagnis Armus
2018-09-30Do not strip quotes for cmd_setBrian Ashworth