[client] x11/sdl/wayland: implement new minimize (stub for wayland)

This implements the new minimize function introduced in the last commit
for x11 and SDL. Wayland at current is just a stub and needs some
attention.
This commit is contained in:
Geoffrey McRae 2021-05-06 22:25:38 +10:00
parent f698e4589d
commit 903cc9815f
5 changed files with 20 additions and 2 deletions

View file

@ -120,8 +120,7 @@ static bool sdlInit(const LG_DSInitParams params)
SDL_ShowWindow(sdl.window);
SDL_SetHint(SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS,
params.minimizeOnFocusLoss ? "1" : "0");
SDL_SetHint(SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS, "0");
if (params.fullscreen)
SDL_SetWindowFullscreen(sdl.window, SDL_WINDOW_FULLSCREEN_DESKTOP);
@ -507,6 +506,11 @@ static bool sdlGetFullscreen(void)
return (SDL_GetWindowFlags(sdl.window) & SDL_WINDOW_FULLSCREEN_DESKTOP) != 0;
}
static void sdlMinimize(void)
{
SDL_MinimizeWindow(sdl.window);
}
struct LG_DisplayServerOps LGDS_SDL =
{
.setup = sdlSetup,
@ -548,6 +552,7 @@ struct LG_DisplayServerOps LGDS_SDL =
.setWindowSize = sdlSetWindowSize,
.setFullscreen = sdlSetFullscreen,
.getFullscreen = sdlGetFullscreen,
.minimize = sdlMinimize,
/* SDL does not have clipboard support */
.cbInit = NULL,

View file

@ -146,3 +146,8 @@ bool waylandGetFullscreen(void)
{
return wlWm.fullscreen;
}
void waylandMinimize(void)
{
//FIXME
}

View file

@ -177,6 +177,7 @@ struct LG_DisplayServerOps LGDS_Wayland =
.setWindowSize = waylandSetWindowSize,
.setFullscreen = waylandSetFullscreen,
.getFullscreen = waylandGetFullscreen,
.minimize = waylandMinimize,
.cbInit = waylandCBInit,
.cbNotice = waylandCBNotice,

View file

@ -254,6 +254,7 @@ bool waylandShellInit(const char * title, bool fullscreen, bool maximize, bool b
void waylandShellAckConfigureIfNeeded(void);
void waylandSetFullscreen(bool fs);
bool waylandGetFullscreen(void);
void waylandMinimize(void);
// window module
bool waylandWindowInit(const char * title, bool fullscreen, bool maximize, bool borderless);

View file

@ -1215,6 +1215,11 @@ static bool x11GetFullscreen(void)
return x11.fullscreen;
}
static void x11Minimize(void)
{
XIconifyWindow(x11.display, x11.window, XDefaultScreen(x11.display));
}
struct LG_DisplayServerOps LGDS_X11 =
{
.setup = x11Setup,
@ -1254,6 +1259,7 @@ struct LG_DisplayServerOps LGDS_X11 =
.setWindowSize = x11SetWindowSize,
.setFullscreen = x11SetFullscreen,
.getFullscreen = x11GetFullscreen,
.minimize = x11Minimize,
.cbInit = x11CBInit,
.cbNotice = x11CBNotice,