Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c4614fd4f2f2fff205c92dcabd1879feca1b728e
      
https://github.com/WebKit/WebKit/commit/c4614fd4f2f2fff205c92dcabd1879feca1b728e
  Author: Carlos Garcia Campos <cgar...@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


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to