[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_ShowWindow(sdl.window);
SDL_SetHint(SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS, SDL_SetHint(SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS, "0");
params.minimizeOnFocusLoss ? "1" : "0");
if (params.fullscreen) if (params.fullscreen)
SDL_SetWindowFullscreen(sdl.window, SDL_WINDOW_FULLSCREEN_DESKTOP); 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; return (SDL_GetWindowFlags(sdl.window) & SDL_WINDOW_FULLSCREEN_DESKTOP) != 0;
} }
static void sdlMinimize(void)
{
SDL_MinimizeWindow(sdl.window);
}
struct LG_DisplayServerOps LGDS_SDL = struct LG_DisplayServerOps LGDS_SDL =
{ {
.setup = sdlSetup, .setup = sdlSetup,
@ -548,6 +552,7 @@ struct LG_DisplayServerOps LGDS_SDL =
.setWindowSize = sdlSetWindowSize, .setWindowSize = sdlSetWindowSize,
.setFullscreen = sdlSetFullscreen, .setFullscreen = sdlSetFullscreen,
.getFullscreen = sdlGetFullscreen, .getFullscreen = sdlGetFullscreen,
.minimize = sdlMinimize,
/* SDL does not have clipboard support */ /* SDL does not have clipboard support */
.cbInit = NULL, .cbInit = NULL,

View File

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

View File

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

View File

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

View File

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