Skip to content

Commit 752717e

Browse files
committed
update fullscreen switcher
1 parent b6cdd03 commit 752717e

File tree

2 files changed

+24
-8
lines changed

2 files changed

+24
-8
lines changed

sources/include/cage-simple/fullscreenSwitcher.h

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,22 @@ namespace cage
1414
ModifiersFlags keyModifiers = ModifiersFlags::None;
1515

1616
void update(bool fullscreen);
17+
void toggle();
18+
void restoreFromConfig();
1719
};
1820

21+
namespace detail
22+
{
23+
bool defaultFullscreenSettingFromEnvironment();
24+
}
25+
1926
struct FullscreenSwitcherCreateConfig
2027
{
2128
String configPrefix;
2229
Window *window = nullptr;
23-
bool defaultFullscreen = true;
30+
bool defaultFullscreen = detail::defaultFullscreenSettingFromEnvironment();
2431

2532
FullscreenSwitcherCreateConfig();
26-
explicit FullscreenSwitcherCreateConfig(bool defaultFullscreen);
2733
};
2834

2935
Holder<FullscreenSwitcher> newFullscreenSwitcher(const FullscreenSwitcherCreateConfig &config);

sources/libsimple/fullscreenSwitcher.cpp

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ namespace cage
109109
{
110110
if (in.mods == keyModifiers && in.key == keyToggleFullscreen)
111111
{
112-
update(!window->isFullscreen());
112+
toggle();
113113
return true;
114114
}
115115
return false;
@@ -123,9 +123,21 @@ namespace cage
123123
impl->update(fullscreen);
124124
}
125125

126-
namespace
126+
void FullscreenSwitcher::toggle()
127+
{
128+
FullscreenSwitcherImpl *impl = (FullscreenSwitcherImpl *)this;
129+
update(!impl->window->isFullscreen());
130+
}
131+
132+
void FullscreenSwitcher::restoreFromConfig()
127133
{
128-
bool defaultFullscreenEnvironment()
134+
FullscreenSwitcherImpl *impl = (FullscreenSwitcherImpl *)this;
135+
impl->update(impl->confFullscreenEnabled);
136+
}
137+
138+
namespace detail
139+
{
140+
bool defaultFullscreenSettingFromEnvironment()
129141
{
130142
const char *env = std::getenv("CAGE_FULLSCREEN_DEFAULT");
131143
if (!env)
@@ -144,9 +156,7 @@ namespace cage
144156
}
145157
}
146158

147-
FullscreenSwitcherCreateConfig::FullscreenSwitcherCreateConfig() : FullscreenSwitcherCreateConfig(defaultFullscreenEnvironment()) {}
148-
149-
FullscreenSwitcherCreateConfig::FullscreenSwitcherCreateConfig(bool defaultFullscreen) : defaultFullscreen(defaultFullscreen)
159+
FullscreenSwitcherCreateConfig::FullscreenSwitcherCreateConfig()
150160
{
151161
configPrefix = detail::globalConfigPrefix();
152162
window = cage::engineWindow();

0 commit comments

Comments
 (0)