From cd6ba9a1ecf7fe02776997195cb33960dbe193e1 Mon Sep 17 00:00:00 2001 From: Ahmad Date: Thu, 22 Aug 2024 01:27:54 +0700 Subject: [PATCH] Add initial window settings for electron --- app/src/main/assets/view/m.js | 49 +++++++++++++++++++++++++++++++++++ electron/src/animetv.js | 24 ++++++++++++----- 2 files changed, 66 insertions(+), 7 deletions(-) diff --git a/app/src/main/assets/view/m.js b/app/src/main/assets/view/m.js index 3a663684..17016841 100644 --- a/app/src/main/assets/view/m.js +++ b/app/src/main/assets/view/m.js @@ -5962,6 +5962,11 @@ const pb={ 'Open sidebar before exit', 'Sidebar to login screen' ], + cfginitwinstate_name:[ + 'Normal', + 'Maximize', + 'Fullscreen' + ], cfg_save:function(){ _JSAPI.storeSet(_API.user_prefix+'pb_cfg',JSON.stringify(pb.cfg_data)); }, @@ -5999,6 +6004,13 @@ const pb={ } el.lastElementChild.innerHTML=pb.cfgexitmode_name[ls]; } + else if (key=='initwinstate'){ + var ls=toInt(_JSAPI.varGet("initwinstate","0")); + if (ls<0||ls>2){ + ls=0; + } + el.lastElementChild.innerHTML=pb.cfginitwinstate_name[ls]; + } else if (key=='cachesz'){ el.lastElementChild.innerHTML=_JSAPI.getCacheSz()+" MB"; } @@ -6239,6 +6251,10 @@ const pb={ pb.cfg_update_el('loginscreen'); pb.cfg_update_el('exitmode'); + if (_ISELECTRON){ + pb.cfg_update_el('initwinstate'); + } + pb.cfg_update_el('uifontsize'); pb.cfg_update_el('seekvalue'); pb.cfg_update_el('httpclient'); @@ -8006,6 +8022,25 @@ const pb={ } ); } + else if (key=="initwinstate"){ + var ls=toInt(_JSAPI.varGet("initwinstate","0")); + if (ls<0||ls>2){ + ls=0; + } + listOrder.showList( + "Initial Window State", + pb.cfginitwinstate_name, + ls, + function(chval){ + if (chval!=null){ + ls=toInt(chval); + _JSAPI.storeSet("initwinstate",ls+""); + _JSAPI.varSet("initwinstate",ls+""); + pb.cfg_update_el(key); + } + } + ); + } else if (key=="httpclient"){ // pb.state=0; @@ -13169,6 +13204,20 @@ const home={ home.settings.performance.P, 'clearbrand_awareness Navigation Sound' ); + + + if (_ISELECTRON){ + if (home.profiles.isadmin()){ + home.settings.tools._s_initwinstate=$n( + 'div','',{ + action:'*initwinstate', + s_desc:"Set initial window state when app is launching" + }, + home.settings.performance.P, + 'fullscreen Initial Window State' + ); + } + } home.settings.tools._s_homylist=$n( diff --git a/electron/src/animetv.js b/electron/src/animetv.js index f89249d8..573f490b 100644 --- a/electron/src/animetv.js +++ b/electron/src/animetv.js @@ -43,10 +43,20 @@ const main={ var mainDisplay = screen.getPrimaryDisplay(); var dw = mainDisplay.size.width * 3 / 4; var dh = mainDisplay.size.height * 3 / 4; + + /* init values */ + if ('__sd' in common.config){ + main.vars.sd=common.config.__sd; + } + if ('initwinstate' in common.config){ + main.vars.initwinstate=common.config.initwinstate; + main.vars.fullscreen=(main.vars.initwinstate==2); + } + main.vars.dns=common.dns; /* Create new window */ main.win=new BrowserWindow({ - fullscreen: false, + fullscreen: main.vars.fullscreen, autoHideMenuBar: true, show: false, width: dw, @@ -64,6 +74,11 @@ const main={ preload: common.path("/electron/src/preload.js"), } }); + if (main.vars.initwinstate==1){ + /* maximized */ + main.win.maximize(); + } + main.win.setMenu(null); main.win.webContents.setUserAgent(common.UAG); /* Init all handlers */ @@ -86,12 +101,6 @@ const main={ main.initialized=true; } - /* init values */ - if ('__sd' in common.config){ - main.vars.sd=common.config.__sd; - } - main.vars.dns=common.dns; - /* Go home & show */ // main.win.setContentSize(dw, dh); main.goHome(); @@ -110,6 +119,7 @@ const main={ httpclient:0, sd_domain:'', fullscreen:false, + initwinstate:0, }, handlerIntent(e,d){ shell.openExternal(d);