wlr_surface_iterator_func_t iterator, void *data);
void view_move_to_edge(struct view *view, const char *direction);
void view_snap_to_edge(struct view *view, const char *direction);
+const char *view_get_string_prop(struct view *view, const char *prop);
void view_update_title(struct view *view);
void view_update_app_id(struct view *view);
view->server->foreign_toplevel_manager);
if (!view->toplevel_handle) {
wlr_log(WLR_ERROR, "cannot create foreign toplevel handle for (%s)",
- view->impl->get_string_prop(view, "title"));
+ view_get_string_prop(view, "title"));
return;
}
struct wlr_output *wlr_output = view_wlr_output(view);
if (!wlr_output) {
wlr_log(WLR_ERROR, "no wlr_output for (%s)",
- view->impl->get_string_prop(view, "title"));
+ view_get_string_prop(view, "title"));
return;
}
wlr_foreign_toplevel_handle_v1_output_enter(view->toplevel_handle,
{
switch (view->type) {
case LAB_XDG_SHELL_VIEW:
- return strcmp(view->impl->get_string_prop(view, "title"),
- view->impl->get_string_prop(view, "app_id"));
+ return strcmp(view_get_string_prop(view, "title"),
+ view_get_string_prop(view, "app_id"));
#if HAVE_XWAYLAND
case LAB_XWAYLAND_VIEW:
- return strcmp(view->impl->get_string_prop(view, "title"),
+ return strcmp(view_get_string_prop(view, "title"),
view->xwayland_surface->class);
#endif
}
static const char *
get_formatted_app_id(struct view *view)
{
- char *s = (char *)view->impl->get_string_prop(view, "app_id");
+ char *s = (char *)view_get_string_prop(view, "app_id");
/* remove the first two nodes of 'org.' strings */
if (!strncmp(s, "org.", 4)) {
char *p = s + 4;
#if HAVE_XWAYLAND
case LAB_XWAYLAND_VIEW:
buf_add(&buf, "[xwayland]\t");
- buf_add(&buf, view->impl->get_string_prop(view, "class"));
+ buf_add(&buf, view_get_string_prop(view, "class"));
buf_add(&buf, "\t");
break;
#endif
}
if (is_title_different(view)) {
- buf_add(&buf, view->impl->get_string_prop(view, "title"));
+ buf_add(&buf, view_get_string_prop(view, "title"));
}
pango_layout_set_text(layout, buf.buf, -1);
}
static void
-center_horizontally(struct view *view, struct wlr_box *box, struct wlr_texture *texture)
+center_horizontally(struct view *view, struct wlr_box *box,
+ struct wlr_texture *texture)
{
if (!texture) {
return;
}
static void
-justify_right(struct view *view, struct wlr_box *box, struct wlr_texture *texture)
+justify_right(struct view *view, struct wlr_box *box,
+ struct wlr_texture *texture)
{
if (!texture) {
return;
center_vertically(&box, view->title.active);
if (theme->window_label_text_justify == LAB_JUSTIFY_CENTER) {
center_horizontally(view, &box, view->title.active);
- } else if (theme->window_label_text_justify == LAB_JUSTIFY_RIGHT) {
+ } else if (theme->window_label_text_justify == LAB_JUSTIFY_RIGHT) {
justify_right(view, &box, view->title.active);
}
if (view->title.active) {
int max_width = part->box.width > 0 ? part->box.width : 1000;
font_texture_create(view->server, &view->title.active, max_width,
- view->impl->get_string_prop(view, "title"),
+ view_get_string_prop(view, "title"),
&font, theme->window_active_label_text_color);
font_texture_create(view->server, &view->title.inactive, max_width,
- view->impl->get_string_prop(view, "title"),
+ view_get_string_prop(view, "title"),
&font, theme->window_inactive_label_text_color);
part->box = ssd_visible_box(view, part->type);
view_move_resize(view, dst);
}
+const char *
+view_get_string_prop(struct view *view, const char *prop)
+{
+ if (view->impl->get_string_prop) {
+ return view->impl->get_string_prop(view, "title");
+ }
+}
+
void
view_update_title(struct view *view)
{
- const char *title = view->impl->get_string_prop(view, "title");
+ const char *title = view_get_string_prop(view, "title");
if (!view->toplevel_handle || !title) {
return;
}
void
view_update_app_id(struct view *view)
{
- const char *app_id = view->impl->get_string_prop(view, "app_id");
+ const char *app_id = view_get_string_prop(view, "app_id");
if (!view->toplevel_handle || !app_id) {
return;
}