How to listen BrowserView's maximize,minimize,resize event?

Having problems with building or using CEF's C/C++ APIs? This forum is here to help. Please do not post bug reports or feature requests here.

How to listen BrowserView's maximize,minimize,resize event?

Postby liulun » Tue Sep 07, 2021 1:18 am

Is there a way to listen BrowserView's maximize,minimize,resize event?
Or developers must use native system API to do this job?
Developers use Native system API must provide diffrent code for diffrent OS, It is difficult.

When user double click `-webkit-app-region: drag` area,the window will be maximized.
I want to listen maximized event to do somthing.
liulun
Techie
 
Posts: 12
Joined: Tue Sep 07, 2021 1:01 am

Re: How to listen BrowserView's maximize,minimize,resize eve

Postby magreenblatt » Tue Sep 07, 2021 2:41 am

magreenblatt
Site Admin
 
Posts: 12382
Joined: Fri May 29, 2009 6:57 pm

Re: How to listen BrowserView's maximize,minimize,resize eve

Postby liulun » Tue Sep 07, 2021 7:41 am

Thanks very much

But the `windows.WindowState` is a chrome extension api, and developer can not addEventListener to listen it's change event.
Use setInterval ?

`document.addEventListener("visibilitychange", function() {})` can not get the maximize event.
liulun
Techie
 
Posts: 12
Joined: Tue Sep 07, 2021 1:01 am

Re: How to listen BrowserView's maximize,minimize,resize eve

Postby magreenblatt » Tue Sep 07, 2021 9:13 am

What about fullscreenchange?
magreenblatt
Site Admin
 
Posts: 12382
Joined: Fri May 29, 2009 6:57 pm

Re: How to listen BrowserView's maximize,minimize,resize eve

Postby liulun » Wed Sep 08, 2021 1:07 am

Thanks very much.

I use these codes to finish the job
Code: Select all
//防抖
let debounce = (fn, span = 680) => {
  let timer = null;
  return function () {
    clearTimeout(timer);
    timer = setTimeout(() => fn.apply(this, arguments), span);
  };
};
window.addEventListener("load", () => {
  let btnArr = document.querySelector(".titleTool").children;
  btnArr[0].addEventListener("click", () => {
    horse.window.minimize();
  });
  btnArr[1].addEventListener("click", () => {
    if (btnArr[1].classList.contains("horse-restore")) {
      horse.window.restore();
    } else {
      horse.window.maximize();
    }
  });
  btnArr[2].addEventListener("click", () => {
    horse.window.close();
  });
  let maximizeLogic = () => {
    if (
      window.outerHeight === screen.availHeight &&
      window.outerWidth === screen.availWidth
    ) {
      btnArr[1].classList.remove("horse-maximize");
      btnArr[1].classList.add("horse-restore");
    } else {
      btnArr[1].classList.remove("horse-restore");
      btnArr[1].classList.add("horse-maximize");
    }
  };
  maximizeLogic();
  window.addEventListener("resize", debounce(maximizeLogic));
});
liulun
Techie
 
Posts: 12
Joined: Tue Sep 07, 2021 1:01 am


Return to Support Forum

Who is online

Users browsing this forum: Google [Bot] and 35 guests