[webkit-changes] [WebKit/WebKit] c4614f: [GTK] Simplify handling of toplevel window signals

Carlos Garcia Campos noreply at github.com
Tue Oct 10 05:23:25 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c4614fd4f2f2fff205c92dcabd1879feca1b728e
      https://github.com/WebKit/WebKit/commit/c4614fd4f2f2fff205c92dcabd1879feca1b728e
  Author: Carlos Garcia Campos <cgarcia at igalia.com>
  Date:   2023-10-10 (Tue, 10 Oct 2023)

  Changed paths:
    M Source/WebKit/SourcesGTK.txt
    A Source/WebKit/UIProcess/API/gtk/ToplevelWindow.cpp
    A Source/WebKit/UIProcess/API/gtk/ToplevelWindow.h
    M Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp
    M Source/WebKit/UIProcess/API/gtk/WebKitWebViewBasePrivate.h

  Log Message:
  -----------
  [GTK] Simplify handling of toplevel window signals
https://bugs.webkit.org/show_bug.cgi?id=262944

Reviewed by Alejandro G. Castro.

We currently track the state of the toplevel window from every web view,
connecting to the same signals to be notified when something changes. We
could add a toplevel window wrapper instead to track its state and
notify all the web views when there's any change.

* Source/WebKit/SourcesGTK.txt:
* Source/WebKit/UIProcess/API/gtk/ToplevelWindow.cpp: Added.
(WebKit::toplevelWindows):
(WebKit::toplevelWindowDestroyedCallback):
(WebKit::ToplevelWindow::forGtkWindow):
(WebKit::ToplevelWindow::ToplevelWindow):
(WebKit::ToplevelWindow::~ToplevelWindow):
(WebKit::ToplevelWindow::addWebView):
(WebKit::ToplevelWindow::removeWebView):
(WebKit::ToplevelWindow::isActive const):
(WebKit::ToplevelWindow::isFullscreen const):
(WebKit::ToplevelWindow::connectSignals):
(WebKit::ToplevelWindow::disconnectSignals):
(WebKit::ToplevelWindow::connectSurfaceSignals):
(WebKit::ToplevelWindow::disconnectSurfaceSignals):
(WebKit::ToplevelWindow::notifyIsActive):
(WebKit::ToplevelWindow::notifyState):
(WebKit::ToplevelWindow::notifyMonitorChanged):
* Source/WebKit/UIProcess/API/gtk/ToplevelWindow.h: Added.
(WebKit::ToplevelWindow::window const):
* Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseToplevelWindowIsActiveChanged):
(webkitWebViewBaseToplevelWindowStateChanged):
(webkitWebViewBaseToplevelWindowMonitorChanged):
(webkitWebViewBaseSetToplevelOnScreenWindow):
(webkitWebViewBaseDispose):
(webkitWebViewBaseMap):
(webkitWebViewBaseRoot):
(webkitWebViewBaseUnroot):
(webkitWebViewBaseHierarchyChanged):
(webkitWebViewBaseToplevelOnScreenWindowIsFullScreen):
(webkitWebViewBaseEnterFullScreen):
(webkitWebViewBaseExitFullScreen):
(webkitWebViewBaseTakeViewSnapshot):
(toplevelWindowFocusInEvent): Deleted.
(toplevelWindowFocusOutEvent): Deleted.
(toplevelWindowStateEvent): Deleted.
(toplevelWindowConfigureEvent): Deleted.
(toplevelWindowRealized): Deleted.
(toplevelWindowIsActiveChanged): Deleted.
(toplevelWindowStateChanged): Deleted.
(toplevelWindowMonitorsChanged): Deleted.
(toplevelWindowUnrealized): Deleted.
* Source/WebKit/UIProcess/API/gtk/WebKitWebViewBasePrivate.h:

Canonical link: https://commits.webkit.org/269136@main




More information about the webkit-changes mailing list