mirror of
https://github.com/labwc/labwc.git
synced 2025-11-05 13:29:58 -05:00
view: call wlr_foreign_toplevel_handle_v1_set_app_id() on map
Fix issue #74 Add view-impl.c with view_impl_map() containing common code for xdg-shell and xwayland-shell.
This commit is contained in:
parent
4d44659c08
commit
e140682528
5 changed files with 31 additions and 6 deletions
|
|
@ -17,6 +17,7 @@ labwc_sources = files(
|
|||
'theme.c',
|
||||
'view.c',
|
||||
'view-child.c',
|
||||
'view-impl.c',
|
||||
'xdg.c',
|
||||
'xdg-deco.c',
|
||||
'xdg-popup.c',
|
||||
|
|
|
|||
22
src/view-impl.c
Normal file
22
src/view-impl.c
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/* view-impl.c: common code for shell view->impl functions */
|
||||
#include <stdio.h>
|
||||
#include <strings.h>
|
||||
#include "labwc.h"
|
||||
|
||||
void
|
||||
view_impl_map(struct view *view)
|
||||
{
|
||||
desktop_focus_and_activate_view(&view->server->seat, view);
|
||||
desktop_raise_view(view);
|
||||
|
||||
const char *app_id = view->impl->get_string_prop(view, "app_id");
|
||||
if (app_id) {
|
||||
wlr_foreign_toplevel_handle_v1_set_app_id(
|
||||
view->toplevel_handle, app_id);
|
||||
}
|
||||
|
||||
view_update_title(view);
|
||||
|
||||
damage_all_outputs(view->server);
|
||||
}
|
||||
|
|
@ -343,9 +343,7 @@ xdg_toplevel_view_map(struct view *view)
|
|||
wl_signal_add(&view->surface->events.new_subsurface,
|
||||
&view->new_subsurface);
|
||||
|
||||
desktop_focus_and_activate_view(&view->server->seat, view);
|
||||
desktop_raise_view(view);
|
||||
damage_all_outputs(view->server);
|
||||
view_impl_map(view);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
|
|
@ -146,6 +146,10 @@ get_string_prop(struct view *view, const char *prop)
|
|||
if (!strcmp(prop, "class")) {
|
||||
return view->xwayland_surface->class;
|
||||
}
|
||||
/* We give 'class' for wlr_foreign_toplevel_handle_v1_set_app_id() */
|
||||
if (!strcmp(prop, "app_id")) {
|
||||
return view->xwayland_surface->class;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
|
|
@ -208,9 +212,7 @@ map(struct view *view)
|
|||
&view->commit);
|
||||
view->commit.notify = handle_commit;
|
||||
|
||||
desktop_focus_and_activate_view(&view->server->seat, view);
|
||||
desktop_raise_view(view);
|
||||
damage_all_outputs(view->server);
|
||||
view_impl_map(view);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue