dwl/patches/btrtile-v0.8-gaps.patch
2026-05-29 02:54:30 +03:00

8239 lines
274 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en-US" data-theme="codeberg-auto">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>dwl-patches/patches/btrtile/btrtile-v0.8-gaps.patch at main - dwl/dwl-patches - Codeberg.org</title>
<link rel="manifest" href="/manifest.json">
<meta name="author" content="dwl">
<meta name="description" content="dwl-patches - User-maintained repository for dwl patches">
<meta name="keywords" content="git,non-profit,foss,oss,free,software,open,source,code,hosting">
<meta name="referrer" content="strict-origin">
<link rel="alternate" type="application/atom+xml" title="" href="/dwl/dwl-patches.atom">
<link rel="alternate" type="application/rss+xml" title="" href="/dwl/dwl-patches.rss">
<link rel="icon" href="/assets/img/favicon.svg" type="image/svg+xml">
<link rel="alternate icon" href="/assets/img/favicon.png" type="image/png">
<script>
window.addEventListener('error', function(e) {window._globalHandlerErrors=window._globalHandlerErrors||[]; window._globalHandlerErrors.push(e);});
window.addEventListener('unhandledrejection', function(e) {window._globalHandlerErrors=window._globalHandlerErrors||[]; window._globalHandlerErrors.push(e);});
window.config = {
appUrl: 'https:\/\/codeberg.org\/',
appSubUrl: '',
assetVersionEncoded: encodeURIComponent('15.0.0-127-f54e36b6~gitea-1.22.0'),
assetUrlPrefix: '\/assets',
runModeIsProd: true ,
customEmojis: new Set(["git","gitea","codeberg","gitlab","github","gogs","forgejo"]),
pageData: {"DATETIMESTRINGS":{"FUTURE":"in future","NOW":"now","relativetime.1day":"yesterday","relativetime.1month":"last month","relativetime.1week":"last week","relativetime.1year":"last year"},"PLURALSTRINGS_FALLBACK":{},"PLURALSTRINGS_LANG":{"relativetime.days":["%d day ago","%d days ago"],"relativetime.hours":["%d hour ago","%d hours ago"],"relativetime.mins":["%d minute ago","%d minutes ago"],"relativetime.months":["%d month ago","%d months ago"],"relativetime.weeks":["%d week ago","%d weeks ago"],"relativetime.years":["%d year ago","%d years ago"]},"PLURAL_RULE_FALLBACK":0,"PLURAL_RULE_LANG":0},
notificationSettings: {"EventSourceUpdateTime":10000,"MaxTimeout":60000,"MinTimeout":10000,"TimeoutStep":10000},
enableTimeTracking: true ,
mermaidMaxSourceCharacters: 50000 ,
i18n: {
copy_success: "Copied!",
copy_error: "Copy failed",
error_occurred: "An error occurred",
network_error: "Network error",
remove_label_str: "Remove item \"%s\"",
modal_confirm: "Confirm",
modal_cancel: "Cancel",
more_items: "More items",
incorrect_root_url: "This Forgejo instance is configured to be served on \"https://codeberg.org/\". You are currently viewing Forgejo through a different URL, which may cause parts of the application to break. The canonical URL is controlled by Forgejo admins via the ROOT_URL setting in the app.ini.",
},
};
window.config.pageData = window.config.pageData || {};
</script>
<script src="/assets/js/webcomponents.js?v=15.0.0-127-f54e36b6~gitea-1.22.0"></script>
<meta property="og:title" content="dwl-patches/patches/btrtile/btrtile-v0.8-gaps.patch at main">
<meta property="og:url" content="https://codeberg.org//dwl/dwl-patches/src/branch/main/patches/btrtile/btrtile-v0.8-gaps.patch">
<meta property="og:type" content="object">
<meta property="og:image" content="https://codeberg.org/dwl/dwl-patches/-/summary-card">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="600">
<meta property="og:image:alt" content="Summary card of repository dwl/dwl-patches, described as: User-maintained repository for dwl patches">
<meta property="og:site_name" content="Codeberg.org">
<link rel="stylesheet" href="/assets/css/index.css?v=15.0.0-127-f54e36b6~gitea-1.22.0">
<link rel="stylesheet" href="/assets/css/theme-codeberg-auto.css?v=15.0.0-127-f54e36b6~gitea-1.22.0">
</head>
<body class="no-js" hx-swap="outerHTML" hx-ext="morph" hx-push-url="false">
<div class="full height">
<noscript>
<div class="tw-ml-2 tw-mr-2 tw-text-center tw-text-text-light-2">This website requires JavaScript.</div>
</noscript>
<nav id="navbar" aria-label="Navigation bar">
<div class="navbar-left ui secondary menu">
<a class="item" id="navbar-logo" href="/" aria-label="Home">
<div class="branding" aria-hidden="true">
<img width="30" height="30" loading="lazy" class="light-logo" src="https://design.codeberg.org/logo-kit/icon.svg" alt="Logo">
<img width="30" height="30" loading="lazy" class="dark-logo" src="https://design.codeberg.org/logo-kit/icon_inverted.svg" alt="Logo">
</div>
</a>
<div class="ui secondary menu item navbar-mobile-right only-mobile">
<button class="item tw-w-auto ui icon mini button tw-p-2 tw-m-0" id="navbar-expand-toggle" aria-label="Toggle menu"><svg viewBox="0 0 16 16" class="svg octicon-three-bars" aria-hidden="true" width="16" height="16"><path d="M1 2.75A.75.75 0 0 1 1.75 2h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 2.75m0 5A.75.75 0 0 1 1.75 7h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 7.75M1.75 12h12.5a.75.75 0 0 1 0 1.5H1.75a.75.75 0 0 1 0-1.5"/></svg></button>
</div>
<a class="item" href="/explore/repos">Explore</a>
<a class="item" target="_blank" href="https://docs.codeberg.org/getting-started/what-is-codeberg/#what-is-codeberg-e.v.%3F">About</a>
<a class="item" target="_blank" href="https://docs.codeberg.org/getting-started/faq/">FAQ</a>
<a class="item" target="_blank" rel="noopener noreferrer" href="https://docs.codeberg.org">Help</a>
<a class="item donation-pretty" href="https://donate.codeberg.org">Donate</a>
</div>
<div class="navbar-right ui secondary menu">
<a class="item" href="/user/sign_up">
<svg viewBox="0 0 16 16" class="tw-mr-1 svg octicon-person" aria-hidden="true" width="16" height="16"><path d="M10.561 8.073a6 6 0 0 1 3.432 5.142.75.75 0 1 1-1.498.07 4.5 4.5 0 0 0-8.99 0 .75.75 0 0 1-1.498-.07 6 6 0 0 1 3.431-5.142 3.999 3.999 0 1 1 5.123 0M10.5 5a2.5 2.5 0 1 0-5 0 2.5 2.5 0 0 0 5 0"/></svg>
<span>Register</span>
</a>
<a class="item" rel="nofollow" href="/user/login?redirect_to=%2fdwl%2fdwl-patches%2fsrc%2fbranch%2fmain%2fpatches%2fbtrtile%2fbtrtile-v0.8-gaps.patch">
<svg viewBox="0 0 16 16" class="tw-mr-1 svg octicon-sign-in" aria-hidden="true" width="16" height="16"><path d="M2 2.75C2 1.784 2.784 1 3.75 1h2.5a.75.75 0 0 1 0 1.5h-2.5a.25.25 0 0 0-.25.25v10.5c0 .138.112.25.25.25h2.5a.75.75 0 0 1 0 1.5h-2.5A1.75 1.75 0 0 1 2 13.25Zm6.56 4.5h5.69a.75.75 0 0 1 0 1.5H8.56l1.97 1.97a.749.749 0 0 1-.326 1.275.75.75 0 0 1-.734-.215L6.22 8.53a.75.75 0 0 1 0-1.06l3.25-3.25a.749.749 0 0 1 1.275.326.75.75 0 0 1-.215.734Z"/></svg>
<span>Sign in</span>
</a>
</div>
</nav>
<div role="main" aria-label="dwl-patches/patches/btrtile/btrtile-v0.8-gaps.patch at main" class="page-content repository file list ">
<div class="secondary-nav">
<div class="ui container">
<div class="repo-header">
<div class="flex-item tw-items-center">
<div class="flex-item-leading">
<svg viewBox="0 0 16 16" class="svg octicon-repo" aria-hidden="true" width="24" height="24"><path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.5 2.5 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.5 2.5 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.25.25 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"/></svg>
</div>
<div class="flex-item-main">
<div class="flex-item-title tw-font-normal">
<a class="muted" href="/dwl">dwl</a>/<a class="muted tw-font-semibold" href="/dwl/dwl-patches">dwl-patches</a>
</div>
</div>
<div class="flex-item-trailing">
</div>
</div>
<div class="repo-buttons button-row">
<a class="ui compact small basic button" href="/dwl/dwl-patches.rss" data-tooltip-content="RSS feed">
<svg viewBox="0 0 16 16" class="svg octicon-rss" aria-hidden="true" width="16" height="16"><path d="M2.002 2.725a.75.75 0 0 1 .797-.699C8.79 2.42 13.58 7.21 13.974 13.201a.75.75 0 0 1-1.497.098 10.5 10.5 0 0 0-9.776-9.776.747.747 0 0 1-.7-.798ZM2.84 7.05h-.002a7 7 0 0 1 6.113 6.111.75.75 0 0 1-1.49.178 5.5 5.5 0 0 0-4.8-4.8.75.75 0 0 1 .179-1.489M2 13a1 1 0 1 1 2 0 1 1 0 0 1-2 0"/></svg>
</a>
<form hx-boost="true" hx-target="this" method="post" action="/dwl/dwl-patches/action/watch" hx-on::after-settle="this.querySelector('button').focus()">
<div class="ui labeled button" data-tooltip-content="Sign in to watch this repository.">
<button type="submit" class="ui compact small basic button" disabled aria-label="Watch">
<svg viewBox="0 0 16 16" class="svg octicon-eye" aria-hidden="true" width="16" height="16"><path d="M8 2c1.981 0 3.671.992 4.933 2.078 1.27 1.091 2.187 2.345 2.637 3.023a1.62 1.62 0 0 1 0 1.798c-.45.678-1.367 1.932-2.637 3.023C11.67 13.008 9.981 14 8 14s-3.671-.992-4.933-2.078C1.797 10.83.88 9.576.43 8.898a1.62 1.62 0 0 1 0-1.798c.45-.677 1.367-1.931 2.637-3.022C4.33 2.992 6.019 2 8 2M1.679 7.932a.12.12 0 0 0 0 .136c.411.622 1.241 1.75 2.366 2.717C5.176 11.758 6.527 12.5 8 12.5s2.825-.742 3.955-1.715c1.124-.967 1.954-2.096 2.366-2.717a.12.12 0 0 0 0-.136c-.412-.621-1.242-1.75-2.366-2.717C10.824 4.242 9.473 3.5 8 3.5s-2.825.742-3.955 1.715c-1.124.967-1.954 2.096-2.366 2.717M8 10a2 2 0 1 1-.001-3.999A2 2 0 0 1 8 10"/></svg><span class="text not-mobile">Watch</span>
</button>
<a hx-boost="false" class="ui basic label" href="/dwl/dwl-patches/watchers"
aria-label="36 watchers"
>
36
</a>
</div>
</form>
<form hx-boost="true" hx-target="this" method="post" action="/dwl/dwl-patches/action/star" hx-on::after-settle="this.querySelector('button').focus()">
<div class="ui labeled button" data-tooltip-content="Sign in to star this repository.">
<button type="submit" class="ui compact small basic button" disabled aria-label="Star">
<svg viewBox="0 0 16 16" class="svg octicon-star" aria-hidden="true" width="16" height="16"><path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25m0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41z"/></svg><span class="text not-mobile">Star</span>
</button>
<a hx-boost="false" class="ui basic label" href="/dwl/dwl-patches/stars"
aria-label="132 stars"
>
132
</a>
</div>
</form>
<div class="ui labeled button
disabled
"
data-tooltip-content="Sign in to fork this repository."
>
<a class="ui compact small basic button"
>
<svg viewBox="0 0 16 16" class="svg octicon-repo-forked" aria-hidden="true" width="16" height="16"><path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0M5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0m6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5m-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0"/></svg><span class="text not-mobile">Fork</span>
</a>
<div class="ui small modal" id="fork-repo-modal">
<div class="header">
You've already forked dwl-patches
</div>
<div class="content tw-text-left">
<div class="ui list">
</div>
</div>
</div>
<a class="ui basic label" href="/dwl/dwl-patches/forks"
aria-label="93 forks"
>
93
</a>
</div>
</div>
</div>
</div>
<overflow-menu class="ui container secondary pointing tabular top attached borderless menu tw-pt-0 tw-my-0">
<div class="overflow-menu-items">
<a class="active item" href="/dwl/dwl-patches">
<svg viewBox="0 0 16 16" class="svg octicon-code" aria-hidden="true" width="16" height="16"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.75.75 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.75.75 0 0 1 .734.215m-6.56 0a.75.75 0 0 1 1.042.018.75.75 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.75.75 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"/></svg> Code
</a>
<a class="item" href="/dwl/dwl-patches/issues">
<svg viewBox="0 0 16 16" class="svg octicon-issue-opened" aria-hidden="true" width="16" height="16"><path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3"/><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0M1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0"/></svg> Issues
<span class="ui small label">14</span>
</a>
<a class="item" href="/dwl/dwl-patches/pulls">
<svg viewBox="0 0 16 16" class="svg octicon-git-pull-request" aria-hidden="true" width="16" height="16"><path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25m5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354M3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5m0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5m8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0"/></svg> Pull requests
<span class="ui small label">5</span>
</a>
<a class="item" href="/dwl/dwl-patches/wiki">
<svg viewBox="0 0 16 16" class="svg octicon-book" aria-hidden="true" width="16" height="16"><path d="M0 1.75A.75.75 0 0 1 .75 1h4.253c1.227 0 2.317.59 3 1.501A3.74 3.74 0 0 1 11.006 1h4.245a.75.75 0 0 1 .75.75v10.5a.75.75 0 0 1-.75.75h-4.507a2.25 2.25 0 0 0-1.591.659l-.622.621a.75.75 0 0 1-1.06 0l-.622-.621A2.25 2.25 0 0 0 5.258 13H.75a.75.75 0 0 1-.75-.75Zm7.251 10.324.004-5.073-.002-2.253A2.25 2.25 0 0 0 5.003 2.5H1.5v9h3.757a3.75 3.75 0 0 1 1.994.574M8.755 4.75l-.004 7.322a3.75 3.75 0 0 1 1.992-.572H14.5v-9h-3.495a2.25 2.25 0 0 0-2.25 2.25"/></svg> Wiki
</a>
<a class="item" href="/dwl/dwl-patches/activity">
<svg viewBox="0 0 16 16" class="svg octicon-pulse" aria-hidden="true" width="16" height="16"><path d="M6 2c.306 0 .582.187.696.471L10 10.731l1.304-3.26A.75.75 0 0 1 12 7h3.25a.75.75 0 0 1 0 1.5h-2.742l-1.812 4.528a.751.751 0 0 1-1.392 0L6 4.77 4.696 8.03A.75.75 0 0 1 4 8.5H.75a.75.75 0 0 1 0-1.5h2.742l1.812-4.529A.75.75 0 0 1 6 2"/></svg> Activity
</a>
</div>
</overflow-menu>
<div class="ui tabs divider"></div>
</div>
<div class="ui container ">
<div id="flash-message" hx-swap-oob="true"></div>
<div class="repo-button-row">
<div class="button-sequence tw-gap-y-2">
<script type="module">
const data = {
'textReleaseCompare': "Compare",
'textCreateTag': "Create tag %s",
'textCreateBranch': "Create branch %s",
'textCreateBranchFrom': "from \"%s\"",
'textBranches': "Branches",
'textTags': "Tags",
'textDefaultBranchLabel': "default",
'mode': 'branches',
'showBranchesInDropdown': true ,
'searchFieldPlaceholder': 'Filter branch or tag...',
'branchForm': null ,
'disableCreateBranch': true ,
'setAction': null ,
'submitForm': null ,
'viewType': "branch",
'refName': "main",
'commitIdShort': "493dc4c408",
'tagName': "",
'branchName': "main",
'noTag': null ,
'defaultSelectedRefName': "main",
'repoDefaultBranch': "main",
'enableFeed': true ,
'rssURLPrefix': '\/dwl\/dwl-patches/rss/branch/',
'branchURLPrefix': '\/dwl\/dwl-patches/src/branch/',
'branchURLSuffix': '/patches\/btrtile\/btrtile-v0.8-gaps.patch',
'tagURLPrefix': '\/dwl\/dwl-patches/src/tag/',
'tagURLSuffix': '/patches\/btrtile\/btrtile-v0.8-gaps.patch',
'repoLink': "/dwl/dwl-patches",
'treePath': "patches/btrtile/btrtile-v0.8-gaps.patch",
'branchNameSubURL': "branch/main",
'noResults': "No results found.",
};
window.config.pageData.branchDropdownDataList = window.config.pageData.branchDropdownDataList || [];
window.config.pageData.branchDropdownDataList.push(data);
</script>
<div class="js-branch-tag-selector ">
<div class="ui dropdown custom">
<button class="branch-dropdown-button gt-ellipsis ui basic small compact button tw-flex tw-m-0">
<span class="text tw-flex tw-items-center tw-mr-1 gt-ellipsis">
<svg viewBox="0 0 16 16" class="svg octicon-git-branch" aria-hidden="true" width="16" height="16"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.5 2.5 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25m-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0m8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5M4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5"/></svg>
<strong ref="dropdownRefName" class="tw-ml-2 tw-inline-block gt-ellipsis">main</strong>
</span>
<svg viewBox="0 0 16 16" class="dropdown icon svg octicon-triangle-down" aria-hidden="true" width="14" height="14"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427"/></svg>
</button>
</div>
</div>
<a id="new-pull-request" role="button" class="ui compact basic button" href="/dwl/dwl-patches/compare/main...main"
data-tooltip-content="Compare">
<svg viewBox="0 0 16 16" class="svg octicon-git-pull-request" aria-hidden="true" width="16" height="16"><path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25m5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354M3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5m0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5m8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0"/></svg>
</a>
<span class="breadcrumb repo-path tw-ml-1">
<a class="section" href="/dwl/dwl-patches/src/branch/main" title="dwl-patches">dwl-patches</a><span class="breadcrumb-divider">/</span><span class="section"><a href="/dwl/dwl-patches/src/branch/main/patches" title="patches">patches</a></span><span class="breadcrumb-divider">/</span><span class="section"><a href="/dwl/dwl-patches/src/branch/main/patches/btrtile" title="btrtile">btrtile</a></span><span class="breadcrumb-divider">/</span><span class="active section" title="btrtile-v0.8-gaps.patch">btrtile-v0.8-gaps.patch</span>
<button class="btn interact-fg tw-p-2" data-clipboard-text="patches/btrtile/btrtile-v0.8-gaps.patch" data-tooltip-content="Copy path"><svg viewBox="0 0 16 16" class="svg octicon-copy" aria-hidden="true" width="14" height="14"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"/><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"/></svg></button></span>
</div>
<div class="tw-flex tw-items-center max-[390px]:tw-w-full">
</div>
</div>
<div class="tab-size-4 non-diff-file-content">
<div id="repo-file-commit-box" class="ui segment list-header tw-mb-4 tw-flex tw-justify-between">
<div class="latest-commit">
<img loading="lazy" alt="" class="ui avatar tw-align-middle tw-mr-2" src="/avatars/f3a142a739fc387ffebb654c760f205bb2405b83752a0c3dd8c21553c6eae822" title="julmajustus" width="24" height="24"/>
<a class="muted author-wrapper" title="julmajustus" href="/julmajustus"><strong>julmajustus</strong></a>
<a href="/dwl/dwl-patches/commit/03de6e2adaa2dcaca8ea67160f5bf3b0d5e75121" rel="nofollow" class="sha label isSigned isVerified">
<span class="shortsha">03de6e2ada</span><div class="signature">
<span class="signature-author" title="julmajustus / D0805EA927B2EF04">
<svg viewBox="0 0 14 16" class="svg gitea-lock" aria-hidden="true" width="16" height="16"><path d="M12.5 7h-.75V4.75A4.756 4.756 0 0 0 7 0a4.756 4.756 0 0 0-4.75 4.75V7H1.5A1.5 1.5 0 0 0 0 8.5v6A1.5 1.5 0 0 0 1.5 16h11a1.5 1.5 0 0 0 1.5-1.5v-6A1.5 1.5 0 0 0 12.5 7M9.25 7h-4.5V4.75C4.75 3.51 5.76 2.5 7 2.5s2.25 1.01 2.25 2.25z"/></svg>
<img loading="lazy" alt="" class="ui avatar tw-align-middle" src="/avatars/f3a142a739fc387ffebb654c760f205bb2405b83752a0c3dd8c21553c6eae822" title="julmajustus" width="28" height="28"/>
</span>
</div>
</a>
<span class="grey commit-summary" title="btrtile: Spring update pt2"><span class="message-wrapper"><a href="/dwl/dwl-patches/commit/03de6e2adaa2dcaca8ea67160f5bf3b0d5e75121" class="default-link muted">btrtile: Spring update pt2</a></span>
<button class="ui button js-toggle-commit-body ellipsis-button" aria-expanded="false">...</button>
<pre class="commit-body tw-hidden">- Simplified the resizing logic to avoid full arrange calls from
motionnotify
- Minor intend fixes</pre>
</span>
</div>
<div class="text grey age">
<relative-time prefix="" tense="past" datetime="2026-05-21T00:54:00+03:00" data-tooltip-content data-tooltip-interactive="true">2026-05-21 00:54:00 +03:00</relative-time>
</div>
</div>
<h4 class="file-header ui top attached header tw-flex tw-items-center tw-justify-between tw-flex-wrap">
<div class="file-header-left tw-flex tw-items-center tw-pr-4 tw-flex-wrap tw-gap-2">
<div class="file-info tw-font-mono">
<div class="file-info-entry">
929 lines
</div>
<div class="file-info-entry">
27 KiB
</div>
<div class="file-info-entry">
Diff
</div>
</div>
</div>
<div class="file-header-right file-actions tw-flex tw-items-center tw-flex-wrap">
<div class="ui buttons tw-mr-1">
<a class="ui mini basic button" href="/dwl/dwl-patches/raw/branch/main/patches/btrtile/btrtile-v0.8-gaps.patch">Raw</a>
<a class="ui mini basic button" href="/dwl/dwl-patches/src/commit/493dc4c408c0695b3dc222a90dd5a39218fc74be/patches/btrtile/btrtile-v0.8-gaps.patch">Permalink</a>
<a class="ui mini basic button" href="/dwl/dwl-patches/blame/branch/main/patches/btrtile/btrtile-v0.8-gaps.patch">Blame</a>
<a class="ui mini basic button" href="/dwl/dwl-patches/commits/branch/main/patches/btrtile/btrtile-v0.8-gaps.patch">History</a>
</div>
<a download class="btn-octicon" href="/dwl/dwl-patches/raw/branch/main/patches/btrtile/btrtile-v0.8-gaps.patch" data-tooltip-content="Download file">
<svg viewBox="0 0 16 16" class="svg octicon-download" aria-hidden="true" width="16" height="16"><path d="M2.75 14A1.75 1.75 0 0 1 1 12.25v-2.5a.75.75 0 0 1 1.5 0v2.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25v-2.5a.75.75 0 0 1 1.5 0v2.5A1.75 1.75 0 0 1 13.25 14Z"/><path d="M7.25 7.689V2a.75.75 0 0 1 1.5 0v5.689l1.97-1.969a.749.749 0 1 1 1.06 1.06l-3.25 3.25a.75.75 0 0 1-1.06 0L4.22 6.78a.749.749 0 1 1 1.06-1.06z"/></svg>
</a>
<a href="#" id="copy-content" class="btn-octicon " data-tooltip-content="Copy content">
<svg viewBox="0 0 16 16" class="svg octicon-copy" aria-hidden="true" width="14" height="14"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"/><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"/></svg>
</a>
<a class="btn-octicon" href="/dwl/dwl-patches/rss/branch/main/patches/btrtile/btrtile-v0.8-gaps.patch" data-tooltip-content="RSS feed">
<svg viewBox="0 0 16 16" class="svg octicon-rss" aria-hidden="true" width="14" height="14"><path d="M2.002 2.725a.75.75 0 0 1 .797-.699C8.79 2.42 13.58 7.21 13.974 13.201a.75.75 0 0 1-1.497.098 10.5 10.5 0 0 0-9.776-9.776.747.747 0 0 1-.7-.798ZM2.84 7.05h-.002a7 7 0 0 1 6.113 6.111.75.75 0 0 1-1.49.178 5.5 5.5 0 0 0-4.8-4.8.75.75 0 0 1 .179-1.489M2 13a1 1 0 1 1 2 0 1 1 0 0 1-2 0"/></svg>
</a>
<span class="btn-octicon disabled" data-tooltip-content="You must fork this repository to make or propose changes to this file.">
<svg viewBox="0 0 16 16" class="svg octicon-pencil" aria-hidden="true" width="16" height="16"><path d="M11.013 1.427a1.75 1.75 0 0 1 2.474 0l1.086 1.086a1.75 1.75 0 0 1 0 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.251.93a.75.75 0 0 1-.927-.928l.929-3.25c.081-.286.235-.547.445-.758l8.61-8.61Zm.176 4.823L9.75 4.81l-6.286 6.287a.25.25 0 0 0-.064.108l-.558 1.953 1.953-.558a.25.25 0 0 0 .108-.064Zm1.238-3.763a.25.25 0 0 0-.354 0L10.811 3.75l1.439 1.44 1.263-1.263a.25.25 0 0 0 0-.354Z"/></svg>
</span>
<span class="btn-octicon disabled" data-tooltip-content="You must have write access to make or propose changes to this file.">
<svg viewBox="0 0 16 16" class="svg octicon-trash" aria-hidden="true" width="16" height="16"><path d="M11 1.75V3h2.25a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1 0-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75M4.496 6.675l.66 6.6a.25.25 0 0 0 .249.225h5.19a.25.25 0 0 0 .249-.225l.66-6.6a.75.75 0 0 1 1.492.149l-.66 6.6A1.75 1.75 0 0 1 10.595 15h-5.19a1.75 1.75 0 0 1-1.741-1.575l-.66-6.6a.75.75 0 1 1 1.492-.15M6.5 1.75V3h3V1.75a.25.25 0 0 0-.25-.25h-2.5a.25.25 0 0 0-.25.25"/></svg>
</span>
</div>
</h4>
<div class="ui bottom attached table unstackable segment">
<div class="file-view code-view">
<table>
<tbody>
<tr>
<td class="lines-num"><span id="L1" data-line-number="1"></span></td>
<td rel="L1" class="lines-code chroma"><code class="code-inner">From 1520d1f200ef0fb381683c1bcd58e553b52ac289 Mon Sep 17 00:00:00 2001
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L2" data-line-number="2"></span></td>
<td rel="L2" class="lines-code chroma"><code class="code-inner">From: julmajustus &lt;julmajustus@tutanota.com&gt;
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L3" data-line-number="3"></span></td>
<td rel="L3" class="lines-code chroma"><code class="code-inner">Date: Thu, 21 May 2026 00:42:07 +0300
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L4" data-line-number="4"></span></td>
<td rel="L4" class="lines-code chroma"><code class="code-inner">Subject: [PATCH] btrtile: Spring update pt2
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L5" data-line-number="5"></span></td>
<td rel="L5" class="lines-code chroma"><code class="code-inner">
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L6" data-line-number="6"></span></td>
<td rel="L6" class="lines-code chroma"><code class="code-inner"><span class="gd">- Simplified the resizing logic to avoid full arrange calls from
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L7" data-line-number="7"></span></td>
<td rel="L7" class="lines-code chroma"><code class="code-inner">motionnotify
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L8" data-line-number="8"></span></td>
<td rel="L8" class="lines-code chroma"><code class="code-inner"><span class="gd">- Minor intend fixes
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L9" data-line-number="9"></span></td>
<td rel="L9" class="lines-code chroma"><code class="code-inner"><span class="gs">---
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L10" data-line-number="10"></span></td>
<td rel="L10" class="lines-code chroma"><code class="code-inner"> btrtile.c | 583 +++++++++++++++++++++++++++++++++++++++++++++++++++
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L11" data-line-number="11"></span></td>
<td rel="L11" class="lines-code chroma"><code class="code-inner"> config.def.h | 12 ++
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L12" data-line-number="12"></span></td>
<td rel="L12" class="lines-code chroma"><code class="code-inner"> dwl.c | 152 +++++++++++---
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L13" data-line-number="13"></span></td>
<td rel="L13" class="lines-code chroma"><code class="code-inner"> 3 files changed, 720 insertions(+), 27 deletions(-)
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L14" data-line-number="14"></span></td>
<td rel="L14" class="lines-code chroma"><code class="code-inner"> create mode 100644 btrtile.c
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L15" data-line-number="15"></span></td>
<td rel="L15" class="lines-code chroma"><code class="code-inner">
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L16" data-line-number="16"></span></td>
<td rel="L16" class="lines-code chroma"><code class="code-inner"><span class="gh">diff --git a/btrtile.c b/btrtile.c
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L17" data-line-number="17"></span></td>
<td rel="L17" class="lines-code chroma"><code class="code-inner">new file mode 100644
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L18" data-line-number="18"></span></td>
<td rel="L18" class="lines-code chroma"><code class="code-inner"><span class="gh">index 0000000..f05a30f
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L19" data-line-number="19"></span></td>
<td rel="L19" class="lines-code chroma"><code class="code-inner"><span class="gd">--- /dev/null
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L20" data-line-number="20"></span></td>
<td rel="L20" class="lines-code chroma"><code class="code-inner"><span class="gi">+++ b/btrtile.c
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L21" data-line-number="21"></span></td>
<td rel="L21" class="lines-code chroma"><code class="code-inner"><span class="gu">@@ -0,0 +1,583 @@
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L22" data-line-number="22"></span></td>
<td rel="L22" class="lines-code chroma"><code class="code-inner"><span class="gi">+/* ************************************************************************** */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L23" data-line-number="23"></span></td>
<td rel="L23" class="lines-code chroma"><code class="code-inner"><span class="gi">+/* @@@ @@@@@@@@ */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L24" data-line-number="24"></span></td>
<td rel="L24" class="lines-code chroma"><code class="code-inner"><span class="gi">+/* @@@ @@@@@@@@@@ */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L25" data-line-number="25"></span></td>
<td rel="L25" class="lines-code chroma"><code class="code-inner"><span class="gi">+/* @@! @@! @@@@ */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L26" data-line-number="26"></span></td>
<td rel="L26" class="lines-code chroma"><code class="code-inner"><span class="gi">+/* !@! !@! @!@!@ */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L27" data-line-number="27"></span></td>
<td rel="L27" class="lines-code chroma"><code class="code-inner"><span class="gi">+/* btrtile.c @!! @!@ @! !@! */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L28" data-line-number="28"></span></td>
<td rel="L28" class="lines-code chroma"><code class="code-inner"><span class="gi">+/* !!! !@!!! !!! */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L29" data-line-number="29"></span></td>
<td rel="L29" class="lines-code chroma"><code class="code-inner"><span class="gi">+/* By: julmajustus &lt;julmajustus@tutanota.com&gt; !!: !!:! !!! */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L30" data-line-number="30"></span></td>
<td rel="L30" class="lines-code chroma"><code class="code-inner"><span class="gi">+/* ::! :!: !:! */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L31" data-line-number="31"></span></td>
<td rel="L31" class="lines-code chroma"><code class="code-inner"><span class="gi">+/* Created: 2024/12/15 00:26:07 by julmajustus :: ::::::: :: */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L32" data-line-number="32"></span></td>
<td rel="L32" class="lines-code chroma"><code class="code-inner"><span class="gi">+/* Updated: 2026/05/20 22:38:02 by julmajustus : : : : : : */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L33" data-line-number="33"></span></td>
<td rel="L33" class="lines-code chroma"><code class="code-inner"><span class="gi">+/* */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L34" data-line-number="34"></span></td>
<td rel="L34" class="lines-code chroma"><code class="code-inner"><span class="gi">+/* ************************************************************************** */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L35" data-line-number="35"></span></td>
<td rel="L35" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L36" data-line-number="36"></span></td>
<td rel="L36" class="lines-code chroma"><code class="code-inner"><span class="gi">+typedef struct LayoutNode {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L37" data-line-number="37"></span></td>
<td rel="L37" class="lines-code chroma"><code class="code-inner"><span class="gi">+ unsigned int is_client_node;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L38" data-line-number="38"></span></td>
<td rel="L38" class="lines-code chroma"><code class="code-inner"><span class="gi">+ unsigned int is_split_vertically;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L39" data-line-number="39"></span></td>
<td rel="L39" class="lines-code chroma"><code class="code-inner"><span class="gi">+ float split_ratio;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L40" data-line-number="40"></span></td>
<td rel="L40" class="lines-code chroma"><code class="code-inner"><span class="gi">+ struct LayoutNode *left;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L41" data-line-number="41"></span></td>
<td rel="L41" class="lines-code chroma"><code class="code-inner"><span class="gi">+ struct LayoutNode *right;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L42" data-line-number="42"></span></td>
<td rel="L42" class="lines-code chroma"><code class="code-inner"><span class="gi">+ struct LayoutNode *split_node;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L43" data-line-number="43"></span></td>
<td rel="L43" class="lines-code chroma"><code class="code-inner"><span class="gi">+ Client *client;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L44" data-line-number="44"></span></td>
<td rel="L44" class="lines-code chroma"><code class="code-inner"><span class="gi">+} LayoutNode;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L45" data-line-number="45"></span></td>
<td rel="L45" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L46" data-line-number="46"></span></td>
<td rel="L46" class="lines-code chroma"><code class="code-inner"><span class="gi">+static void apply_layout(Monitor *m, LayoutNode *node,
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L47" data-line-number="47"></span></td>
<td rel="L47" class="lines-code chroma"><code class="code-inner"><span class="gi">+ struct wlr_box area, unsigned int is_root);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L48" data-line-number="48"></span></td>
<td rel="L48" class="lines-code chroma"><code class="code-inner"><span class="gi">+static void btrtile(Monitor *m);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L49" data-line-number="49"></span></td>
<td rel="L49" class="lines-code chroma"><code class="code-inner"><span class="gi">+static LayoutNode *create_client_node(Client *c);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L50" data-line-number="50"></span></td>
<td rel="L50" class="lines-code chroma"><code class="code-inner"><span class="gi">+static LayoutNode *create_split_node(unsigned int is_split_vertically,
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L51" data-line-number="51"></span></td>
<td rel="L51" class="lines-code chroma"><code class="code-inner"><span class="gi">+ LayoutNode *left, LayoutNode *right);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L52" data-line-number="52"></span></td>
<td rel="L52" class="lines-code chroma"><code class="code-inner"><span class="gi">+static void destroy_node(LayoutNode *node);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L53" data-line-number="53"></span></td>
<td rel="L53" class="lines-code chroma"><code class="code-inner"><span class="gi">+static void destroy_tree(Monitor *m);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L54" data-line-number="54"></span></td>
<td rel="L54" class="lines-code chroma"><code class="code-inner"><span class="gi">+static LayoutNode *find_client_node(LayoutNode *node, Client *c);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L55" data-line-number="55"></span></td>
<td rel="L55" class="lines-code chroma"><code class="code-inner"><span class="gi">+static LayoutNode *find_suitable_split(Monitor *m, LayoutNode *start,
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L56" data-line-number="56"></span></td>
<td rel="L56" class="lines-code chroma"><code class="code-inner"><span class="gi">+ unsigned int need_vertical, int focused_on_left);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L57" data-line-number="57"></span></td>
<td rel="L57" class="lines-code chroma"><code class="code-inner"><span class="gi">+static void init_tree(Monitor *m);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L58" data-line-number="58"></span></td>
<td rel="L58" class="lines-code chroma"><code class="code-inner"><span class="gi">+static void insert_client(Monitor *m, Client *focused_client, Client *new_client);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L59" data-line-number="59"></span></td>
<td rel="L59" class="lines-code chroma"><code class="code-inner"><span class="gi">+static LayoutNode *remove_client_node(LayoutNode *node, Client *c);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L60" data-line-number="60"></span></td>
<td rel="L60" class="lines-code chroma"><code class="code-inner"><span class="gi">+static void remove_client(Monitor *m, Client *c);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L61" data-line-number="61"></span></td>
<td rel="L61" class="lines-code chroma"><code class="code-inner"><span class="gi">+static void setratio_h(const Arg *arg);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L62" data-line-number="62"></span></td>
<td rel="L62" class="lines-code chroma"><code class="code-inner"><span class="gi">+static void setratio_v(const Arg *arg);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L63" data-line-number="63"></span></td>
<td rel="L63" class="lines-code chroma"><code class="code-inner"><span class="gi">+static void swapclients(const Arg *arg);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L64" data-line-number="64"></span></td>
<td rel="L64" class="lines-code chroma"><code class="code-inner"><span class="gi">+static unsigned int visible_count(LayoutNode *node, Monitor *m);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L65" data-line-number="65"></span></td>
<td rel="L65" class="lines-code chroma"><code class="code-inner"><span class="gi">+static Client *xytoclient(double x, double y);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L66" data-line-number="66"></span></td>
<td rel="L66" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L67" data-line-number="67"></span></td>
<td rel="L67" class="lines-code chroma"><code class="code-inner"><span class="gi">+static double resize_last_update_x, resize_last_update_y;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L68" data-line-number="68"></span></td>
<td rel="L68" class="lines-code chroma"><code class="code-inner"><span class="gi">+static uint32_t last_resize_time = 0;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L69" data-line-number="69"></span></td>
<td rel="L69" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L70" data-line-number="70"></span></td>
<td rel="L70" class="lines-code chroma"><code class="code-inner"><span class="gi">+void
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L71" data-line-number="71"></span></td>
<td rel="L71" class="lines-code chroma"><code class="code-inner"><span class="gi">+apply_layout(Monitor *m, LayoutNode *node,
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L72" data-line-number="72"></span></td>
<td rel="L72" class="lines-code chroma"><code class="code-inner"><span class="gi">+ struct wlr_box area, unsigned int is_root)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L73" data-line-number="73"></span></td>
<td rel="L73" class="lines-code chroma"><code class="code-inner"><span class="gi">+{
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L74" data-line-number="74"></span></td>
<td rel="L74" class="lines-code chroma"><code class="code-inner"><span class="gi">+ Client *c;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L75" data-line-number="75"></span></td>
<td rel="L75" class="lines-code chroma"><code class="code-inner"><span class="gi">+ float ratio;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L76" data-line-number="76"></span></td>
<td rel="L76" class="lines-code chroma"><code class="code-inner"><span class="gi">+ unsigned int left_count, right_count, mid, e = m-&gt;gaps;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L77" data-line-number="77"></span></td>
<td rel="L77" class="lines-code chroma"><code class="code-inner"><span class="gi">+ struct wlr_box left_area, right_area;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L78" data-line-number="78"></span></td>
<td rel="L78" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L79" data-line-number="79"></span></td>
<td rel="L79" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (!node)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L80" data-line-number="80"></span></td>
<td rel="L80" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L81" data-line-number="81"></span></td>
<td rel="L81" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L82" data-line-number="82"></span></td>
<td rel="L82" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (is_root &amp;&amp; e) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L83" data-line-number="83"></span></td>
<td rel="L83" class="lines-code chroma"><code class="code-inner"><span class="gi">+ area.x += gappx;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L84" data-line-number="84"></span></td>
<td rel="L84" class="lines-code chroma"><code class="code-inner"><span class="gi">+ area.y += gappx;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L85" data-line-number="85"></span></td>
<td rel="L85" class="lines-code chroma"><code class="code-inner"><span class="gi">+ area.width -= 2 * gappx;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L86" data-line-number="86"></span></td>
<td rel="L86" class="lines-code chroma"><code class="code-inner"><span class="gi">+ area.height -= 2 * gappx;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L87" data-line-number="87"></span></td>
<td rel="L87" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L88" data-line-number="88"></span></td>
<td rel="L88" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L89" data-line-number="89"></span></td>
<td rel="L89" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* If this node is a client node, check if it is visible. */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L90" data-line-number="90"></span></td>
<td rel="L90" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (node-&gt;is_client_node) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L91" data-line-number="91"></span></td>
<td rel="L91" class="lines-code chroma"><code class="code-inner"><span class="gi">+ c = node-&gt;client;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L92" data-line-number="92"></span></td>
<td rel="L92" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (!c || !VISIBLEON(c, m) || c-&gt;isfloating || c-&gt;isfullscreen)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L93" data-line-number="93"></span></td>
<td rel="L93" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L94" data-line-number="94"></span></td>
<td rel="L94" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (area.x == c-&gt;old_geom.x &amp;&amp; area.y == c-&gt;old_geom.y &amp;&amp;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L95" data-line-number="95"></span></td>
<td rel="L95" class="lines-code chroma"><code class="code-inner"><span class="gi">+ area.width == c-&gt;old_geom.width &amp;&amp; area.height == c-&gt;old_geom.height)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L96" data-line-number="96"></span></td>
<td rel="L96" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L97" data-line-number="97"></span></td>
<td rel="L97" class="lines-code chroma"><code class="code-inner"><span class="gi">+ resize(c, area, 0);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L98" data-line-number="98"></span></td>
<td rel="L98" class="lines-code chroma"><code class="code-inner"><span class="gi">+ c-&gt;old_geom = area;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L99" data-line-number="99"></span></td>
<td rel="L99" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L100" data-line-number="100"></span></td>
<td rel="L100" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L101" data-line-number="101"></span></td>
<td rel="L101" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L102" data-line-number="102"></span></td>
<td rel="L102" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* For a split node, we see how many visible children are on each side: */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L103" data-line-number="103"></span></td>
<td rel="L103" class="lines-code chroma"><code class="code-inner"><span class="gi">+ left_count = visible_count(node-&gt;left, m);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L104" data-line-number="104"></span></td>
<td rel="L104" class="lines-code chroma"><code class="code-inner"><span class="gi">+ right_count = visible_count(node-&gt;right, m);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L105" data-line-number="105"></span></td>
<td rel="L105" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L106" data-line-number="106"></span></td>
<td rel="L106" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (left_count == 0 &amp;&amp; right_count == 0) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L107" data-line-number="107"></span></td>
<td rel="L107" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L108" data-line-number="108"></span></td>
<td rel="L108" class="lines-code chroma"><code class="code-inner"><span class="gi">+ } else if (left_count &gt; 0 &amp;&amp; right_count == 0) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L109" data-line-number="109"></span></td>
<td rel="L109" class="lines-code chroma"><code class="code-inner"><span class="gi">+ apply_layout(m, node-&gt;left, area, 0);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L110" data-line-number="110"></span></td>
<td rel="L110" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L111" data-line-number="111"></span></td>
<td rel="L111" class="lines-code chroma"><code class="code-inner"><span class="gi">+ } else if (left_count == 0 &amp;&amp; right_count &gt; 0) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L112" data-line-number="112"></span></td>
<td rel="L112" class="lines-code chroma"><code class="code-inner"><span class="gi">+ apply_layout(m, node-&gt;right, area, 0);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L113" data-line-number="113"></span></td>
<td rel="L113" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L114" data-line-number="114"></span></td>
<td rel="L114" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L115" data-line-number="115"></span></td>
<td rel="L115" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L116" data-line-number="116"></span></td>
<td rel="L116" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* If were here, we have visible clients in both subtrees. */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L117" data-line-number="117"></span></td>
<td rel="L117" class="lines-code chroma"><code class="code-inner"><span class="gi">+ ratio = node-&gt;split_ratio;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L118" data-line-number="118"></span></td>
<td rel="L118" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (ratio &lt; 0.05f)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L119" data-line-number="119"></span></td>
<td rel="L119" class="lines-code chroma"><code class="code-inner"><span class="gi">+ ratio = 0.05f;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L120" data-line-number="120"></span></td>
<td rel="L120" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (ratio &gt; 0.95f)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L121" data-line-number="121"></span></td>
<td rel="L121" class="lines-code chroma"><code class="code-inner"><span class="gi">+ ratio = 0.95f;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L122" data-line-number="122"></span></td>
<td rel="L122" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L123" data-line-number="123"></span></td>
<td rel="L123" class="lines-code chroma"><code class="code-inner"><span class="gi">+ memset(&amp;left_area, 0, sizeof(left_area));
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L124" data-line-number="124"></span></td>
<td rel="L124" class="lines-code chroma"><code class="code-inner"><span class="gi">+ memset(&amp;right_area, 0, sizeof(right_area));
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L125" data-line-number="125"></span></td>
<td rel="L125" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L126" data-line-number="126"></span></td>
<td rel="L126" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (node-&gt;is_split_vertically) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L127" data-line-number="127"></span></td>
<td rel="L127" class="lines-code chroma"><code class="code-inner"><span class="gi">+ mid = (unsigned int)(area.width * ratio);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L128" data-line-number="128"></span></td>
<td rel="L128" class="lines-code chroma"><code class="code-inner"><span class="gi">+ left_area.x = area.x;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L129" data-line-number="129"></span></td>
<td rel="L129" class="lines-code chroma"><code class="code-inner"><span class="gi">+ left_area.y = area.y;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L130" data-line-number="130"></span></td>
<td rel="L130" class="lines-code chroma"><code class="code-inner"><span class="gi">+ left_area.width = mid;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L131" data-line-number="131"></span></td>
<td rel="L131" class="lines-code chroma"><code class="code-inner"><span class="gi">+ left_area.height = area.height;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L132" data-line-number="132"></span></td>
<td rel="L132" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L133" data-line-number="133"></span></td>
<td rel="L133" class="lines-code chroma"><code class="code-inner"><span class="gi">+ right_area.x = area.x + mid;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L134" data-line-number="134"></span></td>
<td rel="L134" class="lines-code chroma"><code class="code-inner"><span class="gi">+ right_area.y = area.y;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L135" data-line-number="135"></span></td>
<td rel="L135" class="lines-code chroma"><code class="code-inner"><span class="gi">+ right_area.width = area.width - mid;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L136" data-line-number="136"></span></td>
<td rel="L136" class="lines-code chroma"><code class="code-inner"><span class="gi">+ right_area.height = area.height;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L137" data-line-number="137"></span></td>
<td rel="L137" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L138" data-line-number="138"></span></td>
<td rel="L138" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (e) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L139" data-line-number="139"></span></td>
<td rel="L139" class="lines-code chroma"><code class="code-inner"><span class="gi">+ left_area.width -= gappx / 2;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L140" data-line-number="140"></span></td>
<td rel="L140" class="lines-code chroma"><code class="code-inner"><span class="gi">+ right_area.x += gappx / 2;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L141" data-line-number="141"></span></td>
<td rel="L141" class="lines-code chroma"><code class="code-inner"><span class="gi">+ right_area.width -= gappx / 2;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L142" data-line-number="142"></span></td>
<td rel="L142" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L143" data-line-number="143"></span></td>
<td rel="L143" class="lines-code chroma"><code class="code-inner"><span class="gi">+ } else {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L144" data-line-number="144"></span></td>
<td rel="L144" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* horizontal split */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L145" data-line-number="145"></span></td>
<td rel="L145" class="lines-code chroma"><code class="code-inner"><span class="gi">+ mid = (unsigned int)(area.height * ratio);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L146" data-line-number="146"></span></td>
<td rel="L146" class="lines-code chroma"><code class="code-inner"><span class="gi">+ left_area.x = area.x;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L147" data-line-number="147"></span></td>
<td rel="L147" class="lines-code chroma"><code class="code-inner"><span class="gi">+ left_area.y = area.y;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L148" data-line-number="148"></span></td>
<td rel="L148" class="lines-code chroma"><code class="code-inner"><span class="gi">+ left_area.width = area.width;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L149" data-line-number="149"></span></td>
<td rel="L149" class="lines-code chroma"><code class="code-inner"><span class="gi">+ left_area.height = mid;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L150" data-line-number="150"></span></td>
<td rel="L150" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L151" data-line-number="151"></span></td>
<td rel="L151" class="lines-code chroma"><code class="code-inner"><span class="gi">+ right_area.x = area.x;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L152" data-line-number="152"></span></td>
<td rel="L152" class="lines-code chroma"><code class="code-inner"><span class="gi">+ right_area.y = area.y + mid;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L153" data-line-number="153"></span></td>
<td rel="L153" class="lines-code chroma"><code class="code-inner"><span class="gi">+ right_area.width = area.width;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L154" data-line-number="154"></span></td>
<td rel="L154" class="lines-code chroma"><code class="code-inner"><span class="gi">+ right_area.height= area.height - mid;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L155" data-line-number="155"></span></td>
<td rel="L155" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L156" data-line-number="156"></span></td>
<td rel="L156" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (e) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L157" data-line-number="157"></span></td>
<td rel="L157" class="lines-code chroma"><code class="code-inner"><span class="gi">+ left_area.height -= gappx / 2;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L158" data-line-number="158"></span></td>
<td rel="L158" class="lines-code chroma"><code class="code-inner"><span class="gi">+ right_area.y += gappx / 2;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L159" data-line-number="159"></span></td>
<td rel="L159" class="lines-code chroma"><code class="code-inner"><span class="gi">+ right_area.height -= gappx / 2;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L160" data-line-number="160"></span></td>
<td rel="L160" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L161" data-line-number="161"></span></td>
<td rel="L161" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L162" data-line-number="162"></span></td>
<td rel="L162" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L163" data-line-number="163"></span></td>
<td rel="L163" class="lines-code chroma"><code class="code-inner"><span class="gi">+ apply_layout(m, node-&gt;left, left_area, 0);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L164" data-line-number="164"></span></td>
<td rel="L164" class="lines-code chroma"><code class="code-inner"><span class="gi">+ apply_layout(m, node-&gt;right, right_area, 0);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L165" data-line-number="165"></span></td>
<td rel="L165" class="lines-code chroma"><code class="code-inner"><span class="gi">+}
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L166" data-line-number="166"></span></td>
<td rel="L166" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L167" data-line-number="167"></span></td>
<td rel="L167" class="lines-code chroma"><code class="code-inner"><span class="gi">+void
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L168" data-line-number="168"></span></td>
<td rel="L168" class="lines-code chroma"><code class="code-inner"><span class="gi">+btrtile(Monitor *m)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L169" data-line-number="169"></span></td>
<td rel="L169" class="lines-code chroma"><code class="code-inner"><span class="gi">+{
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L170" data-line-number="170"></span></td>
<td rel="L170" class="lines-code chroma"><code class="code-inner"><span class="gi">+ Client *c, *focused = NULL;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L171" data-line-number="171"></span></td>
<td rel="L171" class="lines-code chroma"><code class="code-inner"><span class="gi">+ int n = 0;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L172" data-line-number="172"></span></td>
<td rel="L172" class="lines-code chroma"><code class="code-inner"><span class="gi">+ LayoutNode *found;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L173" data-line-number="173"></span></td>
<td rel="L173" class="lines-code chroma"><code class="code-inner"><span class="gi">+ struct wlr_box full_area;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L174" data-line-number="174"></span></td>
<td rel="L174" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L175" data-line-number="175"></span></td>
<td rel="L175" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (!m)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L176" data-line-number="176"></span></td>
<td rel="L176" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L177" data-line-number="177"></span></td>
<td rel="L177" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L178" data-line-number="178"></span></td>
<td rel="L178" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* Remove non tiled clients from tree. */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L179" data-line-number="179"></span></td>
<td rel="L179" class="lines-code chroma"><code class="code-inner"><span class="gi">+ wl_list_for_each(c, &amp;clients, link) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L180" data-line-number="180"></span></td>
<td rel="L180" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (c-&gt;mon == m &amp;&amp; !c-&gt;isfloating &amp;&amp; !c-&gt;isfullscreen) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L181" data-line-number="181"></span></td>
<td rel="L181" class="lines-code chroma"><code class="code-inner"><span class="gi">+ } else {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L182" data-line-number="182"></span></td>
<td rel="L182" class="lines-code chroma"><code class="code-inner"><span class="gi">+ remove_client(m, c);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L183" data-line-number="183"></span></td>
<td rel="L183" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L184" data-line-number="184"></span></td>
<td rel="L184" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L185" data-line-number="185"></span></td>
<td rel="L185" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L186" data-line-number="186"></span></td>
<td rel="L186" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* If no client is found under cursor, fallback to focustop(m) */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L187" data-line-number="187"></span></td>
<td rel="L187" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (!(focused = xytoclient(cursor-&gt;x, cursor-&gt;y)))
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L188" data-line-number="188"></span></td>
<td rel="L188" class="lines-code chroma"><code class="code-inner"><span class="gi">+ focused = focustop(m);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L189" data-line-number="189"></span></td>
<td rel="L189" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L190" data-line-number="190"></span></td>
<td rel="L190" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* Insert visible clients that are not part of the tree. */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L191" data-line-number="191"></span></td>
<td rel="L191" class="lines-code chroma"><code class="code-inner"><span class="gi">+ wl_list_for_each(c, &amp;clients, link) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L192" data-line-number="192"></span></td>
<td rel="L192" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (VISIBLEON(c, m) &amp;&amp; !c-&gt;isfloating &amp;&amp; !c-&gt;isfullscreen &amp;&amp; c-&gt;mon == m) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L193" data-line-number="193"></span></td>
<td rel="L193" class="lines-code chroma"><code class="code-inner"><span class="gi">+ found = find_client_node(m-&gt;root, c);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L194" data-line-number="194"></span></td>
<td rel="L194" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (!found) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L195" data-line-number="195"></span></td>
<td rel="L195" class="lines-code chroma"><code class="code-inner"><span class="gi">+ insert_client(m, focused, c);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L196" data-line-number="196"></span></td>
<td rel="L196" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L197" data-line-number="197"></span></td>
<td rel="L197" class="lines-code chroma"><code class="code-inner"><span class="gi">+ n++;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L198" data-line-number="198"></span></td>
<td rel="L198" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L199" data-line-number="199"></span></td>
<td rel="L199" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L200" data-line-number="200"></span></td>
<td rel="L200" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L201" data-line-number="201"></span></td>
<td rel="L201" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (n == 0)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L202" data-line-number="202"></span></td>
<td rel="L202" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L203" data-line-number="203"></span></td>
<td rel="L203" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L204" data-line-number="204"></span></td>
<td rel="L204" class="lines-code chroma"><code class="code-inner"><span class="gi">+ full_area = m-&gt;w;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L205" data-line-number="205"></span></td>
<td rel="L205" class="lines-code chroma"><code class="code-inner"><span class="gi">+ apply_layout(m, m-&gt;root, full_area, 1);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L206" data-line-number="206"></span></td>
<td rel="L206" class="lines-code chroma"><code class="code-inner"><span class="gi">+}
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L207" data-line-number="207"></span></td>
<td rel="L207" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L208" data-line-number="208"></span></td>
<td rel="L208" class="lines-code chroma"><code class="code-inner"><span class="gi">+LayoutNode *
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L209" data-line-number="209"></span></td>
<td rel="L209" class="lines-code chroma"><code class="code-inner"><span class="gi">+create_client_node(Client *c)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L210" data-line-number="210"></span></td>
<td rel="L210" class="lines-code chroma"><code class="code-inner"><span class="gi">+{
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L211" data-line-number="211"></span></td>
<td rel="L211" class="lines-code chroma"><code class="code-inner"><span class="gi">+ LayoutNode *node = calloc(1, sizeof(LayoutNode));
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L212" data-line-number="212"></span></td>
<td rel="L212" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L213" data-line-number="213"></span></td>
<td rel="L213" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (!node)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L214" data-line-number="214"></span></td>
<td rel="L214" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return NULL;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L215" data-line-number="215"></span></td>
<td rel="L215" class="lines-code chroma"><code class="code-inner"><span class="gi">+ node-&gt;is_client_node = 1;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L216" data-line-number="216"></span></td>
<td rel="L216" class="lines-code chroma"><code class="code-inner"><span class="gi">+ node-&gt;split_ratio = 0.5f;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L217" data-line-number="217"></span></td>
<td rel="L217" class="lines-code chroma"><code class="code-inner"><span class="gi">+ node-&gt;client = c;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L218" data-line-number="218"></span></td>
<td rel="L218" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return node;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L219" data-line-number="219"></span></td>
<td rel="L219" class="lines-code chroma"><code class="code-inner"><span class="gi">+}
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L220" data-line-number="220"></span></td>
<td rel="L220" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L221" data-line-number="221"></span></td>
<td rel="L221" class="lines-code chroma"><code class="code-inner"><span class="gi">+LayoutNode *
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L222" data-line-number="222"></span></td>
<td rel="L222" class="lines-code chroma"><code class="code-inner"><span class="gi">+create_split_node(unsigned int is_split_vertically,
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L223" data-line-number="223"></span></td>
<td rel="L223" class="lines-code chroma"><code class="code-inner"><span class="gi">+ LayoutNode *left, LayoutNode *right)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L224" data-line-number="224"></span></td>
<td rel="L224" class="lines-code chroma"><code class="code-inner"><span class="gi">+{
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L225" data-line-number="225"></span></td>
<td rel="L225" class="lines-code chroma"><code class="code-inner"><span class="gi">+ LayoutNode *node = calloc(1, sizeof(LayoutNode));
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L226" data-line-number="226"></span></td>
<td rel="L226" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L227" data-line-number="227"></span></td>
<td rel="L227" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (!node)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L228" data-line-number="228"></span></td>
<td rel="L228" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return NULL;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L229" data-line-number="229"></span></td>
<td rel="L229" class="lines-code chroma"><code class="code-inner"><span class="gi">+ node-&gt;is_client_node = 0;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L230" data-line-number="230"></span></td>
<td rel="L230" class="lines-code chroma"><code class="code-inner"><span class="gi">+ node-&gt;split_ratio = 0.5f;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L231" data-line-number="231"></span></td>
<td rel="L231" class="lines-code chroma"><code class="code-inner"><span class="gi">+ node-&gt;is_split_vertically = is_split_vertically;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L232" data-line-number="232"></span></td>
<td rel="L232" class="lines-code chroma"><code class="code-inner"><span class="gi">+ node-&gt;left = left;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L233" data-line-number="233"></span></td>
<td rel="L233" class="lines-code chroma"><code class="code-inner"><span class="gi">+ node-&gt;right = right;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L234" data-line-number="234"></span></td>
<td rel="L234" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (left)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L235" data-line-number="235"></span></td>
<td rel="L235" class="lines-code chroma"><code class="code-inner"><span class="gi">+ left-&gt;split_node = node;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L236" data-line-number="236"></span></td>
<td rel="L236" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (right)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L237" data-line-number="237"></span></td>
<td rel="L237" class="lines-code chroma"><code class="code-inner"><span class="gi">+ right-&gt;split_node = node;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L238" data-line-number="238"></span></td>
<td rel="L238" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return node;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L239" data-line-number="239"></span></td>
<td rel="L239" class="lines-code chroma"><code class="code-inner"><span class="gi">+}
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L240" data-line-number="240"></span></td>
<td rel="L240" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L241" data-line-number="241"></span></td>
<td rel="L241" class="lines-code chroma"><code class="code-inner"><span class="gi">+void
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L242" data-line-number="242"></span></td>
<td rel="L242" class="lines-code chroma"><code class="code-inner"><span class="gi">+destroy_node(LayoutNode *node)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L243" data-line-number="243"></span></td>
<td rel="L243" class="lines-code chroma"><code class="code-inner"><span class="gi">+{
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L244" data-line-number="244"></span></td>
<td rel="L244" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (!node)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L245" data-line-number="245"></span></td>
<td rel="L245" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L246" data-line-number="246"></span></td>
<td rel="L246" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (!node-&gt;is_client_node) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L247" data-line-number="247"></span></td>
<td rel="L247" class="lines-code chroma"><code class="code-inner"><span class="gi">+ destroy_node(node-&gt;left);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L248" data-line-number="248"></span></td>
<td rel="L248" class="lines-code chroma"><code class="code-inner"><span class="gi">+ destroy_node(node-&gt;right);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L249" data-line-number="249"></span></td>
<td rel="L249" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L250" data-line-number="250"></span></td>
<td rel="L250" class="lines-code chroma"><code class="code-inner"><span class="gi">+ free(node);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L251" data-line-number="251"></span></td>
<td rel="L251" class="lines-code chroma"><code class="code-inner"><span class="gi">+}
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L252" data-line-number="252"></span></td>
<td rel="L252" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L253" data-line-number="253"></span></td>
<td rel="L253" class="lines-code chroma"><code class="code-inner"><span class="gi">+void
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L254" data-line-number="254"></span></td>
<td rel="L254" class="lines-code chroma"><code class="code-inner"><span class="gi">+destroy_tree(Monitor *m)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L255" data-line-number="255"></span></td>
<td rel="L255" class="lines-code chroma"><code class="code-inner"><span class="gi">+{
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L256" data-line-number="256"></span></td>
<td rel="L256" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (!m || !m-&gt;root)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L257" data-line-number="257"></span></td>
<td rel="L257" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L258" data-line-number="258"></span></td>
<td rel="L258" class="lines-code chroma"><code class="code-inner"><span class="gi">+ destroy_node(m-&gt;root);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L259" data-line-number="259"></span></td>
<td rel="L259" class="lines-code chroma"><code class="code-inner"><span class="gi">+ m-&gt;root = NULL;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L260" data-line-number="260"></span></td>
<td rel="L260" class="lines-code chroma"><code class="code-inner"><span class="gi">+}
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L261" data-line-number="261"></span></td>
<td rel="L261" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L262" data-line-number="262"></span></td>
<td rel="L262" class="lines-code chroma"><code class="code-inner"><span class="gi">+LayoutNode *
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L263" data-line-number="263"></span></td>
<td rel="L263" class="lines-code chroma"><code class="code-inner"><span class="gi">+find_client_node(LayoutNode *node, Client *c)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L264" data-line-number="264"></span></td>
<td rel="L264" class="lines-code chroma"><code class="code-inner"><span class="gi">+{
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L265" data-line-number="265"></span></td>
<td rel="L265" class="lines-code chroma"><code class="code-inner"><span class="gi">+ LayoutNode *res;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L266" data-line-number="266"></span></td>
<td rel="L266" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L267" data-line-number="267"></span></td>
<td rel="L267" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (!node || !c)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L268" data-line-number="268"></span></td>
<td rel="L268" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return NULL;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L269" data-line-number="269"></span></td>
<td rel="L269" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (node-&gt;is_client_node) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L270" data-line-number="270"></span></td>
<td rel="L270" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return (node-&gt;client == c) ? node : NULL;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L271" data-line-number="271"></span></td>
<td rel="L271" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L272" data-line-number="272"></span></td>
<td rel="L272" class="lines-code chroma"><code class="code-inner"><span class="gi">+ res = find_client_node(node-&gt;left, c);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L273" data-line-number="273"></span></td>
<td rel="L273" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return res ? res : find_client_node(node-&gt;right, c);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L274" data-line-number="274"></span></td>
<td rel="L274" class="lines-code chroma"><code class="code-inner"><span class="gi">+}
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L275" data-line-number="275"></span></td>
<td rel="L275" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L276" data-line-number="276"></span></td>
<td rel="L276" class="lines-code chroma"><code class="code-inner"><span class="gi">+LayoutNode *
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L277" data-line-number="277"></span></td>
<td rel="L277" class="lines-code chroma"><code class="code-inner"><span class="gi">+find_suitable_split(Monitor *m, LayoutNode *start_node,
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L278" data-line-number="278"></span></td>
<td rel="L278" class="lines-code chroma"><code class="code-inner"><span class="gi">+ unsigned int need_vertical, int focused_on_left)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L279" data-line-number="279"></span></td>
<td rel="L279" class="lines-code chroma"><code class="code-inner"><span class="gi">+{
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L280" data-line-number="280"></span></td>
<td rel="L280" class="lines-code chroma"><code class="code-inner"><span class="gi">+ LayoutNode *n = start_node, *child = NULL;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L281" data-line-number="281"></span></td>
<td rel="L281" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L282" data-line-number="282"></span></td>
<td rel="L282" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (!m)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L283" data-line-number="283"></span></td>
<td rel="L283" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return NULL;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L284" data-line-number="284"></span></td>
<td rel="L284" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L285" data-line-number="285"></span></td>
<td rel="L285" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (n &amp;&amp; n-&gt;is_client_node) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L286" data-line-number="286"></span></td>
<td rel="L286" class="lines-code chroma"><code class="code-inner"><span class="gi">+ child = n;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L287" data-line-number="287"></span></td>
<td rel="L287" class="lines-code chroma"><code class="code-inner"><span class="gi">+ n = n-&gt;split_node;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L288" data-line-number="288"></span></td>
<td rel="L288" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L289" data-line-number="289"></span></td>
<td rel="L289" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L290" data-line-number="290"></span></td>
<td rel="L290" class="lines-code chroma"><code class="code-inner"><span class="gi">+ while (n) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L291" data-line-number="291"></span></td>
<td rel="L291" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (!n-&gt;is_client_node &amp;&amp; n-&gt;is_split_vertically == need_vertical
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L292" data-line-number="292"></span></td>
<td rel="L292" class="lines-code chroma"><code class="code-inner"><span class="gi">+ &amp;&amp; visible_count(n-&gt;left, m) &gt; 0
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L293" data-line-number="293"></span></td>
<td rel="L293" class="lines-code chroma"><code class="code-inner"><span class="gi">+ &amp;&amp; visible_count(n-&gt;right, m) &gt; 0) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L294" data-line-number="294"></span></td>
<td rel="L294" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if ((focused_on_left &amp;&amp; n-&gt;left == child) ||
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L295" data-line-number="295"></span></td>
<td rel="L295" class="lines-code chroma"><code class="code-inner"><span class="gi">+ (!focused_on_left &amp;&amp; n-&gt;right == child))
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L296" data-line-number="296"></span></td>
<td rel="L296" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return n;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L297" data-line-number="297"></span></td>
<td rel="L297" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L298" data-line-number="298"></span></td>
<td rel="L298" class="lines-code chroma"><code class="code-inner"><span class="gi">+ child = n;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L299" data-line-number="299"></span></td>
<td rel="L299" class="lines-code chroma"><code class="code-inner"><span class="gi">+ n = n-&gt;split_node;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L300" data-line-number="300"></span></td>
<td rel="L300" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L301" data-line-number="301"></span></td>
<td rel="L301" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return NULL;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L302" data-line-number="302"></span></td>
<td rel="L302" class="lines-code chroma"><code class="code-inner"><span class="gi">+}
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L303" data-line-number="303"></span></td>
<td rel="L303" class="lines-code chroma"><code class="code-inner"><span class="gi">+void
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L304" data-line-number="304"></span></td>
<td rel="L304" class="lines-code chroma"><code class="code-inner"><span class="gi">+init_tree(Monitor *m)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L305" data-line-number="305"></span></td>
<td rel="L305" class="lines-code chroma"><code class="code-inner"><span class="gi">+{
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L306" data-line-number="306"></span></td>
<td rel="L306" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (m)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L307" data-line-number="307"></span></td>
<td rel="L307" class="lines-code chroma"><code class="code-inner"><span class="gi">+ m-&gt;root = NULL;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L308" data-line-number="308"></span></td>
<td rel="L308" class="lines-code chroma"><code class="code-inner"><span class="gi">+}
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L309" data-line-number="309"></span></td>
<td rel="L309" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L310" data-line-number="310"></span></td>
<td rel="L310" class="lines-code chroma"><code class="code-inner"><span class="gi">+void
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L311" data-line-number="311"></span></td>
<td rel="L311" class="lines-code chroma"><code class="code-inner"><span class="gi">+insert_client(Monitor *m, Client *focused_client, Client *new_client)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L312" data-line-number="312"></span></td>
<td rel="L312" class="lines-code chroma"><code class="code-inner"><span class="gi">+{
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L313" data-line-number="313"></span></td>
<td rel="L313" class="lines-code chroma"><code class="code-inner"><span class="gi">+ Client *old_client;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L314" data-line-number="314"></span></td>
<td rel="L314" class="lines-code chroma"><code class="code-inner"><span class="gi">+ LayoutNode **root = &amp;m-&gt;root, *old_root,
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L315" data-line-number="315"></span></td>
<td rel="L315" class="lines-code chroma"><code class="code-inner"><span class="gi">+ *focused_node, *new_client_node, *old_client_node;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L316" data-line-number="316"></span></td>
<td rel="L316" class="lines-code chroma"><code class="code-inner"><span class="gi">+ unsigned int wider, mid_x, mid_y;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L317" data-line-number="317"></span></td>
<td rel="L317" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L318" data-line-number="318"></span></td>
<td rel="L318" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* If no root , new client becomes the root. */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L319" data-line-number="319"></span></td>
<td rel="L319" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (!*root) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L320" data-line-number="320"></span></td>
<td rel="L320" class="lines-code chroma"><code class="code-inner"><span class="gi">+ *root = create_client_node(new_client);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L321" data-line-number="321"></span></td>
<td rel="L321" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L322" data-line-number="322"></span></td>
<td rel="L322" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L323" data-line-number="323"></span></td>
<td rel="L323" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L324" data-line-number="324"></span></td>
<td rel="L324" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* Find the focused_client node,
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L325" data-line-number="325"></span></td>
<td rel="L325" class="lines-code chroma"><code class="code-inner"><span class="gi">+ * if not found split the root. */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L326" data-line-number="326"></span></td>
<td rel="L326" class="lines-code chroma"><code class="code-inner"><span class="gi">+ focused_node = focused_client ?
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L327" data-line-number="327"></span></td>
<td rel="L327" class="lines-code chroma"><code class="code-inner"><span class="gi">+ find_client_node(*root, focused_client) : NULL;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L328" data-line-number="328"></span></td>
<td rel="L328" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (!focused_node) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L329" data-line-number="329"></span></td>
<td rel="L329" class="lines-code chroma"><code class="code-inner"><span class="gi">+ old_root = *root;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L330" data-line-number="330"></span></td>
<td rel="L330" class="lines-code chroma"><code class="code-inner"><span class="gi">+ new_client_node = create_client_node(new_client);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L331" data-line-number="331"></span></td>
<td rel="L331" class="lines-code chroma"><code class="code-inner"><span class="gi">+ *root = create_split_node(1, old_root, new_client_node);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L332" data-line-number="332"></span></td>
<td rel="L332" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L333" data-line-number="333"></span></td>
<td rel="L333" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L334" data-line-number="334"></span></td>
<td rel="L334" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L335" data-line-number="335"></span></td>
<td rel="L335" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* Turn focused node from a client node into a split node,
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L336" data-line-number="336"></span></td>
<td rel="L336" class="lines-code chroma"><code class="code-inner"><span class="gi">+ * and attach old_client + new_client. */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L337" data-line-number="337"></span></td>
<td rel="L337" class="lines-code chroma"><code class="code-inner"><span class="gi">+ old_client = focused_node-&gt;client;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L338" data-line-number="338"></span></td>
<td rel="L338" class="lines-code chroma"><code class="code-inner"><span class="gi">+ old_client_node = create_client_node(old_client);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L339" data-line-number="339"></span></td>
<td rel="L339" class="lines-code chroma"><code class="code-inner"><span class="gi">+ new_client_node = create_client_node(new_client);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L340" data-line-number="340"></span></td>
<td rel="L340" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L341" data-line-number="341"></span></td>
<td rel="L341" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* Decide split direction. */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L342" data-line-number="342"></span></td>
<td rel="L342" class="lines-code chroma"><code class="code-inner"><span class="gi">+ wider = (focused_client-&gt;geom.width &gt;= focused_client-&gt;geom.height);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L343" data-line-number="343"></span></td>
<td rel="L343" class="lines-code chroma"><code class="code-inner"><span class="gi">+ focused_node-&gt;is_client_node = 0;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L344" data-line-number="344"></span></td>
<td rel="L344" class="lines-code chroma"><code class="code-inner"><span class="gi">+ focused_node-&gt;client = NULL;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L345" data-line-number="345"></span></td>
<td rel="L345" class="lines-code chroma"><code class="code-inner"><span class="gi">+ focused_node-&gt;is_split_vertically = (wider ? 1 : 0);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L346" data-line-number="346"></span></td>
<td rel="L346" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L347" data-line-number="347"></span></td>
<td rel="L347" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* Pick new_client side depending on the cursor position. */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L348" data-line-number="348"></span></td>
<td rel="L348" class="lines-code chroma"><code class="code-inner"><span class="gi">+ mid_x = focused_client-&gt;geom.x + focused_client-&gt;geom.width / 2;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L349" data-line-number="349"></span></td>
<td rel="L349" class="lines-code chroma"><code class="code-inner"><span class="gi">+ mid_y = focused_client-&gt;geom.y + focused_client-&gt;geom.height / 2;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L350" data-line-number="350"></span></td>
<td rel="L350" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L351" data-line-number="351"></span></td>
<td rel="L351" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (wider) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L352" data-line-number="352"></span></td>
<td rel="L352" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* vertical split =&gt; left vs right */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L353" data-line-number="353"></span></td>
<td rel="L353" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (cursor-&gt;x &lt;= mid_x) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L354" data-line-number="354"></span></td>
<td rel="L354" class="lines-code chroma"><code class="code-inner"><span class="gi">+ focused_node-&gt;left = new_client_node;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L355" data-line-number="355"></span></td>
<td rel="L355" class="lines-code chroma"><code class="code-inner"><span class="gi">+ focused_node-&gt;right = old_client_node;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L356" data-line-number="356"></span></td>
<td rel="L356" class="lines-code chroma"><code class="code-inner"><span class="gi">+ } else {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L357" data-line-number="357"></span></td>
<td rel="L357" class="lines-code chroma"><code class="code-inner"><span class="gi">+ focused_node-&gt;left = old_client_node;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L358" data-line-number="358"></span></td>
<td rel="L358" class="lines-code chroma"><code class="code-inner"><span class="gi">+ focused_node-&gt;right = new_client_node;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L359" data-line-number="359"></span></td>
<td rel="L359" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L360" data-line-number="360"></span></td>
<td rel="L360" class="lines-code chroma"><code class="code-inner"><span class="gi">+ } else {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L361" data-line-number="361"></span></td>
<td rel="L361" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* horizontal split =&gt; top vs bottom */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L362" data-line-number="362"></span></td>
<td rel="L362" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (cursor-&gt;y &lt;= mid_y) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L363" data-line-number="363"></span></td>
<td rel="L363" class="lines-code chroma"><code class="code-inner"><span class="gi">+ focused_node-&gt;left = new_client_node;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L364" data-line-number="364"></span></td>
<td rel="L364" class="lines-code chroma"><code class="code-inner"><span class="gi">+ focused_node-&gt;right = old_client_node;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L365" data-line-number="365"></span></td>
<td rel="L365" class="lines-code chroma"><code class="code-inner"><span class="gi">+ } else {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L366" data-line-number="366"></span></td>
<td rel="L366" class="lines-code chroma"><code class="code-inner"><span class="gi">+ focused_node-&gt;left = old_client_node;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L367" data-line-number="367"></span></td>
<td rel="L367" class="lines-code chroma"><code class="code-inner"><span class="gi">+ focused_node-&gt;right = new_client_node;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L368" data-line-number="368"></span></td>
<td rel="L368" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L369" data-line-number="369"></span></td>
<td rel="L369" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L370" data-line-number="370"></span></td>
<td rel="L370" class="lines-code chroma"><code class="code-inner"><span class="gi">+ old_client_node-&gt;split_node = focused_node;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L371" data-line-number="371"></span></td>
<td rel="L371" class="lines-code chroma"><code class="code-inner"><span class="gi">+ new_client_node-&gt;split_node = focused_node;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L372" data-line-number="372"></span></td>
<td rel="L372" class="lines-code chroma"><code class="code-inner"><span class="gi">+ focused_node-&gt;split_ratio = 0.5f;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L373" data-line-number="373"></span></td>
<td rel="L373" class="lines-code chroma"><code class="code-inner"><span class="gi">+}
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L374" data-line-number="374"></span></td>
<td rel="L374" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L375" data-line-number="375"></span></td>
<td rel="L375" class="lines-code chroma"><code class="code-inner"><span class="gi">+LayoutNode *
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L376" data-line-number="376"></span></td>
<td rel="L376" class="lines-code chroma"><code class="code-inner"><span class="gi">+remove_client_node(LayoutNode *node, Client *c)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L377" data-line-number="377"></span></td>
<td rel="L377" class="lines-code chroma"><code class="code-inner"><span class="gi">+{
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L378" data-line-number="378"></span></td>
<td rel="L378" class="lines-code chroma"><code class="code-inner"><span class="gi">+ LayoutNode *tmp;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L379" data-line-number="379"></span></td>
<td rel="L379" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (!node)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L380" data-line-number="380"></span></td>
<td rel="L380" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return NULL;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L381" data-line-number="381"></span></td>
<td rel="L381" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (node-&gt;is_client_node) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L382" data-line-number="382"></span></td>
<td rel="L382" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* If this client_node is the client we&#39;re removing,
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L383" data-line-number="383"></span></td>
<td rel="L383" class="lines-code chroma"><code class="code-inner"><span class="gi">+ * return NULL to remove it */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L384" data-line-number="384"></span></td>
<td rel="L384" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (node-&gt;client == c) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L385" data-line-number="385"></span></td>
<td rel="L385" class="lines-code chroma"><code class="code-inner"><span class="gi">+ free(node);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L386" data-line-number="386"></span></td>
<td rel="L386" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return NULL;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L387" data-line-number="387"></span></td>
<td rel="L387" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L388" data-line-number="388"></span></td>
<td rel="L388" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return node;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L389" data-line-number="389"></span></td>
<td rel="L389" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L390" data-line-number="390"></span></td>
<td rel="L390" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L391" data-line-number="391"></span></td>
<td rel="L391" class="lines-code chroma"><code class="code-inner"><span class="gi">+ node-&gt;left = remove_client_node(node-&gt;left, c);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L392" data-line-number="392"></span></td>
<td rel="L392" class="lines-code chroma"><code class="code-inner"><span class="gi">+ node-&gt;right = remove_client_node(node-&gt;right, c);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L393" data-line-number="393"></span></td>
<td rel="L393" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L394" data-line-number="394"></span></td>
<td rel="L394" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* If one of the client node is NULL after removal and the other is not,
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L395" data-line-number="395"></span></td>
<td rel="L395" class="lines-code chroma"><code class="code-inner"><span class="gi">+ * we &#34;lift&#34; the other client node up to replace this split node. */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L396" data-line-number="396"></span></td>
<td rel="L396" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (!node-&gt;left &amp;&amp; node-&gt;right) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L397" data-line-number="397"></span></td>
<td rel="L397" class="lines-code chroma"><code class="code-inner"><span class="gi">+ tmp = node-&gt;right;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L398" data-line-number="398"></span></td>
<td rel="L398" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L399" data-line-number="399"></span></td>
<td rel="L399" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* Save pointer to split node */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L400" data-line-number="400"></span></td>
<td rel="L400" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (tmp)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L401" data-line-number="401"></span></td>
<td rel="L401" class="lines-code chroma"><code class="code-inner"><span class="gi">+ tmp-&gt;split_node = node-&gt;split_node;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L402" data-line-number="402"></span></td>
<td rel="L402" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L403" data-line-number="403"></span></td>
<td rel="L403" class="lines-code chroma"><code class="code-inner"><span class="gi">+ free(node);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L404" data-line-number="404"></span></td>
<td rel="L404" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return tmp;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L405" data-line-number="405"></span></td>
<td rel="L405" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L406" data-line-number="406"></span></td>
<td rel="L406" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L407" data-line-number="407"></span></td>
<td rel="L407" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (!node-&gt;right &amp;&amp; node-&gt;left) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L408" data-line-number="408"></span></td>
<td rel="L408" class="lines-code chroma"><code class="code-inner"><span class="gi">+ tmp = node-&gt;left;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L409" data-line-number="409"></span></td>
<td rel="L409" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L410" data-line-number="410"></span></td>
<td rel="L410" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* Save pointer to split node */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L411" data-line-number="411"></span></td>
<td rel="L411" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (tmp)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L412" data-line-number="412"></span></td>
<td rel="L412" class="lines-code chroma"><code class="code-inner"><span class="gi">+ tmp-&gt;split_node = node-&gt;split_node;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L413" data-line-number="413"></span></td>
<td rel="L413" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L414" data-line-number="414"></span></td>
<td rel="L414" class="lines-code chroma"><code class="code-inner"><span class="gi">+ free(node);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L415" data-line-number="415"></span></td>
<td rel="L415" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return tmp;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L416" data-line-number="416"></span></td>
<td rel="L416" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L417" data-line-number="417"></span></td>
<td rel="L417" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L418" data-line-number="418"></span></td>
<td rel="L418" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* If both children exist or both are NULL (empty tree),
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L419" data-line-number="419"></span></td>
<td rel="L419" class="lines-code chroma"><code class="code-inner"><span class="gi">+ * return node as is. */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L420" data-line-number="420"></span></td>
<td rel="L420" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return node;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L421" data-line-number="421"></span></td>
<td rel="L421" class="lines-code chroma"><code class="code-inner"><span class="gi">+}
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L422" data-line-number="422"></span></td>
<td rel="L422" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L423" data-line-number="423"></span></td>
<td rel="L423" class="lines-code chroma"><code class="code-inner"><span class="gi">+void
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L424" data-line-number="424"></span></td>
<td rel="L424" class="lines-code chroma"><code class="code-inner"><span class="gi">+remove_client(Monitor *m, Client *c)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L425" data-line-number="425"></span></td>
<td rel="L425" class="lines-code chroma"><code class="code-inner"><span class="gi">+{
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L426" data-line-number="426"></span></td>
<td rel="L426" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (!m-&gt;root || !c)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L427" data-line-number="427"></span></td>
<td rel="L427" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L428" data-line-number="428"></span></td>
<td rel="L428" class="lines-code chroma"><code class="code-inner"><span class="gi">+ m-&gt;root = remove_client_node(m-&gt;root, c);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L429" data-line-number="429"></span></td>
<td rel="L429" class="lines-code chroma"><code class="code-inner"><span class="gi">+}
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L430" data-line-number="430"></span></td>
<td rel="L430" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L431" data-line-number="431"></span></td>
<td rel="L431" class="lines-code chroma"><code class="code-inner"><span class="gi">+static void
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L432" data-line-number="432"></span></td>
<td rel="L432" class="lines-code chroma"><code class="code-inner"><span class="gi">+setratio(unsigned int need_vertical, const Arg *arg)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L433" data-line-number="433"></span></td>
<td rel="L433" class="lines-code chroma"><code class="code-inner"><span class="gi">+{
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L434" data-line-number="434"></span></td>
<td rel="L434" class="lines-code chroma"><code class="code-inner"><span class="gi">+ Client *sel;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L435" data-line-number="435"></span></td>
<td rel="L435" class="lines-code chroma"><code class="code-inner"><span class="gi">+ LayoutNode *client_node, *split_node;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L436" data-line-number="436"></span></td>
<td rel="L436" class="lines-code chroma"><code class="code-inner"><span class="gi">+ float new_ratio;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L437" data-line-number="437"></span></td>
<td rel="L437" class="lines-code chroma"><code class="code-inner"><span class="gi">+ int focused_on_left;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L438" data-line-number="438"></span></td>
<td rel="L438" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L439" data-line-number="439"></span></td>
<td rel="L439" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (!selmon || !selmon-&gt;lt[selmon-&gt;sellt]-&gt;arrange)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L440" data-line-number="440"></span></td>
<td rel="L440" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L441" data-line-number="441"></span></td>
<td rel="L441" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L442" data-line-number="442"></span></td>
<td rel="L442" class="lines-code chroma"><code class="code-inner"><span class="gi">+ sel = focustop(selmon);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L443" data-line-number="443"></span></td>
<td rel="L443" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (!sel)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L444" data-line-number="444"></span></td>
<td rel="L444" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L445" data-line-number="445"></span></td>
<td rel="L445" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L446" data-line-number="446"></span></td>
<td rel="L446" class="lines-code chroma"><code class="code-inner"><span class="gi">+ client_node = find_client_node(selmon-&gt;root, sel);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L447" data-line-number="447"></span></td>
<td rel="L447" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (!client_node)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L448" data-line-number="448"></span></td>
<td rel="L448" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L449" data-line-number="449"></span></td>
<td rel="L449" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L450" data-line-number="450"></span></td>
<td rel="L450" class="lines-code chroma"><code class="code-inner"><span class="gi">+ focused_on_left = (arg-&gt;f &gt;= 0.0f);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L451" data-line-number="451"></span></td>
<td rel="L451" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L452" data-line-number="452"></span></td>
<td rel="L452" class="lines-code chroma"><code class="code-inner"><span class="gi">+ split_node = find_suitable_split(selmon, client_node, need_vertical, focused_on_left);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L453" data-line-number="453"></span></td>
<td rel="L453" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L454" data-line-number="454"></span></td>
<td rel="L454" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (!split_node)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L455" data-line-number="455"></span></td>
<td rel="L455" class="lines-code chroma"><code class="code-inner"><span class="gi">+ split_node = find_suitable_split(selmon, client_node, need_vertical, !focused_on_left);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L456" data-line-number="456"></span></td>
<td rel="L456" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (!split_node)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L457" data-line-number="457"></span></td>
<td rel="L457" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L458" data-line-number="458"></span></td>
<td rel="L458" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L459" data-line-number="459"></span></td>
<td rel="L459" class="lines-code chroma"><code class="code-inner"><span class="gi">+ new_ratio = (arg-&gt;f != 0.0f) ? (split_node-&gt;split_ratio + arg-&gt;f) : 0.5f;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L460" data-line-number="460"></span></td>
<td rel="L460" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (new_ratio &lt; 0.05f)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L461" data-line-number="461"></span></td>
<td rel="L461" class="lines-code chroma"><code class="code-inner"><span class="gi">+ new_ratio = 0.05f;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L462" data-line-number="462"></span></td>
<td rel="L462" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (new_ratio &gt; 0.95f)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L463" data-line-number="463"></span></td>
<td rel="L463" class="lines-code chroma"><code class="code-inner"><span class="gi">+ new_ratio = 0.95f;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L464" data-line-number="464"></span></td>
<td rel="L464" class="lines-code chroma"><code class="code-inner"><span class="gi">+ split_node-&gt;split_ratio = new_ratio;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L465" data-line-number="465"></span></td>
<td rel="L465" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L466" data-line-number="466"></span></td>
<td rel="L466" class="lines-code chroma"><code class="code-inner"><span class="gi">+ apply_layout(selmon, selmon-&gt;root, selmon-&gt;w, 1);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L467" data-line-number="467"></span></td>
<td rel="L467" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* Skip the arrange when called from motionnotify; that path calls
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L468" data-line-number="468"></span></td>
<td rel="L468" class="lines-code chroma"><code class="code-inner"><span class="gi">+ * arrange itself after rate-limiting. */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L469" data-line-number="469"></span></td>
<td rel="L469" class="lines-code chroma"><code class="code-inner"><span class="gi">+}
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L470" data-line-number="470"></span></td>
<td rel="L470" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L471" data-line-number="471"></span></td>
<td rel="L471" class="lines-code chroma"><code class="code-inner"><span class="gi">+void
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L472" data-line-number="472"></span></td>
<td rel="L472" class="lines-code chroma"><code class="code-inner"><span class="gi">+setratio_h(const Arg *arg)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L473" data-line-number="473"></span></td>
<td rel="L473" class="lines-code chroma"><code class="code-inner"><span class="gi">+{
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L474" data-line-number="474"></span></td>
<td rel="L474" class="lines-code chroma"><code class="code-inner"><span class="gi">+ setratio(1, arg);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L475" data-line-number="475"></span></td>
<td rel="L475" class="lines-code chroma"><code class="code-inner"><span class="gi">+}
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L476" data-line-number="476"></span></td>
<td rel="L476" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L477" data-line-number="477"></span></td>
<td rel="L477" class="lines-code chroma"><code class="code-inner"><span class="gi">+void
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L478" data-line-number="478"></span></td>
<td rel="L478" class="lines-code chroma"><code class="code-inner"><span class="gi">+setratio_v(const Arg *arg)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L479" data-line-number="479"></span></td>
<td rel="L479" class="lines-code chroma"><code class="code-inner"><span class="gi">+{
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L480" data-line-number="480"></span></td>
<td rel="L480" class="lines-code chroma"><code class="code-inner"><span class="gi">+ setratio(0, arg);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L481" data-line-number="481"></span></td>
<td rel="L481" class="lines-code chroma"><code class="code-inner"><span class="gi">+}
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L482" data-line-number="482"></span></td>
<td rel="L482" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L483" data-line-number="483"></span></td>
<td rel="L483" class="lines-code chroma"><code class="code-inner"><span class="gi">+void swapclients(const Arg *arg) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L484" data-line-number="484"></span></td>
<td rel="L484" class="lines-code chroma"><code class="code-inner"><span class="gi">+ Client *c, *tmp, *target = NULL, *sel = focustop(selmon);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L485" data-line-number="485"></span></td>
<td rel="L485" class="lines-code chroma"><code class="code-inner"><span class="gi">+ LayoutNode *sel_node, *target_node;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L486" data-line-number="486"></span></td>
<td rel="L486" class="lines-code chroma"><code class="code-inner"><span class="gi">+ int closest_dist = INT_MAX, dist, sel_center_x, sel_center_y,
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L487" data-line-number="487"></span></td>
<td rel="L487" class="lines-code chroma"><code class="code-inner"><span class="gi">+ cand_center_x, cand_center_y;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L488" data-line-number="488"></span></td>
<td rel="L488" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L489" data-line-number="489"></span></td>
<td rel="L489" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (!sel || sel-&gt;isfullscreen ||
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L490" data-line-number="490"></span></td>
<td rel="L490" class="lines-code chroma"><code class="code-inner"><span class="gi">+ !selmon-&gt;root || !selmon-&gt;lt[selmon-&gt;sellt]-&gt;arrange)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L491" data-line-number="491"></span></td>
<td rel="L491" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L492" data-line-number="492"></span></td>
<td rel="L492" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L493" data-line-number="493"></span></td>
<td rel="L493" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L494" data-line-number="494"></span></td>
<td rel="L494" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* Get the center coordinates of the selected client */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L495" data-line-number="495"></span></td>
<td rel="L495" class="lines-code chroma"><code class="code-inner"><span class="gi">+ sel_center_x = sel-&gt;geom.x + sel-&gt;geom.width / 2;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L496" data-line-number="496"></span></td>
<td rel="L496" class="lines-code chroma"><code class="code-inner"><span class="gi">+ sel_center_y = sel-&gt;geom.y + sel-&gt;geom.height / 2;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L497" data-line-number="497"></span></td>
<td rel="L497" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L498" data-line-number="498"></span></td>
<td rel="L498" class="lines-code chroma"><code class="code-inner"><span class="gi">+ wl_list_for_each(c, &amp;clients, link) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L499" data-line-number="499"></span></td>
<td rel="L499" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (!VISIBLEON(c, selmon) || c-&gt;isfloating || c-&gt;isfullscreen || c == sel)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L500" data-line-number="500"></span></td>
<td rel="L500" class="lines-code chroma"><code class="code-inner"><span class="gi">+ continue;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L501" data-line-number="501"></span></td>
<td rel="L501" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L502" data-line-number="502"></span></td>
<td rel="L502" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* Get the center of candidate client */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L503" data-line-number="503"></span></td>
<td rel="L503" class="lines-code chroma"><code class="code-inner"><span class="gi">+ cand_center_x = c-&gt;geom.x + c-&gt;geom.width / 2;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L504" data-line-number="504"></span></td>
<td rel="L504" class="lines-code chroma"><code class="code-inner"><span class="gi">+ cand_center_y = c-&gt;geom.y + c-&gt;geom.height / 2;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L505" data-line-number="505"></span></td>
<td rel="L505" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L506" data-line-number="506"></span></td>
<td rel="L506" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* Check that the candidate lies in the requested direction. */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L507" data-line-number="507"></span></td>
<td rel="L507" class="lines-code chroma"><code class="code-inner"><span class="gi">+ switch (arg-&gt;ui) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L508" data-line-number="508"></span></td>
<td rel="L508" class="lines-code chroma"><code class="code-inner"><span class="gi">+ case 0:
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L509" data-line-number="509"></span></td>
<td rel="L509" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (cand_center_x &gt;= sel_center_x)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L510" data-line-number="510"></span></td>
<td rel="L510" class="lines-code chroma"><code class="code-inner"><span class="gi">+ continue;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L511" data-line-number="511"></span></td>
<td rel="L511" class="lines-code chroma"><code class="code-inner"><span class="gi">+ break;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L512" data-line-number="512"></span></td>
<td rel="L512" class="lines-code chroma"><code class="code-inner"><span class="gi">+ case 1:
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L513" data-line-number="513"></span></td>
<td rel="L513" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (cand_center_x &lt;= sel_center_x)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L514" data-line-number="514"></span></td>
<td rel="L514" class="lines-code chroma"><code class="code-inner"><span class="gi">+ continue;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L515" data-line-number="515"></span></td>
<td rel="L515" class="lines-code chroma"><code class="code-inner"><span class="gi">+ break;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L516" data-line-number="516"></span></td>
<td rel="L516" class="lines-code chroma"><code class="code-inner"><span class="gi">+ case 2:
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L517" data-line-number="517"></span></td>
<td rel="L517" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (cand_center_y &gt;= sel_center_y)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L518" data-line-number="518"></span></td>
<td rel="L518" class="lines-code chroma"><code class="code-inner"><span class="gi">+ continue;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L519" data-line-number="519"></span></td>
<td rel="L519" class="lines-code chroma"><code class="code-inner"><span class="gi">+ break;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L520" data-line-number="520"></span></td>
<td rel="L520" class="lines-code chroma"><code class="code-inner"><span class="gi">+ case 3:
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L521" data-line-number="521"></span></td>
<td rel="L521" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (cand_center_y &lt;= sel_center_y)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L522" data-line-number="522"></span></td>
<td rel="L522" class="lines-code chroma"><code class="code-inner"><span class="gi">+ continue;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L523" data-line-number="523"></span></td>
<td rel="L523" class="lines-code chroma"><code class="code-inner"><span class="gi">+ break;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L524" data-line-number="524"></span></td>
<td rel="L524" class="lines-code chroma"><code class="code-inner"><span class="gi">+ default:
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L525" data-line-number="525"></span></td>
<td rel="L525" class="lines-code chroma"><code class="code-inner"><span class="gi">+ continue;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L526" data-line-number="526"></span></td>
<td rel="L526" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L527" data-line-number="527"></span></td>
<td rel="L527" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L528" data-line-number="528"></span></td>
<td rel="L528" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* Get distance between the centers */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L529" data-line-number="529"></span></td>
<td rel="L529" class="lines-code chroma"><code class="code-inner"><span class="gi">+ dist = abs(sel_center_x - cand_center_x) + abs(sel_center_y - cand_center_y);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L530" data-line-number="530"></span></td>
<td rel="L530" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (dist &lt; closest_dist) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L531" data-line-number="531"></span></td>
<td rel="L531" class="lines-code chroma"><code class="code-inner"><span class="gi">+ closest_dist = dist;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L532" data-line-number="532"></span></td>
<td rel="L532" class="lines-code chroma"><code class="code-inner"><span class="gi">+ target = c;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L533" data-line-number="533"></span></td>
<td rel="L533" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L534" data-line-number="534"></span></td>
<td rel="L534" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L535" data-line-number="535"></span></td>
<td rel="L535" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L536" data-line-number="536"></span></td>
<td rel="L536" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* If target is found, swap the two clients positions in the layout tree */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L537" data-line-number="537"></span></td>
<td rel="L537" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (target) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L538" data-line-number="538"></span></td>
<td rel="L538" class="lines-code chroma"><code class="code-inner"><span class="gi">+ sel_node = find_client_node(selmon-&gt;root, sel);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L539" data-line-number="539"></span></td>
<td rel="L539" class="lines-code chroma"><code class="code-inner"><span class="gi">+ target_node = find_client_node(selmon-&gt;root, target);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L540" data-line-number="540"></span></td>
<td rel="L540" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (sel_node &amp;&amp; target_node) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L541" data-line-number="541"></span></td>
<td rel="L541" class="lines-code chroma"><code class="code-inner"><span class="gi">+ tmp = sel_node-&gt;client;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L542" data-line-number="542"></span></td>
<td rel="L542" class="lines-code chroma"><code class="code-inner"><span class="gi">+ sel_node-&gt;client = target_node-&gt;client;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L543" data-line-number="543"></span></td>
<td rel="L543" class="lines-code chroma"><code class="code-inner"><span class="gi">+ target_node-&gt;client = tmp;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L544" data-line-number="544"></span></td>
<td rel="L544" class="lines-code chroma"><code class="code-inner"><span class="gi">+ arrange(selmon);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L545" data-line-number="545"></span></td>
<td rel="L545" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L546" data-line-number="546"></span></td>
<td rel="L546" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L547" data-line-number="547"></span></td>
<td rel="L547" class="lines-code chroma"><code class="code-inner"><span class="gi">+}
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L548" data-line-number="548"></span></td>
<td rel="L548" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L549" data-line-number="549"></span></td>
<td rel="L549" class="lines-code chroma"><code class="code-inner"><span class="gi">+unsigned int
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L550" data-line-number="550"></span></td>
<td rel="L550" class="lines-code chroma"><code class="code-inner"><span class="gi">+visible_count(LayoutNode *node, Monitor *m)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L551" data-line-number="551"></span></td>
<td rel="L551" class="lines-code chroma"><code class="code-inner"><span class="gi">+{
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L552" data-line-number="552"></span></td>
<td rel="L552" class="lines-code chroma"><code class="code-inner"><span class="gi">+ Client *c;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L553" data-line-number="553"></span></td>
<td rel="L553" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L554" data-line-number="554"></span></td>
<td rel="L554" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (!node)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L555" data-line-number="555"></span></td>
<td rel="L555" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return 0;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L556" data-line-number="556"></span></td>
<td rel="L556" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* Check if this client is visible. */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L557" data-line-number="557"></span></td>
<td rel="L557" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (node-&gt;is_client_node) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L558" data-line-number="558"></span></td>
<td rel="L558" class="lines-code chroma"><code class="code-inner"><span class="gi">+ c = node-&gt;client;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L559" data-line-number="559"></span></td>
<td rel="L559" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (c &amp;&amp; VISIBLEON(c, m) &amp;&amp; !c-&gt;isfloating &amp;&amp; !c-&gt;isfullscreen)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L560" data-line-number="560"></span></td>
<td rel="L560" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return 1;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L561" data-line-number="561"></span></td>
<td rel="L561" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return 0;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L562" data-line-number="562"></span></td>
<td rel="L562" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L563" data-line-number="563"></span></td>
<td rel="L563" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* Else its a split node. */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L564" data-line-number="564"></span></td>
<td rel="L564" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return visible_count(node-&gt;left, m) + visible_count(node-&gt;right, m);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L565" data-line-number="565"></span></td>
<td rel="L565" class="lines-code chroma"><code class="code-inner"><span class="gi">+}
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L566" data-line-number="566"></span></td>
<td rel="L566" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L567" data-line-number="567"></span></td>
<td rel="L567" class="lines-code chroma"><code class="code-inner"><span class="gi">+Client *
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L568" data-line-number="568"></span></td>
<td rel="L568" class="lines-code chroma"><code class="code-inner"><span class="gi">+xytoclient(double x, double y) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L569" data-line-number="569"></span></td>
<td rel="L569" class="lines-code chroma"><code class="code-inner"><span class="gi">+ Monitor *m = xytomon(x, y);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L570" data-line-number="570"></span></td>
<td rel="L570" class="lines-code chroma"><code class="code-inner"><span class="gi">+ Client *c, *closest = NULL;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L571" data-line-number="571"></span></td>
<td rel="L571" class="lines-code chroma"><code class="code-inner"><span class="gi">+ double dist, mindist = INT_MAX, dx, dy;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L572" data-line-number="572"></span></td>
<td rel="L572" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L573" data-line-number="573"></span></td>
<td rel="L573" class="lines-code chroma"><code class="code-inner"><span class="gi">+ wl_list_for_each_reverse(c, &amp;clients, link) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L574" data-line-number="574"></span></td>
<td rel="L574" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (VISIBLEON(c, m) &amp;&amp; !c-&gt;isfloating &amp;&amp; !c-&gt;isfullscreen &amp;&amp;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L575" data-line-number="575"></span></td>
<td rel="L575" class="lines-code chroma"><code class="code-inner"><span class="gi">+ x &gt;= c-&gt;geom.x &amp;&amp; x &lt;= (c-&gt;geom.x + c-&gt;geom.width) &amp;&amp;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L576" data-line-number="576"></span></td>
<td rel="L576" class="lines-code chroma"><code class="code-inner"><span class="gi">+ y &gt;= c-&gt;geom.y &amp;&amp; y &lt;= (c-&gt;geom.y + c-&gt;geom.height)){
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L577" data-line-number="577"></span></td>
<td rel="L577" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return c;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L578" data-line-number="578"></span></td>
<td rel="L578" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L579" data-line-number="579"></span></td>
<td rel="L579" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L580" data-line-number="580"></span></td>
<td rel="L580" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L581" data-line-number="581"></span></td>
<td rel="L581" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* If no client was found at cursor position fallback to closest. */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L582" data-line-number="582"></span></td>
<td rel="L582" class="lines-code chroma"><code class="code-inner"><span class="gi">+ wl_list_for_each_reverse(c, &amp;clients, link) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L583" data-line-number="583"></span></td>
<td rel="L583" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (VISIBLEON(c, m) &amp;&amp; !c-&gt;isfloating &amp;&amp; !c-&gt;isfullscreen) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L584" data-line-number="584"></span></td>
<td rel="L584" class="lines-code chroma"><code class="code-inner"><span class="gi">+ dx = 0, dy = 0;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L585" data-line-number="585"></span></td>
<td rel="L585" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L586" data-line-number="586"></span></td>
<td rel="L586" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (x &lt; c-&gt;geom.x)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L587" data-line-number="587"></span></td>
<td rel="L587" class="lines-code chroma"><code class="code-inner"><span class="gi">+ dx = c-&gt;geom.x - x;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L588" data-line-number="588"></span></td>
<td rel="L588" class="lines-code chroma"><code class="code-inner"><span class="gi">+ else if (x &gt; (c-&gt;geom.x + c-&gt;geom.width))
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L589" data-line-number="589"></span></td>
<td rel="L589" class="lines-code chroma"><code class="code-inner"><span class="gi">+ dx = x - (c-&gt;geom.x + c-&gt;geom.width);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L590" data-line-number="590"></span></td>
<td rel="L590" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L591" data-line-number="591"></span></td>
<td rel="L591" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (y &lt; c-&gt;geom.y)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L592" data-line-number="592"></span></td>
<td rel="L592" class="lines-code chroma"><code class="code-inner"><span class="gi">+ dy = c-&gt;geom.y - y;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L593" data-line-number="593"></span></td>
<td rel="L593" class="lines-code chroma"><code class="code-inner"><span class="gi">+ else if (y &gt; (c-&gt;geom.y + c-&gt;geom.height))
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L594" data-line-number="594"></span></td>
<td rel="L594" class="lines-code chroma"><code class="code-inner"><span class="gi">+ dy = y - (c-&gt;geom.y + c-&gt;geom.height);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L595" data-line-number="595"></span></td>
<td rel="L595" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L596" data-line-number="596"></span></td>
<td rel="L596" class="lines-code chroma"><code class="code-inner"><span class="gi">+ dist = dx * dx + dy * dy;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L597" data-line-number="597"></span></td>
<td rel="L597" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (dist &lt; mindist) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L598" data-line-number="598"></span></td>
<td rel="L598" class="lines-code chroma"><code class="code-inner"><span class="gi">+ mindist = dist;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L599" data-line-number="599"></span></td>
<td rel="L599" class="lines-code chroma"><code class="code-inner"><span class="gi">+ closest = c;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L600" data-line-number="600"></span></td>
<td rel="L600" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L601" data-line-number="601"></span></td>
<td rel="L601" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L602" data-line-number="602"></span></td>
<td rel="L602" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L603" data-line-number="603"></span></td>
<td rel="L603" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return closest;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L604" data-line-number="604"></span></td>
<td rel="L604" class="lines-code chroma"><code class="code-inner"><span class="gi">+}
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L605" data-line-number="605"></span></td>
<td rel="L605" class="lines-code chroma"><code class="code-inner"><span class="gh">diff --git a/config.def.h b/config.def.h
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L606" data-line-number="606"></span></td>
<td rel="L606" class="lines-code chroma"><code class="code-inner"><span class="gh">index 8a6eda0..bc04e3f 100644
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L607" data-line-number="607"></span></td>
<td rel="L607" class="lines-code chroma"><code class="code-inner"><span class="gd">--- a/config.def.h
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L608" data-line-number="608"></span></td>
<td rel="L608" class="lines-code chroma"><code class="code-inner"><span class="gi">+++ b/config.def.h
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L609" data-line-number="609"></span></td>
<td rel="L609" class="lines-code chroma"><code class="code-inner"><span class="gu">@@ -13,7 +13,10 @@ static const float focuscolor[] = COLOR(0x005577ff);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L610" data-line-number="610"></span></td>
<td rel="L610" class="lines-code chroma"><code class="code-inner"> static const float urgentcolor[] = COLOR(0xff0000ff);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L611" data-line-number="611"></span></td>
<td rel="L611" class="lines-code chroma"><code class="code-inner"> /* This conforms to the xdg-protocol. Set the alpha to zero to restore the old behavior */
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L612" data-line-number="612"></span></td>
<td rel="L612" class="lines-code chroma"><code class="code-inner"> static const float fullscreen_bg[] = {0.0f, 0.0f, 0.0f, 1.0f}; /* You can also use glsl colors */
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L613" data-line-number="613"></span></td>
<td rel="L613" class="lines-code chroma"><code class="code-inner"><span class="gi">+static const float resize_factor = 0.0002f; /* Resize multiplier for mouse resizing, depends on mouse sensivity. */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L614" data-line-number="614"></span></td>
<td rel="L614" class="lines-code chroma"><code class="code-inner"><span class="gi">+static const uint32_t resize_interval_ms = 16; /* Resize interval depends on framerate and screen refresh rate. */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L615" data-line-number="615"></span></td>
<td rel="L615" class="lines-code chroma"><code class="code-inner">
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L616" data-line-number="616"></span></td>
<td rel="L616" class="lines-code chroma"><code class="code-inner"><span class="gi">+enum Direction { DIR_LEFT, DIR_RIGHT, DIR_UP, DIR_DOWN };
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L617" data-line-number="617"></span></td>
<td rel="L617" class="lines-code chroma"><code class="code-inner"> /* tagging - TAGCOUNT must be no greater than 31 */
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L618" data-line-number="618"></span></td>
<td rel="L618" class="lines-code chroma"><code class="code-inner"> #define TAGCOUNT (9)
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L619" data-line-number="619"></span></td>
<td rel="L619" class="lines-code chroma"><code class="code-inner">
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L620" data-line-number="620"></span></td>
<td rel="L620" class="lines-code chroma"><code class="code-inner"><span class="gu">@@ -30,6 +33,7 @@ static const Rule rules[] = {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L621" data-line-number="621"></span></td>
<td rel="L621" class="lines-code chroma"><code class="code-inner"> /* layout(s) */
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L622" data-line-number="622"></span></td>
<td rel="L622" class="lines-code chroma"><code class="code-inner"> static const Layout layouts[] = {
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L623" data-line-number="623"></span></td>
<td rel="L623" class="lines-code chroma"><code class="code-inner"> /* symbol arrange function */
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L624" data-line-number="624"></span></td>
<td rel="L624" class="lines-code chroma"><code class="code-inner"><span class="gi">+ { &#34;|w|&#34;, btrtile },
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L625" data-line-number="625"></span></td>
<td rel="L625" class="lines-code chroma"><code class="code-inner"> { &#34;[]=&#34;, tile },
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L626" data-line-number="626"></span></td>
<td rel="L626" class="lines-code chroma"><code class="code-inner"> { &#34;&gt;&lt;&gt;&#34;, NULL }, /* no layout function means floating behavior */
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L627" data-line-number="627"></span></td>
<td rel="L627" class="lines-code chroma"><code class="code-inner"> { &#34;[M]&#34;, monocle },
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L628" data-line-number="628"></span></td>
<td rel="L628" class="lines-code chroma"><code class="code-inner"><span class="gu">@@ -144,6 +148,14 @@ static const Key keys[] = {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L629" data-line-number="629"></span></td>
<td rel="L629" class="lines-code chroma"><code class="code-inner"> { MODKEY, XKB_KEY_period, focusmon, {.i = WLR_DIRECTION_RIGHT} },
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L630" data-line-number="630"></span></td>
<td rel="L630" class="lines-code chroma"><code class="code-inner"> { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_less, tagmon, {.i = WLR_DIRECTION_LEFT} },
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L631" data-line-number="631"></span></td>
<td rel="L631" class="lines-code chroma"><code class="code-inner"> { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_greater, tagmon, {.i = WLR_DIRECTION_RIGHT} },
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L632" data-line-number="632"></span></td>
<td rel="L632" class="lines-code chroma"><code class="code-inner"><span class="gi">+ { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_Up, swapclients, {.i = DIR_UP} },
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L633" data-line-number="633"></span></td>
<td rel="L633" class="lines-code chroma"><code class="code-inner"><span class="gi">+ { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_Down, swapclients, {.i = DIR_DOWN} },
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L634" data-line-number="634"></span></td>
<td rel="L634" class="lines-code chroma"><code class="code-inner"><span class="gi">+ { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_Right, swapclients, {.i = DIR_RIGHT} },
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L635" data-line-number="635"></span></td>
<td rel="L635" class="lines-code chroma"><code class="code-inner"><span class="gi">+ { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_Left, swapclients, {.i = DIR_LEFT} },
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L636" data-line-number="636"></span></td>
<td rel="L636" class="lines-code chroma"><code class="code-inner"><span class="gi">+ { MODKEY|WLR_MODIFIER_CTRL, XKB_KEY_Right, setratio_h, {.f = +0.025f} },
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L637" data-line-number="637"></span></td>
<td rel="L637" class="lines-code chroma"><code class="code-inner"><span class="gi">+ { MODKEY|WLR_MODIFIER_CTRL, XKB_KEY_Left, setratio_h, {.f = -0.025f} },
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L638" data-line-number="638"></span></td>
<td rel="L638" class="lines-code chroma"><code class="code-inner"><span class="gi">+ { MODKEY|WLR_MODIFIER_CTRL, XKB_KEY_Up, setratio_v, {.f = -0.025f} },
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L639" data-line-number="639"></span></td>
<td rel="L639" class="lines-code chroma"><code class="code-inner"><span class="gi">+ { MODKEY|WLR_MODIFIER_CTRL, XKB_KEY_Down, setratio_v, {.f = +0.025f} },
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L640" data-line-number="640"></span></td>
<td rel="L640" class="lines-code chroma"><code class="code-inner"> TAGKEYS( XKB_KEY_1, XKB_KEY_exclam, 0),
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L641" data-line-number="641"></span></td>
<td rel="L641" class="lines-code chroma"><code class="code-inner"> TAGKEYS( XKB_KEY_2, XKB_KEY_at, 1),
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L642" data-line-number="642"></span></td>
<td rel="L642" class="lines-code chroma"><code class="code-inner"> TAGKEYS( XKB_KEY_3, XKB_KEY_numbersign, 2),
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L643" data-line-number="643"></span></td>
<td rel="L643" class="lines-code chroma"><code class="code-inner"><span class="gh">diff --git a/dwl.c b/dwl.c
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L644" data-line-number="644"></span></td>
<td rel="L644" class="lines-code chroma"><code class="code-inner"><span class="gh">index 44f3ad9..a121efc 100644
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L645" data-line-number="645"></span></td>
<td rel="L645" class="lines-code chroma"><code class="code-inner"><span class="gd">--- a/dwl.c
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L646" data-line-number="646"></span></td>
<td rel="L646" class="lines-code chroma"><code class="code-inner"><span class="gi">+++ b/dwl.c
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L647" data-line-number="647"></span></td>
<td rel="L647" class="lines-code chroma"><code class="code-inner"><span class="gu">@@ -1,6 +1,7 @@
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L648" data-line-number="648"></span></td>
<td rel="L648" class="lines-code chroma"><code class="code-inner"> /*
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L649" data-line-number="649"></span></td>
<td rel="L649" class="lines-code chroma"><code class="code-inner"> * See LICENSE file for copyright and license details.
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L650" data-line-number="650"></span></td>
<td rel="L650" class="lines-code chroma"><code class="code-inner"> */
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L651" data-line-number="651"></span></td>
<td rel="L651" class="lines-code chroma"><code class="code-inner"><span class="gi">+#include &lt;limits.h&gt;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L652" data-line-number="652"></span></td>
<td rel="L652" class="lines-code chroma"><code class="code-inner"> #include &lt;getopt.h&gt;
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L653" data-line-number="653"></span></td>
<td rel="L653" class="lines-code chroma"><code class="code-inner"> #include &lt;libinput.h&gt;
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L654" data-line-number="654"></span></td>
<td rel="L654" class="lines-code chroma"><code class="code-inner"> #include &lt;linux/input-event-codes.h&gt;
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L655" data-line-number="655"></span></td>
<td rel="L655" class="lines-code chroma"><code class="code-inner"><span class="gu">@@ -100,6 +101,7 @@ typedef struct {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L656" data-line-number="656"></span></td>
<td rel="L656" class="lines-code chroma"><code class="code-inner"> const Arg arg;
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L657" data-line-number="657"></span></td>
<td rel="L657" class="lines-code chroma"><code class="code-inner"> } Button;
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L658" data-line-number="658"></span></td>
<td rel="L658" class="lines-code chroma"><code class="code-inner">
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L659" data-line-number="659"></span></td>
<td rel="L659" class="lines-code chroma"><code class="code-inner"><span class="gi">+typedef struct LayoutNode LayoutNode;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L660" data-line-number="660"></span></td>
<td rel="L660" class="lines-code chroma"><code class="code-inner"> typedef struct Monitor Monitor;
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L661" data-line-number="661"></span></td>
<td rel="L661" class="lines-code chroma"><code class="code-inner"> typedef struct {
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L662" data-line-number="662"></span></td>
<td rel="L662" class="lines-code chroma"><code class="code-inner"> /* Must keep this field first */
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L663" data-line-number="663"></span></td>
<td rel="L663" class="lines-code chroma"><code class="code-inner"><span class="gu">@@ -137,8 +139,9 @@ typedef struct {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L664" data-line-number="664"></span></td>
<td rel="L664" class="lines-code chroma"><code class="code-inner"> #endif
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L665" data-line-number="665"></span></td>
<td rel="L665" class="lines-code chroma"><code class="code-inner"> unsigned int bw;
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L666" data-line-number="666"></span></td>
<td rel="L666" class="lines-code chroma"><code class="code-inner"> uint32_t tags;
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L667" data-line-number="667"></span></td>
<td rel="L667" class="lines-code chroma"><code class="code-inner"><span class="gd">- int isfloating, isurgent, isfullscreen;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L668" data-line-number="668"></span></td>
<td rel="L668" class="lines-code chroma"><code class="code-inner"><span class="gi">+ int isfloating, isurgent, isfullscreen, was_tiled;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L669" data-line-number="669"></span></td>
<td rel="L669" class="lines-code chroma"><code class="code-inner"> uint32_t resize; /* configure serial of a pending resize */
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L670" data-line-number="670"></span></td>
<td rel="L670" class="lines-code chroma"><code class="code-inner"><span class="gi">+ struct wlr_box old_geom;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L671" data-line-number="671"></span></td>
<td rel="L671" class="lines-code chroma"><code class="code-inner"> } Client;
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L672" data-line-number="672"></span></td>
<td rel="L672" class="lines-code chroma"><code class="code-inner">
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L673" data-line-number="673"></span></td>
<td rel="L673" class="lines-code chroma"><code class="code-inner"> typedef struct {
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L674" data-line-number="674"></span></td>
<td rel="L674" class="lines-code chroma"><code class="code-inner"><span class="gu">@@ -205,6 +208,7 @@ struct Monitor {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L675" data-line-number="675"></span></td>
<td rel="L675" class="lines-code chroma"><code class="code-inner"> int nmaster;
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L676" data-line-number="676"></span></td>
<td rel="L676" class="lines-code chroma"><code class="code-inner"> char ltsymbol[16];
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L677" data-line-number="677"></span></td>
<td rel="L677" class="lines-code chroma"><code class="code-inner"> int asleep;
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L678" data-line-number="678"></span></td>
<td rel="L678" class="lines-code chroma"><code class="code-inner"><span class="gi">+ LayoutNode *root;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L679" data-line-number="679"></span></td>
<td rel="L679" class="lines-code chroma"><code class="code-inner"> };
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L680" data-line-number="680"></span></td>
<td rel="L680" class="lines-code chroma"><code class="code-inner">
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L681" data-line-number="681"></span></td>
<td rel="L681" class="lines-code chroma"><code class="code-inner"> typedef struct {
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L682" data-line-number="682"></span></td>
<td rel="L682" class="lines-code chroma"><code class="code-inner"><span class="gu">@@ -247,6 +251,7 @@ static void arrangelayer(Monitor *m, struct wl_list *list,
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L683" data-line-number="683"></span></td>
<td rel="L683" class="lines-code chroma"><code class="code-inner"> struct wlr_box *usable_area, int exclusive);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L684" data-line-number="684"></span></td>
<td rel="L684" class="lines-code chroma"><code class="code-inner"> static void arrangelayers(Monitor *m);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L685" data-line-number="685"></span></td>
<td rel="L685" class="lines-code chroma"><code class="code-inner"> static void axisnotify(struct wl_listener *listener, void *data);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L686" data-line-number="686"></span></td>
<td rel="L686" class="lines-code chroma"><code class="code-inner"><span class="gi">+static void btrtile(Monitor *m);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L687" data-line-number="687"></span></td>
<td rel="L687" class="lines-code chroma"><code class="code-inner"> static void buttonpress(struct wl_listener *listener, void *data);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L688" data-line-number="688"></span></td>
<td rel="L688" class="lines-code chroma"><code class="code-inner"> static void chvt(const Arg *arg);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L689" data-line-number="689"></span></td>
<td rel="L689" class="lines-code chroma"><code class="code-inner"> static void checkidleinhibitor(struct wlr_surface *exclude);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L690" data-line-number="690"></span></td>
<td rel="L690" class="lines-code chroma"><code class="code-inner"><span class="gu">@@ -329,6 +334,9 @@ static void setmon(Client *c, Monitor *m, uint32_t newtags);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L691" data-line-number="691"></span></td>
<td rel="L691" class="lines-code chroma"><code class="code-inner"> static void setpsel(struct wl_listener *listener, void *data);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L692" data-line-number="692"></span></td>
<td rel="L692" class="lines-code chroma"><code class="code-inner"> static void setsel(struct wl_listener *listener, void *data);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L693" data-line-number="693"></span></td>
<td rel="L693" class="lines-code chroma"><code class="code-inner"> static void setup(void);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L694" data-line-number="694"></span></td>
<td rel="L694" class="lines-code chroma"><code class="code-inner"><span class="gi">+static void setratio_h(const Arg *arg);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L695" data-line-number="695"></span></td>
<td rel="L695" class="lines-code chroma"><code class="code-inner"><span class="gi">+static void setratio_v(const Arg *arg);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L696" data-line-number="696"></span></td>
<td rel="L696" class="lines-code chroma"><code class="code-inner"><span class="gi">+static void swapclients(const Arg *arg);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L697" data-line-number="697"></span></td>
<td rel="L697" class="lines-code chroma"><code class="code-inner"> static void spawn(const Arg *arg);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L698" data-line-number="698"></span></td>
<td rel="L698" class="lines-code chroma"><code class="code-inner"> static void startdrag(struct wl_listener *listener, void *data);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L699" data-line-number="699"></span></td>
<td rel="L699" class="lines-code chroma"><code class="code-inner"> static void tag(const Arg *arg);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L700" data-line-number="700"></span></td>
<td rel="L700" class="lines-code chroma"><code class="code-inner"><span class="gu">@@ -454,6 +462,7 @@ static struct wlr_xwayland *xwayland;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L701" data-line-number="701"></span></td>
<td rel="L701" class="lines-code chroma"><code class="code-inner">
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L702" data-line-number="702"></span></td>
<td rel="L702" class="lines-code chroma"><code class="code-inner"> /* attempt to encapsulate suck into one file */
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L703" data-line-number="703"></span></td>
<td rel="L703" class="lines-code chroma"><code class="code-inner"> #include &#34;client.h&#34;
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L704" data-line-number="704"></span></td>
<td rel="L704" class="lines-code chroma"><code class="code-inner"><span class="gi">+#include &#34;btrtile.c&#34;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L705" data-line-number="705"></span></td>
<td rel="L705" class="lines-code chroma"><code class="code-inner">
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L706" data-line-number="706"></span></td>
<td rel="L706" class="lines-code chroma"><code class="code-inner"> /* function implementations */
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L707" data-line-number="707"></span></td>
<td rel="L707" class="lines-code chroma"><code class="code-inner"> void
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L708" data-line-number="708"></span></td>
<td rel="L708" class="lines-code chroma"><code class="code-inner"><span class="gu">@@ -624,7 +633,7 @@ buttonpress(struct wl_listener *listener, void *data)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L709" data-line-number="709"></span></td>
<td rel="L709" class="lines-code chroma"><code class="code-inner"> struct wlr_pointer_button_event *event = data;
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L710" data-line-number="710"></span></td>
<td rel="L710" class="lines-code chroma"><code class="code-inner"> struct wlr_keyboard *keyboard;
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L711" data-line-number="711"></span></td>
<td rel="L711" class="lines-code chroma"><code class="code-inner"> uint32_t mods;
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L712" data-line-number="712"></span></td>
<td rel="L712" class="lines-code chroma"><code class="code-inner"><span class="gd">- Client *c;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L713" data-line-number="713"></span></td>
<td rel="L713" class="lines-code chroma"><code class="code-inner"><span class="gi">+ Client *c, *target = NULL;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L714" data-line-number="714"></span></td>
<td rel="L714" class="lines-code chroma"><code class="code-inner"> const Button *b;
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L715" data-line-number="715"></span></td>
<td rel="L715" class="lines-code chroma"><code class="code-inner">
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L716" data-line-number="716"></span></td>
<td rel="L716" class="lines-code chroma"><code class="code-inner"> wlr_idle_notifier_v1_notify_activity(idle_notifier, seat);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L717" data-line-number="717"></span></td>
<td rel="L717" class="lines-code chroma"><code class="code-inner"><span class="gu">@@ -645,7 +654,7 @@ buttonpress(struct wl_listener *listener, void *data)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L718" data-line-number="718"></span></td>
<td rel="L718" class="lines-code chroma"><code class="code-inner"> mods = keyboard ? wlr_keyboard_get_modifiers(keyboard) : 0;
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L719" data-line-number="719"></span></td>
<td rel="L719" class="lines-code chroma"><code class="code-inner"> for (b = buttons; b &lt; END(buttons); b++) {
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L720" data-line-number="720"></span></td>
<td rel="L720" class="lines-code chroma"><code class="code-inner"> if (CLEANMASK(mods) == CLEANMASK(b-&gt;mod) &amp;&amp;
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L721" data-line-number="721"></span></td>
<td rel="L721" class="lines-code chroma"><code class="code-inner"><span class="gd">- event-&gt;button == b-&gt;button &amp;&amp; b-&gt;func) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L722" data-line-number="722"></span></td>
<td rel="L722" class="lines-code chroma"><code class="code-inner"><span class="gi">+ event-&gt;button == b-&gt;button &amp;&amp; b-&gt;func) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L723" data-line-number="723"></span></td>
<td rel="L723" class="lines-code chroma"><code class="code-inner"> b-&gt;func(&amp;b-&gt;arg);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L724" data-line-number="724"></span></td>
<td rel="L724" class="lines-code chroma"><code class="code-inner"> return;
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L725" data-line-number="725"></span></td>
<td rel="L725" class="lines-code chroma"><code class="code-inner"> }
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L726" data-line-number="726"></span></td>
<td rel="L726" class="lines-code chroma"><code class="code-inner"><span class="gu">@@ -655,6 +664,21 @@ buttonpress(struct wl_listener *listener, void *data)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L727" data-line-number="727"></span></td>
<td rel="L727" class="lines-code chroma"><code class="code-inner"> /* If you released any buttons, we exit interactive move/resize mode. */
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L728" data-line-number="728"></span></td>
<td rel="L728" class="lines-code chroma"><code class="code-inner"> /* TODO: should reset to the pointer focus&#39;s current setcursor */
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L729" data-line-number="729"></span></td>
<td rel="L729" class="lines-code chroma"><code class="code-inner"> if (!locked &amp;&amp; cursor_mode != CurNormal &amp;&amp; cursor_mode != CurPressed) {
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L730" data-line-number="730"></span></td>
<td rel="L730" class="lines-code chroma"><code class="code-inner"><span class="gi">+ c = grabc;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L731" data-line-number="731"></span></td>
<td rel="L731" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (c &amp;&amp; c-&gt;was_tiled &amp;&amp; !strcmp(selmon-&gt;ltsymbol, &#34;|w|&#34;)) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L732" data-line-number="732"></span></td>
<td rel="L732" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (cursor_mode == CurMove &amp;&amp; c-&gt;isfloating) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L733" data-line-number="733"></span></td>
<td rel="L733" class="lines-code chroma"><code class="code-inner"><span class="gi">+ target = xytoclient(cursor-&gt;x, cursor-&gt;y);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L734" data-line-number="734"></span></td>
<td rel="L734" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L735" data-line-number="735"></span></td>
<td rel="L735" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (target &amp;&amp; !target-&gt;isfloating &amp;&amp; !target-&gt;isfullscreen)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L736" data-line-number="736"></span></td>
<td rel="L736" class="lines-code chroma"><code class="code-inner"><span class="gi">+ insert_client(selmon, target, c);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L737" data-line-number="737"></span></td>
<td rel="L737" class="lines-code chroma"><code class="code-inner"><span class="gi">+ else
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L738" data-line-number="738"></span></td>
<td rel="L738" class="lines-code chroma"><code class="code-inner"><span class="gi">+ selmon-&gt;root = create_client_node(c);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L739" data-line-number="739"></span></td>
<td rel="L739" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L740" data-line-number="740"></span></td>
<td rel="L740" class="lines-code chroma"><code class="code-inner"><span class="gi">+ setfloating(c, 0);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L741" data-line-number="741"></span></td>
<td rel="L741" class="lines-code chroma"><code class="code-inner"><span class="gi">+ apply_layout(selmon, selmon-&gt;root, selmon-&gt;w, 1);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L742" data-line-number="742"></span></td>
<td rel="L742" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L743" data-line-number="743"></span></td>
<td rel="L743" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L744" data-line-number="744"></span></td>
<td rel="L744" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* Default behaviour */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L745" data-line-number="745"></span></td>
<td rel="L745" class="lines-code chroma"><code class="code-inner"> wlr_cursor_set_xcursor(cursor, cursor_mgr, &#34;default&#34;);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L746" data-line-number="746"></span></td>
<td rel="L746" class="lines-code chroma"><code class="code-inner"> cursor_mode = CurNormal;
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L747" data-line-number="747"></span></td>
<td rel="L747" class="lines-code chroma"><code class="code-inner"> /* Drop the window off on its new monitor */
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L748" data-line-number="748"></span></td>
<td rel="L748" class="lines-code chroma"><code class="code-inner"><span class="gu">@@ -746,6 +770,7 @@ cleanupmon(struct wl_listener *listener, void *data)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L749" data-line-number="749"></span></td>
<td rel="L749" class="lines-code chroma"><code class="code-inner"> wlr_output_layout_remove(output_layout, m-&gt;wlr_output);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L750" data-line-number="750"></span></td>
<td rel="L750" class="lines-code chroma"><code class="code-inner"> wlr_scene_output_destroy(m-&gt;scene_output);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L751" data-line-number="751"></span></td>
<td rel="L751" class="lines-code chroma"><code class="code-inner">
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L752" data-line-number="752"></span></td>
<td rel="L752" class="lines-code chroma"><code class="code-inner"><span class="gi">+ destroy_tree(m);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L753" data-line-number="753"></span></td>
<td rel="L753" class="lines-code chroma"><code class="code-inner"> closemon(m);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L754" data-line-number="754"></span></td>
<td rel="L754" class="lines-code chroma"><code class="code-inner"> wlr_scene_node_destroy(&amp;m-&gt;fullscreen_bg-&gt;node);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L755" data-line-number="755"></span></td>
<td rel="L755" class="lines-code chroma"><code class="code-inner"> free(m);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L756" data-line-number="756"></span></td>
<td rel="L756" class="lines-code chroma"><code class="code-inner"><span class="gu">@@ -1090,6 +1115,7 @@ createmon(struct wl_listener *listener, void *data)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L757" data-line-number="757"></span></td>
<td rel="L757" class="lines-code chroma"><code class="code-inner">
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L758" data-line-number="758"></span></td>
<td rel="L758" class="lines-code chroma"><code class="code-inner"> wl_list_insert(&amp;mons, &amp;m-&gt;link);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L759" data-line-number="759"></span></td>
<td rel="L759" class="lines-code chroma"><code class="code-inner"> printstatus();
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L760" data-line-number="760"></span></td>
<td rel="L760" class="lines-code chroma"><code class="code-inner"><span class="gi">+ init_tree(m);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L761" data-line-number="761"></span></td>
<td rel="L761" class="lines-code chroma"><code class="code-inner">
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L762" data-line-number="762"></span></td>
<td rel="L762" class="lines-code chroma"><code class="code-inner"> /* The xdg-protocol specifies:
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L763" data-line-number="763"></span></td>
<td rel="L763" class="lines-code chroma"><code class="code-inner"> *
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L764" data-line-number="764"></span></td>
<td rel="L764" class="lines-code chroma"><code class="code-inner"><span class="gu">@@ -1329,9 +1355,17 @@ destroynotify(struct wl_listener *listener, void *data)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L765" data-line-number="765"></span></td>
<td rel="L765" class="lines-code chroma"><code class="code-inner"> {
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L766" data-line-number="766"></span></td>
<td rel="L766" class="lines-code chroma"><code class="code-inner"> /* Called when the xdg_toplevel is destroyed. */
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L767" data-line-number="767"></span></td>
<td rel="L767" class="lines-code chroma"><code class="code-inner"> Client *c = wl_container_of(listener, c, destroy);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L768" data-line-number="768"></span></td>
<td rel="L768" class="lines-code chroma"><code class="code-inner"><span class="gi">+ Monitor *mon;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L769" data-line-number="769"></span></td>
<td rel="L769" class="lines-code chroma"><code class="code-inner"> wl_list_remove(&amp;c-&gt;destroy.link);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L770" data-line-number="770"></span></td>
<td rel="L770" class="lines-code chroma"><code class="code-inner"> wl_list_remove(&amp;c-&gt;set_title.link);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L771" data-line-number="771"></span></td>
<td rel="L771" class="lines-code chroma"><code class="code-inner"> wl_list_remove(&amp;c-&gt;fullscreen.link);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L772" data-line-number="772"></span></td>
<td rel="L772" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* We check if the destroyed client was part of any tiled_list, to catch
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L773" data-line-number="773"></span></td>
<td rel="L773" class="lines-code chroma"><code class="code-inner"><span class="gi">+ * client removals even if they would not be currently managed by btrtile */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L774" data-line-number="774"></span></td>
<td rel="L774" class="lines-code chroma"><code class="code-inner"><span class="gi">+ wl_list_for_each(mon, &amp;mons, link) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L775" data-line-number="775"></span></td>
<td rel="L775" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (mon-&gt;root) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L776" data-line-number="776"></span></td>
<td rel="L776" class="lines-code chroma"><code class="code-inner"><span class="gi">+ remove_client(mon, c);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L777" data-line-number="777"></span></td>
<td rel="L777" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L778" data-line-number="778"></span></td>
<td rel="L778" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L779" data-line-number="779"></span></td>
<td rel="L779" class="lines-code chroma"><code class="code-inner"> #ifdef XWAYLAND
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L780" data-line-number="780"></span></td>
<td rel="L780" class="lines-code chroma"><code class="code-inner"> if (c-&gt;type != XDGShell) {
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L781" data-line-number="781"></span></td>
<td rel="L781" class="lines-code chroma"><code class="code-inner"> wl_list_remove(&amp;c-&gt;activate.link);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L782" data-line-number="782"></span></td>
<td rel="L782" class="lines-code chroma"><code class="code-inner"><span class="gu">@@ -1862,7 +1896,8 @@ void
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L783" data-line-number="783"></span></td>
<td rel="L783" class="lines-code chroma"><code class="code-inner"> motionnotify(uint32_t time, struct wlr_input_device *device, double dx, double dy,
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L784" data-line-number="784"></span></td>
<td rel="L784" class="lines-code chroma"><code class="code-inner"> double dx_unaccel, double dy_unaccel)
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L785" data-line-number="785"></span></td>
<td rel="L785" class="lines-code chroma"><code class="code-inner"> {
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L786" data-line-number="786"></span></td>
<td rel="L786" class="lines-code chroma"><code class="code-inner"><span class="gd">- double sx = 0, sy = 0, sx_confined, sy_confined;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L787" data-line-number="787"></span></td>
<td rel="L787" class="lines-code chroma"><code class="code-inner"><span class="gi">+ int tiled = 0;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L788" data-line-number="788"></span></td>
<td rel="L788" class="lines-code chroma"><code class="code-inner"><span class="gi">+ double sx = 0, sy = 0, sx_confined, sy_confined, dx_total, dy_total;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L789" data-line-number="789"></span></td>
<td rel="L789" class="lines-code chroma"><code class="code-inner"> Client *c = NULL, *w = NULL;
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L790" data-line-number="790"></span></td>
<td rel="L790" class="lines-code chroma"><code class="code-inner"> LayerSurface *l = NULL;
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L791" data-line-number="791"></span></td>
<td rel="L791" class="lines-code chroma"><code class="code-inner"> struct wlr_surface *surface = NULL;
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L792" data-line-number="792"></span></td>
<td rel="L792" class="lines-code chroma"><code class="code-inner"><span class="gu">@@ -1916,18 +1951,55 @@ motionnotify(uint32_t time, struct wlr_input_device *device, double dx, double d
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L793" data-line-number="793"></span></td>
<td rel="L793" class="lines-code chroma"><code class="code-inner"> /* Update drag icon&#39;s position */
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L794" data-line-number="794"></span></td>
<td rel="L794" class="lines-code chroma"><code class="code-inner"> wlr_scene_node_set_position(&amp;drag_icon-&gt;node, (int)round(cursor-&gt;x), (int)round(cursor-&gt;y));
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L795" data-line-number="795"></span></td>
<td rel="L795" class="lines-code chroma"><code class="code-inner">
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L796" data-line-number="796"></span></td>
<td rel="L796" class="lines-code chroma"><code class="code-inner"><span class="gd">- /* If we are currently grabbing the mouse, handle and return */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L797" data-line-number="797"></span></td>
<td rel="L797" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* Skip if internal call */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L798" data-line-number="798"></span></td>
<td rel="L798" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (time == 0)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L799" data-line-number="799"></span></td>
<td rel="L799" class="lines-code chroma"><code class="code-inner"><span class="gi">+ goto focus;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L800" data-line-number="800"></span></td>
<td rel="L800" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L801" data-line-number="801"></span></td>
<td rel="L801" class="lines-code chroma"><code class="code-inner"><span class="gi">+ tiled = grabc &amp;&amp; !grabc-&gt;isfloating &amp;&amp; !grabc-&gt;isfullscreen;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L802" data-line-number="802"></span></td>
<td rel="L802" class="lines-code chroma"><code class="code-inner"> if (cursor_mode == CurMove) {
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L803" data-line-number="803"></span></td>
<td rel="L803" class="lines-code chroma"><code class="code-inner"> /* Move the grabbed client to the new position. */
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L804" data-line-number="804"></span></td>
<td rel="L804" class="lines-code chroma"><code class="code-inner"><span class="gd">- resize(grabc, (struct wlr_box){.x = (int)round(cursor-&gt;x) - grabcx, .y = (int)round(cursor-&gt;y) - grabcy,
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L805" data-line-number="805"></span></td>
<td rel="L805" class="lines-code chroma"><code class="code-inner"><span class="gd">- .width = grabc-&gt;geom.width, .height = grabc-&gt;geom.height}, 1);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L806" data-line-number="806"></span></td>
<td rel="L806" class="lines-code chroma"><code class="code-inner"><span class="gd">- return;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L807" data-line-number="807"></span></td>
<td rel="L807" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (grabc &amp;&amp; grabc-&gt;isfloating) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L808" data-line-number="808"></span></td>
<td rel="L808" class="lines-code chroma"><code class="code-inner"><span class="gi">+ resize(grabc, (struct wlr_box){
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L809" data-line-number="809"></span></td>
<td rel="L809" class="lines-code chroma"><code class="code-inner"><span class="gi">+ .x = (int)round(cursor-&gt;x) - grabcx,
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L810" data-line-number="810"></span></td>
<td rel="L810" class="lines-code chroma"><code class="code-inner"><span class="gi">+ .y = (int)round(cursor-&gt;y) - grabcy,
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L811" data-line-number="811"></span></td>
<td rel="L811" class="lines-code chroma"><code class="code-inner"><span class="gi">+ .width = grabc-&gt;geom.width,
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L812" data-line-number="812"></span></td>
<td rel="L812" class="lines-code chroma"><code class="code-inner"><span class="gi">+ .height = grabc-&gt;geom.height
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L813" data-line-number="813"></span></td>
<td rel="L813" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }, 1);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L814" data-line-number="814"></span></td>
<td rel="L814" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L815" data-line-number="815"></span></td>
<td rel="L815" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L816" data-line-number="816"></span></td>
<td rel="L816" class="lines-code chroma"><code class="code-inner"> } else if (cursor_mode == CurResize) {
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L817" data-line-number="817"></span></td>
<td rel="L817" class="lines-code chroma"><code class="code-inner"><span class="gd">- resize(grabc, (struct wlr_box){.x = grabc-&gt;geom.x, .y = grabc-&gt;geom.y,
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L818" data-line-number="818"></span></td>
<td rel="L818" class="lines-code chroma"><code class="code-inner"><span class="gd">- .width = (int)round(cursor-&gt;x) - grabc-&gt;geom.x, .height = (int)round(cursor-&gt;y) - grabc-&gt;geom.y}, 1);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L819" data-line-number="819"></span></td>
<td rel="L819" class="lines-code chroma"><code class="code-inner"><span class="gd">- return;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L820" data-line-number="820"></span></td>
<td rel="L820" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (tiled) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L821" data-line-number="821"></span></td>
<td rel="L821" class="lines-code chroma"><code class="code-inner"><span class="gi">+ dx_total = cursor-&gt;x - resize_last_update_x;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L822" data-line-number="822"></span></td>
<td rel="L822" class="lines-code chroma"><code class="code-inner"><span class="gi">+ dy_total = cursor-&gt;y - resize_last_update_y;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L823" data-line-number="823"></span></td>
<td rel="L823" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L824" data-line-number="824"></span></td>
<td rel="L824" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (time - last_resize_time &gt;= resize_interval_ms) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L825" data-line-number="825"></span></td>
<td rel="L825" class="lines-code chroma"><code class="code-inner"><span class="gi">+ Arg a = {0};
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L826" data-line-number="826"></span></td>
<td rel="L826" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (fabs(dx_total) &gt; fabs(dy_total)) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L827" data-line-number="827"></span></td>
<td rel="L827" class="lines-code chroma"><code class="code-inner"><span class="gi">+ a.f = (float)(dx_total * resize_factor);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L828" data-line-number="828"></span></td>
<td rel="L828" class="lines-code chroma"><code class="code-inner"><span class="gi">+ setratio_h(&amp;a);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L829" data-line-number="829"></span></td>
<td rel="L829" class="lines-code chroma"><code class="code-inner"><span class="gi">+ } else {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L830" data-line-number="830"></span></td>
<td rel="L830" class="lines-code chroma"><code class="code-inner"><span class="gi">+ a.f = (float)(dy_total * resize_factor);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L831" data-line-number="831"></span></td>
<td rel="L831" class="lines-code chroma"><code class="code-inner"><span class="gi">+ setratio_v(&amp;a);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L832" data-line-number="832"></span></td>
<td rel="L832" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L833" data-line-number="833"></span></td>
<td rel="L833" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L834" data-line-number="834"></span></td>
<td rel="L834" class="lines-code chroma"><code class="code-inner"><span class="gi">+ last_resize_time = time;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L835" data-line-number="835"></span></td>
<td rel="L835" class="lines-code chroma"><code class="code-inner"><span class="gi">+ resize_last_update_x = cursor-&gt;x;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L836" data-line-number="836"></span></td>
<td rel="L836" class="lines-code chroma"><code class="code-inner"><span class="gi">+ resize_last_update_y = cursor-&gt;y;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L837" data-line-number="837"></span></td>
<td rel="L837" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L838" data-line-number="838"></span></td>
<td rel="L838" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L839" data-line-number="839"></span></td>
<td rel="L839" class="lines-code chroma"><code class="code-inner"><span class="gi">+ } else if (grabc &amp;&amp; grabc-&gt;isfloating) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L840" data-line-number="840"></span></td>
<td rel="L840" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* Floating resize as original */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L841" data-line-number="841"></span></td>
<td rel="L841" class="lines-code chroma"><code class="code-inner"><span class="gi">+ resize(grabc, (struct wlr_box){
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L842" data-line-number="842"></span></td>
<td rel="L842" class="lines-code chroma"><code class="code-inner"><span class="gi">+ .x = grabc-&gt;geom.x,
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L843" data-line-number="843"></span></td>
<td rel="L843" class="lines-code chroma"><code class="code-inner"><span class="gi">+ .y = grabc-&gt;geom.y,
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L844" data-line-number="844"></span></td>
<td rel="L844" class="lines-code chroma"><code class="code-inner"><span class="gi">+ .width = (int)round(cursor-&gt;x) - grabc-&gt;geom.x,
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L845" data-line-number="845"></span></td>
<td rel="L845" class="lines-code chroma"><code class="code-inner"><span class="gi">+ .height = (int)round(cursor-&gt;y) - grabc-&gt;geom.y
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L846" data-line-number="846"></span></td>
<td rel="L846" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }, 1);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L847" data-line-number="847"></span></td>
<td rel="L847" class="lines-code chroma"><code class="code-inner"><span class="gi">+ return;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L848" data-line-number="848"></span></td>
<td rel="L848" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L849" data-line-number="849"></span></td>
<td rel="L849" class="lines-code chroma"><code class="code-inner"> }
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L850" data-line-number="850"></span></td>
<td rel="L850" class="lines-code chroma"><code class="code-inner">
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L851" data-line-number="851"></span></td>
<td rel="L851" class="lines-code chroma"><code class="code-inner"><span class="gi">+focus:
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L852" data-line-number="852"></span></td>
<td rel="L852" class="lines-code chroma"><code class="code-inner"> /* If there&#39;s no client surface under the cursor, set the cursor image to a
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L853" data-line-number="853"></span></td>
<td rel="L853" class="lines-code chroma"><code class="code-inner"> * default. This is what makes the cursor image appear when you move it
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L854" data-line-number="854"></span></td>
<td rel="L854" class="lines-code chroma"><code class="code-inner"> * off of a client or over its border. */
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L855" data-line-number="855"></span></td>
<td rel="L855" class="lines-code chroma"><code class="code-inner"><span class="gu">@@ -1961,22 +2033,40 @@ moveresize(const Arg *arg)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L856" data-line-number="856"></span></td>
<td rel="L856" class="lines-code chroma"><code class="code-inner"> if (!grabc || client_is_unmanaged(grabc) || grabc-&gt;isfullscreen)
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L857" data-line-number="857"></span></td>
<td rel="L857" class="lines-code chroma"><code class="code-inner"> return;
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L858" data-line-number="858"></span></td>
<td rel="L858" class="lines-code chroma"><code class="code-inner">
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L859" data-line-number="859"></span></td>
<td rel="L859" class="lines-code chroma"><code class="code-inner"><span class="gd">- /* Float the window and tell motionnotify to grab it */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L860" data-line-number="860"></span></td>
<td rel="L860" class="lines-code chroma"><code class="code-inner"><span class="gd">- setfloating(grabc, 1);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L861" data-line-number="861"></span></td>
<td rel="L861" class="lines-code chroma"><code class="code-inner"><span class="gd">- switch (cursor_mode = arg-&gt;ui) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L862" data-line-number="862"></span></td>
<td rel="L862" class="lines-code chroma"><code class="code-inner"><span class="gd">- case CurMove:
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L863" data-line-number="863"></span></td>
<td rel="L863" class="lines-code chroma"><code class="code-inner"><span class="gd">- grabcx = (int)round(cursor-&gt;x) - grabc-&gt;geom.x;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L864" data-line-number="864"></span></td>
<td rel="L864" class="lines-code chroma"><code class="code-inner"><span class="gd">- grabcy = (int)round(cursor-&gt;y) - grabc-&gt;geom.y;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L865" data-line-number="865"></span></td>
<td rel="L865" class="lines-code chroma"><code class="code-inner"><span class="gd">- wlr_cursor_set_xcursor(cursor, cursor_mgr, &#34;all-scroll&#34;);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L866" data-line-number="866"></span></td>
<td rel="L866" class="lines-code chroma"><code class="code-inner"><span class="gd">- break;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L867" data-line-number="867"></span></td>
<td rel="L867" class="lines-code chroma"><code class="code-inner"><span class="gd">- case CurResize:
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L868" data-line-number="868"></span></td>
<td rel="L868" class="lines-code chroma"><code class="code-inner"><span class="gd">- /* Doesn&#39;t work for X11 output - the next absolute motion event
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L869" data-line-number="869"></span></td>
<td rel="L869" class="lines-code chroma"><code class="code-inner"><span class="gd">- * returns the cursor to where it started */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L870" data-line-number="870"></span></td>
<td rel="L870" class="lines-code chroma"><code class="code-inner"><span class="gd">- wlr_cursor_warp_closest(cursor, NULL,
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L871" data-line-number="871"></span></td>
<td rel="L871" class="lines-code chroma"><code class="code-inner"><span class="gd">- grabc-&gt;geom.x + grabc-&gt;geom.width,
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L872" data-line-number="872"></span></td>
<td rel="L872" class="lines-code chroma"><code class="code-inner"><span class="gd">- grabc-&gt;geom.y + grabc-&gt;geom.height);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L873" data-line-number="873"></span></td>
<td rel="L873" class="lines-code chroma"><code class="code-inner"><span class="gd">- wlr_cursor_set_xcursor(cursor, cursor_mgr, &#34;se-resize&#34;);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L874" data-line-number="874"></span></td>
<td rel="L874" class="lines-code chroma"><code class="code-inner"><span class="gd">- break;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L875" data-line-number="875"></span></td>
<td rel="L875" class="lines-code chroma"><code class="code-inner"><span class="gi">+ cursor_mode = arg-&gt;ui;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L876" data-line-number="876"></span></td>
<td rel="L876" class="lines-code chroma"><code class="code-inner"><span class="gi">+ grabc-&gt;was_tiled = (!grabc-&gt;isfloating &amp;&amp; !grabc-&gt;isfullscreen);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L877" data-line-number="877"></span></td>
<td rel="L877" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L878" data-line-number="878"></span></td>
<td rel="L878" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (grabc-&gt;was_tiled) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L879" data-line-number="879"></span></td>
<td rel="L879" class="lines-code chroma"><code class="code-inner"><span class="gi">+ switch (cursor_mode) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L880" data-line-number="880"></span></td>
<td rel="L880" class="lines-code chroma"><code class="code-inner"><span class="gi">+ case CurMove:
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L881" data-line-number="881"></span></td>
<td rel="L881" class="lines-code chroma"><code class="code-inner"><span class="gi">+ setfloating(grabc, 1);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L882" data-line-number="882"></span></td>
<td rel="L882" class="lines-code chroma"><code class="code-inner"><span class="gi">+ grabcx = (int)round(cursor-&gt;x) - grabc-&gt;geom.x;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L883" data-line-number="883"></span></td>
<td rel="L883" class="lines-code chroma"><code class="code-inner"><span class="gi">+ grabcy = (int)round(cursor-&gt;y) - grabc-&gt;geom.y;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L884" data-line-number="884"></span></td>
<td rel="L884" class="lines-code chroma"><code class="code-inner"><span class="gi">+ wlr_cursor_set_xcursor(cursor, cursor_mgr, &#34;fleur&#34;);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L885" data-line-number="885"></span></td>
<td rel="L885" class="lines-code chroma"><code class="code-inner"><span class="gi">+ break;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L886" data-line-number="886"></span></td>
<td rel="L886" class="lines-code chroma"><code class="code-inner"><span class="gi">+ case CurResize:
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L887" data-line-number="887"></span></td>
<td rel="L887" class="lines-code chroma"><code class="code-inner"><span class="gi">+ wlr_cursor_set_xcursor(cursor, cursor_mgr, &#34;se-resize&#34;);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L888" data-line-number="888"></span></td>
<td rel="L888" class="lines-code chroma"><code class="code-inner"><span class="gi">+ resize_last_update_x = cursor-&gt;x;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L889" data-line-number="889"></span></td>
<td rel="L889" class="lines-code chroma"><code class="code-inner"><span class="gi">+ resize_last_update_y = cursor-&gt;y;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L890" data-line-number="890"></span></td>
<td rel="L890" class="lines-code chroma"><code class="code-inner"><span class="gi">+ break;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L891" data-line-number="891"></span></td>
<td rel="L891" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L892" data-line-number="892"></span></td>
<td rel="L892" class="lines-code chroma"><code class="code-inner"><span class="gi">+ } else {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L893" data-line-number="893"></span></td>
<td rel="L893" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* Default floating logic */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L894" data-line-number="894"></span></td>
<td rel="L894" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* Float the window and tell motionnotify to grab it */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L895" data-line-number="895"></span></td>
<td rel="L895" class="lines-code chroma"><code class="code-inner"><span class="gi">+ setfloating(grabc, 1);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L896" data-line-number="896"></span></td>
<td rel="L896" class="lines-code chroma"><code class="code-inner"><span class="gi">+ switch (cursor_mode) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L897" data-line-number="897"></span></td>
<td rel="L897" class="lines-code chroma"><code class="code-inner"><span class="gi">+ case CurMove:
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L898" data-line-number="898"></span></td>
<td rel="L898" class="lines-code chroma"><code class="code-inner"><span class="gi">+ grabcx = (int)round(cursor-&gt;x) - grabc-&gt;geom.x;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L899" data-line-number="899"></span></td>
<td rel="L899" class="lines-code chroma"><code class="code-inner"><span class="gi">+ grabcy = (int)round(cursor-&gt;y) - grabc-&gt;geom.y;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L900" data-line-number="900"></span></td>
<td rel="L900" class="lines-code chroma"><code class="code-inner"><span class="gi">+ wlr_cursor_set_xcursor(cursor, cursor_mgr, &#34;fleur&#34;);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L901" data-line-number="901"></span></td>
<td rel="L901" class="lines-code chroma"><code class="code-inner"><span class="gi">+ break;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L902" data-line-number="902"></span></td>
<td rel="L902" class="lines-code chroma"><code class="code-inner"><span class="gi">+ case CurResize:
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L903" data-line-number="903"></span></td>
<td rel="L903" class="lines-code chroma"><code class="code-inner"><span class="gi">+ wlr_cursor_warp_closest(cursor, NULL,
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L904" data-line-number="904"></span></td>
<td rel="L904" class="lines-code chroma"><code class="code-inner"><span class="gi">+ grabc-&gt;geom.x + grabc-&gt;geom.width,
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L905" data-line-number="905"></span></td>
<td rel="L905" class="lines-code chroma"><code class="code-inner"><span class="gi">+ grabc-&gt;geom.y + grabc-&gt;geom.height);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L906" data-line-number="906"></span></td>
<td rel="L906" class="lines-code chroma"><code class="code-inner"><span class="gi">+ wlr_cursor_set_xcursor(cursor, cursor_mgr, &#34;se-resize&#34;);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L907" data-line-number="907"></span></td>
<td rel="L907" class="lines-code chroma"><code class="code-inner"><span class="gi">+ break;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L908" data-line-number="908"></span></td>
<td rel="L908" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L909" data-line-number="909"></span></td>
<td rel="L909" class="lines-code chroma"><code class="code-inner"> }
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L910" data-line-number="910"></span></td>
<td rel="L910" class="lines-code chroma"><code class="code-inner"> }
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L911" data-line-number="911"></span></td>
<td rel="L911" class="lines-code chroma"><code class="code-inner">
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L912" data-line-number="912"></span></td>
<td rel="L912" class="lines-code chroma"><code class="code-inner"><span class="gu">@@ -2826,6 +2916,14 @@ unmapnotify(struct wl_listener *listener, void *data)
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L913" data-line-number="913"></span></td>
<td rel="L913" class="lines-code chroma"><code class="code-inner"> focusclient(focustop(selmon), 1);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L914" data-line-number="914"></span></td>
<td rel="L914" class="lines-code chroma"><code class="code-inner"> }
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L915" data-line-number="915"></span></td>
<td rel="L915" class="lines-code chroma"><code class="code-inner"> } else {
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L916" data-line-number="916"></span></td>
<td rel="L916" class="lines-code chroma"><code class="code-inner"><span class="gi">+ /* btrtile remove clients for each monitor */
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L917" data-line-number="917"></span></td>
<td rel="L917" class="lines-code chroma"><code class="code-inner"><span class="gi">+ Monitor *mon;
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L918" data-line-number="918"></span></td>
<td rel="L918" class="lines-code chroma"><code class="code-inner"><span class="gi">+ wl_list_for_each(mon, &amp;mons, link) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L919" data-line-number="919"></span></td>
<td rel="L919" class="lines-code chroma"><code class="code-inner"><span class="gi">+ if (mon-&gt;root) {
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L920" data-line-number="920"></span></td>
<td rel="L920" class="lines-code chroma"><code class="code-inner"><span class="gi">+ remove_client(mon, c);
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L921" data-line-number="921"></span></td>
<td rel="L921" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L922" data-line-number="922"></span></td>
<td rel="L922" class="lines-code chroma"><code class="code-inner"><span class="gi">+ }
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L923" data-line-number="923"></span></td>
<td rel="L923" class="lines-code chroma"><code class="code-inner"><span class="gi">+
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L924" data-line-number="924"></span></td>
<td rel="L924" class="lines-code chroma"><code class="code-inner"> wl_list_remove(&amp;c-&gt;link);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L925" data-line-number="925"></span></td>
<td rel="L925" class="lines-code chroma"><code class="code-inner"> setmon(c, NULL, 0);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L926" data-line-number="926"></span></td>
<td rel="L926" class="lines-code chroma"><code class="code-inner"> wl_list_remove(&amp;c-&gt;flink);
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L927" data-line-number="927"></span></td>
<td rel="L927" class="lines-code chroma"><code class="code-inner"><span class="gd">--
</span></code></td>
</tr>
<tr>
<td class="lines-num"><span id="L928" data-line-number="928"></span></td>
<td rel="L928" class="lines-code chroma"><code class="code-inner">2.53.0
</code></td>
</tr>
<tr>
<td class="lines-num"><span id="L929" data-line-number="929"></span></td>
<td rel="L929" class="lines-code chroma"><code class="code-inner">
</code></td>
</tr>
</tbody>
</table>
<div class="code-line-menu tippy-target">
<a class="item ref-in-new-issue" role="menuitem" data-url-issue-new="/dwl/dwl-patches/issues/new" data-url-param-body-link="/dwl/dwl-patches/src/commit/493dc4c408c0695b3dc222a90dd5a39218fc74be/patches/btrtile/btrtile-v0.8-gaps.patch" rel="nofollow noindex">Reference in a new issue</a>
<a class="item view_git_blame" role="menuitem" href="/dwl/dwl-patches/blame/commit/493dc4c408c0695b3dc222a90dd5a39218fc74be/patches/btrtile/btrtile-v0.8-gaps.patch">View git blame</a>
<a class="item copy-line-permalink" role="menuitem" data-url="/dwl/dwl-patches/src/commit/493dc4c408c0695b3dc222a90dd5a39218fc74be/patches/btrtile/btrtile-v0.8-gaps.patch">Copy permalink</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="page-footer" role="group" aria-label="Footer">
<div class="grid" aria-label="Links">
<div class="not-mobile">
<div class="branding" aria-hidden="true">
<img class="light-logo" loading="lazy" src="https://design.codeberg.org/logo-kit/icon.svg" alt="Logo">
<img class="dark-logo" loading="lazy" src="https://design.codeberg.org/logo-kit/icon_inverted.svg" alt="Logo">
</div>
<div class="powered-by">
<div class="title">Powered by</div>
<a target="_blank" rel="noopener noreferrer" href="https://forgejo.org" aria-label="Forgejo">
<div class="branding" aria-hidden="true">
<img class="light-logo" loading="lazy" src="/assets/img/svg/forgejo-wordmark.svg" alt="Forgejo logo">
<img class="dark-logo" loading="lazy" src="/assets/img/svg/forgejo-wordmark-mono.svg" alt="Forgejo logo">
</div>
</a>
with <a class="tw-mt-0" href="/Codeberg-Infrastructure/forgejo" target="_blank">modifications</a>
</div>
</div>
<div>
<b id="codeberg-codeberg">Codeberg</b>
<ul>
<li><a href="https://blog.codeberg.org" target="_blank">Blog</a></li>
<li><a href="https://docs.codeberg.org" target="_blank">Documentation</a></li>
<li><a href="/Codeberg/Community/issues">Community Issues</a></li>
<li><a href="/Codeberg/Contributing">Contributing</a>
<li><a href="https://docs.codeberg.org/contact/#abuse" target="_blank">Report Abuse</a>
</ul>
</div>
<div>
<b id="codeberg-association">Association</b>
<ul>
<li><a href="https://docs.codeberg.org/getting-started/what-is-codeberg/#what-is-codeberg-e.v.%3F" target="_blank">Who are we?</a></li>
<li><a href="/codeberg/org/src/en/bylaws.md" target="_blank">Bylaws / Satzung</a></li>
<li><a href="https://docs.codeberg.org/improving-codeberg/donate/" target="_blank">Donate</a></li>
<li><a href="https://join.codeberg.org" target="_blank">Join / Support</a></li>
<li><a href="https://docs.codeberg.org/contact/" target="_blank">Contact</a></li>
</ul>
</div>
<div>
<b id="codeberg-service">Services</b>
<ul>
<li><a href="https://codeberg.page" target="_blank">Codeberg Pages</a></li>
<li><a href="https://translate.codeberg.org" target="_blank">Codeberg Translate</a></li>
<li><a href="https://docs.codeberg.org/ci/#using-codeberg's-instance-of-woodpecker-ci" target="_blank">Woodpecker CI</a></li>
<li><a href="/api/swagger">Forgejo API</a></li>
<li><a href="https://status.codeberg.eu" target="_blank">Status Page</a></li>
</ul>
</div>
<div>
<b id="codeberg-legal">Legal</b>
<ul>
<li><a href="/codeberg/org/src/Imprint.md" target="_blank">Imprint / Impressum</a></li>
<li><a href="/codeberg/org/src/PrivacyPolicy.md" target="_blank">Privacy Policy</a></li>
<li><a href="/assets/licenses.txt">Licenses</a></li>
<li><a href="/codeberg/org/src/TermsOfUse.md">Terms of Use</a></li>
</ul>
</div>
</div>
<div class="footer-bottom-grid">
<div class="footer-social">
<a href="https://social.anoxinon.de/@Codeberg" target="_blank" rel="noopener noreferrer">Mastodon</a> |
<a href="matrix:r/codeberg-space:matrix.org?action=join" target="_blank" rel="noopener noreferrer">Matrix Space</a>
<a href="https://matrix.to/#/#codeberg-space:matrix.org" target="_blank" rel="noopener noreferrer">(Web link)</a>
<button class="btn interact-fg tw-p-2 tw-inline" data-clipboard-text="#codeberg-space:matrix.org" data-tooltip-content="Copy to clipboard"><svg viewBox="0 0 16 16" class="svg octicon-copy" aria-hidden="true" width="14" height="14"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"/><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"/></svg></button>
<p class="only-mobile">
<a target="_blank" rel="noopener noreferrer" href="https://forgejo.org">Powered by Forgejo</a>
</p>
</div>
<div class="footer-language-switch">
<div class="ui language bottom floating slide up dropdown link item button">
<svg viewBox="0 0 16 16" class="svg octicon-globe" aria-hidden="true" width="16" height="16"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0M5.78 8.75a9.64 9.64 0 0 0 1.363 4.177q.383.64.857 1.215c.245-.296.551-.705.857-1.215A9.64 9.64 0 0 0 10.22 8.75Zm4.44-1.5a9.64 9.64 0 0 0-1.363-4.177c-.307-.51-.612-.919-.857-1.215a10 10 0 0 0-.857 1.215A9.64 9.64 0 0 0 5.78 7.25Zm-5.944 1.5H1.543a6.51 6.51 0 0 0 4.666 5.5q-.184-.271-.352-.552c-.715-1.192-1.437-2.874-1.581-4.948m-2.733-1.5h2.733c.144-2.074.866-3.756 1.58-4.948q.18-.295.353-.552a6.51 6.51 0 0 0-4.666 5.5m10.181 1.5c-.144 2.074-.866 3.756-1.58 4.948q-.18.296-.353.552a6.51 6.51 0 0 0 4.666-5.5Zm2.733-1.5a6.51 6.51 0 0 0-4.666-5.5q.184.272.353.552c.714 1.192 1.436 2.874 1.58 4.948Z"/></svg>
<div class="text">English</div>
<div class="menu language-menu">
<a lang="id-ID" data-url="/?lang=id-ID" class="item ">Bahasa Indonesia</a>
<a lang="da" data-url="/?lang=da" class="item ">Dansk</a>
<a lang="de-DE" data-url="/?lang=de-DE" class="item ">Deutsch</a>
<a lang="en-US" data-url="/?lang=en-US" class="item active selected">English</a>
<a lang="es-ES" data-url="/?lang=es-ES" class="item ">Español</a>
<a lang="eo" data-url="/?lang=eo" class="item ">Esperanto</a>
<a lang="fil" data-url="/?lang=fil" class="item ">Filipino</a>
<a lang="fr-FR" data-url="/?lang=fr-FR" class="item ">Français</a>
<a lang="it-IT" data-url="/?lang=it-IT" class="item ">Italiano</a>
<a lang="lv-LV" data-url="/?lang=lv-LV" class="item ">Latviešu</a>
<a lang="hu-HU" data-url="/?lang=hu-HU" class="item ">Magyar nyelv</a>
<a lang="nl-NL" data-url="/?lang=nl-NL" class="item ">Nederlands</a>
<a lang="nds" data-url="/?lang=nds" class="item ">Plattdüütsch</a>
<a lang="pl-PL" data-url="/?lang=pl-PL" class="item ">Polski</a>
<a lang="pt-PT" data-url="/?lang=pt-PT" class="item ">Português de Portugal</a>
<a lang="pt-BR" data-url="/?lang=pt-BR" class="item ">Português do Brasil</a>
<a lang="sl" data-url="/?lang=sl" class="item ">Slovenščina</a>
<a lang="fi-FI" data-url="/?lang=fi-FI" class="item ">Suomi</a>
<a lang="sv-SE" data-url="/?lang=sv-SE" class="item ">Svenska</a>
<a lang="tr-TR" data-url="/?lang=tr-TR" class="item ">Türkçe</a>
<a lang="cs-CZ" data-url="/?lang=cs-CZ" class="item ">Čeština</a>
<a lang="el-GR" data-url="/?lang=el-GR" class="item ">Ελληνικά</a>
<a lang="bg" data-url="/?lang=bg" class="item ">Български</a>
<a lang="ru-RU" data-url="/?lang=ru-RU" class="item ">Русский</a>
<a lang="uk-UA" data-url="/?lang=uk-UA" class="item ">Українська</a>
<a lang="fa-IR" data-url="/?lang=fa-IR" class="item ">فارسی</a>
<a lang="ja-JP" data-url="/?lang=ja-JP" class="item ">日本語</a>
<a lang="zh-CN" data-url="/?lang=zh-CN" class="item ">简体中文</a>
<a lang="zh-TW" data-url="/?lang=zh-TW" class="item ">繁體中文(台灣)</a>
<a lang="zh-HK" data-url="/?lang=zh-HK" class="item ">繁體中文(香港)</a>
<a lang="ko-KR" data-url="/?lang=ko-KR" class="item ">한국어</a>
</div>
</div>
</div>
</div>
<div class="tw-hidden">
Page: 218ms<br>
Template: 129ms
</div>
<div class="symbol-of-tolerance" role="img"></div>
</footer>
<script src="/assets/js/index.js?v=15.0.0-127-f54e36b6~gitea-1.22.0" onerror="alert('Failed to load asset files from {path}. Please make sure the asset files can be accessed.'.replace('{path}', this.src))"></script>
</body>
</html>