setting and keybinding for fullscreen mode
This commit is contained in:
parent
7a2b5f8475
commit
592cd7fedf
|
@ -87,6 +87,10 @@ def validate(conf):
|
|||
f'user_interface.faststep should not be negative: {conf.user_interface.faststep}'
|
||||
assert isinstance(conf.user_interface.screensaver,bool),\
|
||||
f'wrong type for user_interface.screensaver: {conf.user_interface.screensaver!r}'
|
||||
assert isinstance(conf.user_interface.startfs,bool),\
|
||||
f'wrong type for user_interface.startfs: {conf.user_interface.startfs!r}'
|
||||
assert isinstance(conf.user_interface.realfs,bool),\
|
||||
f'wrong type for user_interface.realfs: {conf.user_interface.realfs!r}'
|
||||
|
||||
# thumbnail
|
||||
assert isinstance(conf.thumbnail.size,int),\
|
||||
|
|
|
@ -56,6 +56,10 @@ tiling = false
|
|||
faststep = 20
|
||||
# whether to enable screensaver while {progname.lower()} is running
|
||||
screensaver = true
|
||||
# whether to start in fullscreen mode
|
||||
startfs = false
|
||||
# whether to change videomode in fullscreen mode
|
||||
realfs = false
|
||||
|
||||
[thumbnail]
|
||||
# thumbnail size as {{size}}x{{size}}
|
||||
|
@ -183,6 +187,8 @@ quit = [['SDLK_q'],['SDLK_CTRL','SDLK_q']]
|
|||
clear = []
|
||||
# toggle rtl mode
|
||||
rtl = []
|
||||
# toggle fullscreen
|
||||
fullscreen = [['SDLK_f']]
|
||||
|
||||
# enter tiling mode
|
||||
tiling = [['SDLK_t']]
|
||||
|
|
|
@ -233,6 +233,8 @@ def SDLUI_Process(sender,receiver,config):
|
|||
'enabled' if window.renderer.vsync else 'disabled')
|
||||
assert verb(__name__,'\n'.join(window.renderer.available_pixfmts))
|
||||
window.resize(*config.style.size)
|
||||
window.fullscreen_change_videomode=config.user_interface.realfs
|
||||
window.fullscreen=config.user_interface.startfs
|
||||
window.show()
|
||||
window.renderer.clear()
|
||||
window.update()
|
||||
|
|
|
@ -38,6 +38,8 @@ def execute_hci_action(mode,action,env,args=None):
|
|||
env.clear()
|
||||
case (None,'rtl'):
|
||||
env.double_right=not env.double_right
|
||||
case (None,'fullscreen'):
|
||||
env.window.fullscreen=not env.window.fullscreen
|
||||
case (None,'tiling'):
|
||||
env.action_view_tiling()
|
||||
case (None,'canvas'):
|
||||
|
|
|
@ -28,7 +28,7 @@ class Window(Widget):
|
|||
'_pos_x','_pos_y',
|
||||
'_size_w','_size_w_max','_size_w_min',
|
||||
'_size_h','_size_h_max','_size_h_min',
|
||||
'_default_flags',
|
||||
'_default_flags','_fs','_fs_flag',
|
||||
'_renderer','_renderer_driver',
|
||||
'_renderer_vsync','_renderer_drivers',
|
||||
'_window',
|
||||
|
@ -45,6 +45,8 @@ class Window(Widget):
|
|||
self._size_h_min=-1
|
||||
self._default_flags=SDL_WINDOW_HIDDEN|SDL_WINDOW_BORDERLESS|\
|
||||
SDL_WINDOW_RESIZABLE|SDL_WINDOW_ALLOW_HIGHDPI
|
||||
self._fs=False
|
||||
self._fs_flag=SDL_WINDOW_FULLSCREEN_DESKTOP
|
||||
self._context=runsdlP(
|
||||
SDL_CreateWindow,
|
||||
str2bytes(title),self._pos_x,self._pos_y,
|
||||
|
@ -186,6 +188,25 @@ class Window(Widget):
|
|||
self._size_h_min=-1
|
||||
runsdl(SDL_SetWindowMinimumSize,self,self.min_width,value)
|
||||
|
||||
@property
|
||||
def fullscreen(self):
|
||||
return self._fs
|
||||
|
||||
@fullscreen.setter
|
||||
def fullscreen(self,value):
|
||||
status=not not self.fullscreen
|
||||
if (not not value)==status:return
|
||||
self._fs=not status
|
||||
runsdl(SDL_SetWindowFullscreen,self,0 if status else self._fs_flag)
|
||||
|
||||
@property
|
||||
def fullscreen_change_videomode(self):
|
||||
return self._fs_flag==SDL_WINDOW_FULLSCREEN
|
||||
|
||||
@fullscreen_change_videomode.setter
|
||||
def fullscreen_change_videomode(self,value):
|
||||
self._fs_flag=SDL_WINDOW_FULLSCREEN_DESKTOP if not value else SDL_WINDOW_FULLSCREEN
|
||||
|
||||
@property
|
||||
def screensaver(self):
|
||||
return runsdl(SDL_IsScreenSaverEnabled,errval=false)==SDL_TRUE
|
||||
|
|
Loading…
Reference in New Issue