mirror of
https://github.com/labwc/labwc.git
synced 2025-10-29 05:40:24 -04:00
view: add view_get_string_prop()
This commit is contained in:
parent
40bd8f56d4
commit
806fdb08bd
5 changed files with 26 additions and 15 deletions
|
|
@ -362,6 +362,7 @@ void view_for_each_popup_surface(struct view *view,
|
|||
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);
|
||||
|
||||
|
|
|
|||
|
|
@ -35,14 +35,14 @@ foreign_toplevel_handle_create(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,
|
||||
|
|
|
|||
12
src/osd.c
12
src/osd.c
|
|
@ -29,11 +29,11 @@ is_title_different(struct view *view)
|
|||
{
|
||||
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
|
||||
}
|
||||
|
|
@ -43,7 +43,7 @@ is_title_different(struct view *view)
|
|||
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;
|
||||
|
|
@ -156,14 +156,14 @@ osd_update(struct server *server)
|
|||
#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);
|
||||
|
|
|
|||
12
src/ssd.c
12
src/ssd.c
|
|
@ -151,7 +151,8 @@ center_vertically(struct wlr_box *box, struct wlr_texture *texture)
|
|||
}
|
||||
|
||||
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;
|
||||
|
|
@ -160,7 +161,8 @@ center_horizontally(struct view *view, struct wlr_box *box, struct wlr_texture *
|
|||
}
|
||||
|
||||
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;
|
||||
|
|
@ -193,7 +195,7 @@ ssd_visible_box(struct view *view, enum ssd_part_type type)
|
|||
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) {
|
||||
|
|
@ -313,11 +315,11 @@ ssd_update_title(struct view *view)
|
|||
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);
|
||||
|
|
|
|||
12
src/view.c
12
src/view.c
|
|
@ -398,10 +398,18 @@ view_snap_to_edge(struct view *view, const char *direction)
|
|||
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;
|
||||
}
|
||||
|
|
@ -412,7 +420,7 @@ view_update_title(struct view *view)
|
|||
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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue