]> git.mdlowis.com Git - proto/labwc.git/commitdiff
view: add view_get_string_prop()
authorJohan Malm <jgm323@gmail.com>
Mon, 18 Oct 2021 19:01:10 +0000 (20:01 +0100)
committerJohan Malm <jgm323@gmail.com>
Mon, 18 Oct 2021 19:01:10 +0000 (20:01 +0100)
include/labwc.h
src/foreign.c
src/osd.c
src/ssd.c
src/view.c

index cc04b6b747cb53282c79699d36a68ad6e5a767c4..ab8ad091c37aa00b83fe548ddf461f86a1ba6a3f 100644 (file)
@@ -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);
 
index 0a0824aa48c67ab5242268518e9e6bbe6396eb3f..6a9be61daca62f335b6c0f61202b6fc52f504aef 100644 (file)
@@ -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,
index 70d4963997ecdbad9efef6b9100525c4d30dfea3..8b3ea94c6d7929653c643cf5bc5168cf3e07106a 100644 (file)
--- a/src/osd.c
+++ b/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);
index 1380c237f0483c460ccefb6e87ce79f036da6216..4928175ac03be6c257ffa3088ab7147ac8009bb8 100644 (file)
--- a/src/ssd.c
+++ b/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);
index b968ee30699d982d1858f209cfac82d39d5316b3..f70e1bac4aa9561089a3c990c4f296b9882fc615 100644 (file)
@@ -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;
        }