Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

output: Add option to preview the contents of the current cycle_view #217

Merged
merged 1 commit into from Jan 23, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
@@ -31,6 +31,10 @@ Configuration must be wrapped in a <labwc_config> root-node.
*<core><adaptiveSync>* [yes|no]
Enable adaptive sync. Default is no.

*<core><cycleViewPreview>* [yes|no]
Preview the contents of the selected window when cycling between windows.
Default is no.

# FOCUS

*<focus><followMouse>* [yes|no]
@@ -11,6 +11,7 @@
<decoration>server</decoration>
<gap>0</gap>
<adaptiveSync>no</adaptiveSync>
<cycleViewPreview>no</cycleViewPreview>
</core>

<!--
@@ -48,6 +48,9 @@ struct rcxml {
/* window snapping */
int snap_edge_range;
bool snap_top_maximize;

/* cycle view (alt+tab) */
bool cycle_preview_contents;
};

extern struct rcxml rc;
@@ -378,6 +378,8 @@ entry(xmlNode *node, char *nodename, char *content)
rc.snap_edge_range = atoi(content);
} else if (!strcasecmp(nodename, "topMaximize.snapping")) {
rc.snap_top_maximize = get_bool(content);
} else if (!strcasecmp(nodename, "cycleViewPreview.core")) {
rc.cycle_preview_contents = get_bool(content);
}
}

@@ -476,6 +478,7 @@ rcxml_init()
rc.screen_edge_strength = 20;
rc.snap_edge_range = 1;
rc.snap_top_maximize = true;
rc.cycle_preview_contents = false;
}

static struct {
@@ -802,6 +802,16 @@ output_render(struct output *output, pixman_region32_t *damage)

/* 'alt-tab' border */
if (output->server->cycle_view) {
/* If the 'cycle_preview_contents' option is set in
* rc.xml, render the contents of the cycle_view over
* all other views (except for the OSD)
*/
if (rc.cycle_preview_contents) {
render_deco(output->server->cycle_view, output, damage);
render_view_toplevels(output->server->cycle_view, output, damage);
render_view_popups(output->server->cycle_view, output, damage);
}

render_cycle_box(output, damage, output->server->cycle_view);
render_osd(output, damage, output->server);
}