mirror of
https://github.com/gnif/LookingGlass.git
synced 2024-12-22 13:52:57 +00:00
[client] x11/wayland: add application id
Some checks failed
build / host-linux (push) Has been cancelled
build / host-windows-cross (push) Has been cancelled
build / host-windows-native (push) Has been cancelled
build / obs (clang) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / obs (gcc) (push) Has been cancelled
build / docs (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / module (push) Has been cancelled
build / client (Debug, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
Some checks failed
build / host-linux (push) Has been cancelled
build / host-windows-cross (push) Has been cancelled
build / host-windows-native (push) Has been cancelled
build / obs (clang) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / obs (gcc) (push) Has been cancelled
build / docs (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / module (push) Has been cancelled
build / client (Debug, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
This commit is contained in:
parent
4e8201da07
commit
e25492a3a3
12 changed files with 22 additions and 10 deletions
1
AUTHORS
1
AUTHORS
|
@ -70,3 +70,4 @@ Zenithal <i@zenithal.me> (ZenithalHourlyRate)
|
||||||
Kamplom <6284968128@protonmail.ch> (kamplom)
|
Kamplom <6284968128@protonmail.ch> (kamplom)
|
||||||
Jacob McNamee <jacob@jacobmcnamee.com> (jacobmcnamee)
|
Jacob McNamee <jacob@jacobmcnamee.com> (jacobmcnamee)
|
||||||
Marco Antonio J. Costa <marco.antonio.costa@gmail.com> (majcosta)
|
Marco Antonio J. Costa <marco.antonio.costa@gmail.com> (majcosta)
|
||||||
|
rs189 <35667100+rs189@users.noreply.github.com> (rs189)
|
|
@ -130,14 +130,14 @@ static void libdecorCallback(uint32_t events, void * opaque)
|
||||||
|
|
||||||
static bool libdecor_shellInit(
|
static bool libdecor_shellInit(
|
||||||
struct wl_display * display, struct wl_surface * surface,
|
struct wl_display * display, struct wl_surface * surface,
|
||||||
const char * title, bool fullscreen,
|
const char * title, const char * appId, bool fullscreen,
|
||||||
bool maximize, bool borderless, bool resizable)
|
bool maximize, bool borderless, bool resizable)
|
||||||
{
|
{
|
||||||
state.libdecor = libdecor_new(display, &libdecorListener);
|
state.libdecor = libdecor_new(display, &libdecorListener);
|
||||||
state.libdecorFrame = libdecor_decorate(state.libdecor, surface,
|
state.libdecorFrame = libdecor_decorate(state.libdecor, surface,
|
||||||
&libdecorFrameListener, NULL);
|
&libdecorFrameListener, NULL);
|
||||||
|
|
||||||
libdecor_frame_set_app_id(state.libdecorFrame, "looking-glass-client");
|
libdecor_frame_set_app_id(state.libdecorFrame, appId);
|
||||||
libdecor_frame_set_title(state.libdecorFrame, title);
|
libdecor_frame_set_title(state.libdecorFrame, title);
|
||||||
libdecor_frame_map(state.libdecorFrame);
|
libdecor_frame_map(state.libdecorFrame);
|
||||||
|
|
||||||
|
|
|
@ -130,7 +130,7 @@ static const struct xdg_toplevel_listener xdgToplevelListener = {
|
||||||
};
|
};
|
||||||
|
|
||||||
bool xdg_shellInit(struct wl_display * display, struct wl_surface * surface,
|
bool xdg_shellInit(struct wl_display * display, struct wl_surface * surface,
|
||||||
const char * title, bool fullscreen, bool maximize, bool borderless,
|
const char * title, const char * appId, bool fullscreen, bool maximize, bool borderless,
|
||||||
bool resizable)
|
bool resizable)
|
||||||
{
|
{
|
||||||
if (!state.wmBase)
|
if (!state.wmBase)
|
||||||
|
@ -147,7 +147,7 @@ bool xdg_shellInit(struct wl_display * display, struct wl_surface * surface,
|
||||||
state.toplevel = xdg_surface_get_toplevel(state.surface);
|
state.toplevel = xdg_surface_get_toplevel(state.surface);
|
||||||
xdg_toplevel_add_listener(state.toplevel, &xdgToplevelListener, NULL);
|
xdg_toplevel_add_listener(state.toplevel, &xdgToplevelListener, NULL);
|
||||||
xdg_toplevel_set_title(state.toplevel, title);
|
xdg_toplevel_set_title(state.toplevel, title);
|
||||||
xdg_toplevel_set_app_id(state.toplevel, "looking-glass-client");
|
xdg_toplevel_set_app_id(state.toplevel, appId);
|
||||||
|
|
||||||
if (fullscreen)
|
if (fullscreen)
|
||||||
xdg_toplevel_set_fullscreen(state.toplevel, NULL);
|
xdg_toplevel_set_fullscreen(state.toplevel, NULL);
|
||||||
|
|
|
@ -34,7 +34,7 @@ typedef struct WL_DesktopOps
|
||||||
|
|
||||||
bool (*shellInit)(
|
bool (*shellInit)(
|
||||||
struct wl_display * display, struct wl_surface * surface,
|
struct wl_display * display, struct wl_surface * surface,
|
||||||
const char * title, bool fullscreen, bool maximize,
|
const char * title, const char * appId, bool fullscreen, bool maximize,
|
||||||
bool borderless, bool resizable);
|
bool borderless, bool resizable);
|
||||||
|
|
||||||
void (*shellAckConfigureIfNeeded)(void);
|
void (*shellAckConfigureIfNeeded)(void);
|
||||||
|
|
|
@ -159,7 +159,7 @@ static bool waylandInit(const LG_DSInitParams params)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
wlWm.desktop->setSize(params.w, params.h);
|
wlWm.desktop->setSize(params.w, params.h);
|
||||||
if (!waylandWindowInit(params.title, params.fullscreen, params.maximize,
|
if (!waylandWindowInit(params.title, params.appId, params.fullscreen, params.maximize,
|
||||||
params.borderless, params.resizable))
|
params.borderless, params.resizable))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|
|
@ -301,7 +301,7 @@ bool waylandRegistryInit(void);
|
||||||
void waylandRegistryFree(void);
|
void waylandRegistryFree(void);
|
||||||
|
|
||||||
// window module
|
// window module
|
||||||
bool waylandWindowInit(const char * title, bool fullscreen, bool maximize, bool borderless, bool resizable);
|
bool waylandWindowInit(const char * title, const char * appId, bool fullscreen, bool maximize, bool borderless, bool resizable);
|
||||||
void waylandWindowFree(void);
|
void waylandWindowFree(void);
|
||||||
void waylandWindowUpdateScale(void);
|
void waylandWindowUpdateScale(void);
|
||||||
void waylandSetWindowSize(int x, int y);
|
void waylandSetWindowSize(int x, int y);
|
||||||
|
|
|
@ -85,7 +85,7 @@ static const struct wl_surface_listener wlSurfaceListener = {
|
||||||
.leave = wlSurfaceLeaveHandler,
|
.leave = wlSurfaceLeaveHandler,
|
||||||
};
|
};
|
||||||
|
|
||||||
bool waylandWindowInit(const char * title, bool fullscreen, bool maximize, bool borderless, bool resizable)
|
bool waylandWindowInit(const char * title, const char * appId, bool fullscreen, bool maximize, bool borderless, bool resizable)
|
||||||
{
|
{
|
||||||
wlWm.scale = wl_fixed_from_int(1);
|
wlWm.scale = wl_fixed_from_int(1);
|
||||||
|
|
||||||
|
@ -113,7 +113,7 @@ bool waylandWindowInit(const char * title, bool fullscreen, bool maximize, bool
|
||||||
wl_surface_add_listener(wlWm.surface, &wlSurfaceListener, NULL);
|
wl_surface_add_listener(wlWm.surface, &wlSurfaceListener, NULL);
|
||||||
|
|
||||||
if (!wlWm.desktop->shellInit(wlWm.display, wlWm.surface,
|
if (!wlWm.desktop->shellInit(wlWm.display, wlWm.surface,
|
||||||
title, fullscreen, maximize, borderless, resizable))
|
title, appId, fullscreen, maximize, borderless, resizable))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
wl_surface_commit(wlWm.surface);
|
wl_surface_commit(wlWm.surface);
|
||||||
|
|
|
@ -343,7 +343,7 @@ static bool x11Init(const LG_DSInitParams params)
|
||||||
XClassHint hint =
|
XClassHint hint =
|
||||||
{
|
{
|
||||||
.res_name = strdup(params.title),
|
.res_name = strdup(params.title),
|
||||||
.res_class = strdup("looking-glass-client")
|
.res_class = strdup(params.appId)
|
||||||
};
|
};
|
||||||
XSetClassHint(x11.display, x11.window, &hint);
|
XSetClassHint(x11.display, x11.window, &hint);
|
||||||
free(hint.res_name);
|
free(hint.res_name);
|
||||||
|
|
|
@ -84,6 +84,7 @@ LG_DSPointer;
|
||||||
typedef struct LG_DSInitParams
|
typedef struct LG_DSInitParams
|
||||||
{
|
{
|
||||||
const char * title;
|
const char * title;
|
||||||
|
const char * appId;
|
||||||
int x, y, w, h;
|
int x, y, w, h;
|
||||||
bool center;
|
bool center;
|
||||||
bool fullscreen;
|
bool fullscreen;
|
||||||
|
|
|
@ -112,6 +112,13 @@ static struct Option options[] =
|
||||||
.type = OPTION_TYPE_STRING,
|
.type = OPTION_TYPE_STRING,
|
||||||
.value.x_string = "Looking Glass (client)"
|
.value.x_string = "Looking Glass (client)"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.module = "win",
|
||||||
|
.name = "appId",
|
||||||
|
.description = "The application Id",
|
||||||
|
.type = OPTION_TYPE_STRING,
|
||||||
|
.value.x_string = "looking-glass-client"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.module = "win",
|
.module = "win",
|
||||||
.name = "position",
|
.name = "position",
|
||||||
|
@ -649,6 +656,7 @@ bool config_load(int argc, char * argv[])
|
||||||
g_params.allowDMA = option_get_bool ("app" , "allowDMA" );
|
g_params.allowDMA = option_get_bool ("app" , "allowDMA" );
|
||||||
|
|
||||||
g_params.windowTitle = option_get_string("win", "title" );
|
g_params.windowTitle = option_get_string("win", "title" );
|
||||||
|
g_params.appId = option_get_string("win", "appId" );
|
||||||
g_params.autoResize = option_get_bool ("win", "autoResize" );
|
g_params.autoResize = option_get_bool ("win", "autoResize" );
|
||||||
g_params.allowResize = option_get_bool ("win", "allowResize" );
|
g_params.allowResize = option_get_bool ("win", "allowResize" );
|
||||||
g_params.keepAspect = option_get_bool ("win", "keepAspect" );
|
g_params.keepAspect = option_get_bool ("win", "keepAspect" );
|
||||||
|
|
|
@ -1350,6 +1350,7 @@ static int lg_run(void)
|
||||||
const LG_DSInitParams params =
|
const LG_DSInitParams params =
|
||||||
{
|
{
|
||||||
.title = g_params.windowTitle,
|
.title = g_params.windowTitle,
|
||||||
|
.appId = g_params.appId,
|
||||||
.x = g_params.x,
|
.x = g_params.x,
|
||||||
.y = g_params.y,
|
.y = g_params.y,
|
||||||
.w = g_params.w,
|
.w = g_params.w,
|
||||||
|
|
|
@ -211,6 +211,7 @@ struct AppParams
|
||||||
unsigned int forceRendererIndex;
|
unsigned int forceRendererIndex;
|
||||||
|
|
||||||
const char * windowTitle;
|
const char * windowTitle;
|
||||||
|
const char * appId;
|
||||||
bool mouseRedraw;
|
bool mouseRedraw;
|
||||||
int mouseSens;
|
int mouseSens;
|
||||||
bool mouseSmoothing;
|
bool mouseSmoothing;
|
||||||
|
|
Loading…
Reference in a new issue