Issue metadata
Sign in to add a comment
|
Add support for maximize/minimize/restore |
||||||||||||||||||||||||
Issue descriptionozone/x11/wayland doesn't have proper maximize/minimize/restore support. This must be fixed by extending both X11WindowBase and WaylandWindow to handle states properly.
,
Nov 14 2017
,
Dec 13 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1c090989b717047829eab075c4960a3512014559 commit 1c090989b717047829eab075c4960a3512014559 Author: Maksim Sisov <msisov@igalia.com> Date: Wed Dec 13 09:55:29 2017 [ozone/wayland] Add support for maximize/minimize/fullscreen. This CL adds a preliminary support to maximize/minimize or set Wayland windows to fullscreen. WaylandWindow extends HandleSurfaceConfigure and stores new states. As a result, Wayland windows will be sending changed window states to the |delegate_| and notify ServerWindow and thus aura::Window about changed states. This change is in downstream now [1], but will be sent as a follow-up cl. [1] https://github.com/Igalia/chromium Bug: 784836 , 578890 Change-Id: I4dee446b5d145ca2a15f168d78aacf7c96acb2e7 Reviewed-on: https://chromium-review.googlesource.com/768681 Commit-Queue: Maksim Sisov <msisov@igalia.com> Reviewed-by: Robert Kroeger <rjkroege@chromium.org> Cr-Commit-Position: refs/heads/master@{#523733} [modify] https://crrev.com/1c090989b717047829eab075c4960a3512014559/ui/ozone/platform/wayland/BUILD.gn [modify] https://crrev.com/1c090989b717047829eab075c4960a3512014559/ui/ozone/platform/wayland/fake_server.cc [modify] https://crrev.com/1c090989b717047829eab075c4960a3512014559/ui/ozone/platform/wayland/fake_server.h [modify] https://crrev.com/1c090989b717047829eab075c4960a3512014559/ui/ozone/platform/wayland/wayland_window.cc [modify] https://crrev.com/1c090989b717047829eab075c4960a3512014559/ui/ozone/platform/wayland/wayland_window.h [modify] https://crrev.com/1c090989b717047829eab075c4960a3512014559/ui/ozone/platform/wayland/wayland_window_unittest.cc [add] https://crrev.com/1c090989b717047829eab075c4960a3512014559/ui/ozone/platform/wayland/xdg_surface_wrapper.cc [modify] https://crrev.com/1c090989b717047829eab075c4960a3512014559/ui/ozone/platform/wayland/xdg_surface_wrapper.h [modify] https://crrev.com/1c090989b717047829eab075c4960a3512014559/ui/ozone/platform/wayland/xdg_surface_wrapper_v5.cc [modify] https://crrev.com/1c090989b717047829eab075c4960a3512014559/ui/ozone/platform/wayland/xdg_surface_wrapper_v6.cc
,
Jan 16 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f5cb3080bedd6f850e4eb688e24ec6a5f30be60f commit f5cb3080bedd6f850e4eb688e24ec6a5f30be60f Author: Maksim Sisov <msisov@igalia.com> Date: Tue Jan 16 08:54:16 2018 [ozone/x11] Add support for maximize/minimize/fullscreen. This CL adds preliminary support to X11WindowBase to be able to maximize/minimize and set X11 windows to fullscreen. Both X11Window and X11WindowOzone can benefit from it. In addition, the CL implements Maximize/Minimize/ToggleFullscreeen methods, X11WindowBase also implements OnWMStateUpdated and subscribes for PropertyNotify changes to store window state updates. As a result, X11 windows now send changed window states to the |delegate_| and the |delegate_| will notify ServerWindow and thus aura::Window about changed states if triggered by a server in the future (This change is in downstream now [1], but will be sent as a follow-up cl) [1] https://github.com/Igalia/chromium Bug: 784836 Change-Id: Idff04e347191ef9f2643280559b0c5cf0b2a29a0 Reviewed-on: https://chromium-review.googlesource.com/810948 Commit-Queue: Maksim Sisov <msisov@igalia.com> Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org> Reviewed-by: kylechar <kylechar@chromium.org> Reviewed-by: Robert Kroeger <rjkroege@chromium.org> Cr-Commit-Position: refs/heads/master@{#529383} [modify] https://crrev.com/f5cb3080bedd6f850e4eb688e24ec6a5f30be60f/ui/platform_window/x11/x11_window_base.cc [modify] https://crrev.com/f5cb3080bedd6f850e4eb688e24ec6a5f30be60f/ui/platform_window/x11/x11_window_base.h
,
Jan 24 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6162c97c07c724b92d8c73420239a7636c4ad24c commit 6162c97c07c724b92d8c73420239a7636c4ad24c Author: Maksim Sisov <msisov@igalia.com> Date: Wed Jan 24 16:45:12 2018 [ozone/wayland] Provide Wayland with desired bounds on request. This CL handles a case when Wayland asks its client about desired bounds. That is, under some circumstances, Wayland can send a configure event with width and height set to 0, which means it wants its client to send back desired bounds. There is also another case, or a bug in some Wayland protocol implementations like Gnome Shell, which sends width and height set to 0 instead of 1 if the browser is started with --start-fullscreen flag and then exits the fullscreen state. There are several cases of how we keep track of our desired bounds: we store previous bounds before going to maximize or fullscreen states, or we use our current bounds if a window has not had any state changes. If using our current bounds is naturally understandable, keeping the track of bounds before going to maximize and then fullscreen is a bit tricky. The restored bounds mustn't be overridden if we have gone from normal to maximized and then to fullscreen and then back to maximized, because |restored_bounds_| has already saved right bounds right before going from normal to maximized state. But if the state is changed from normal to maximized or from normal to fullscreen, we just store bounds on every change and restore them on Wayland request. Bug: 784836 , 578890 Change-Id: I0ae593235cccaf89719384f046ab446b814033e9 Reviewed-on: https://chromium-review.googlesource.com/881481 Commit-Queue: Maksim Sisov <msisov@igalia.com> Reviewed-by: Robert Kroeger <rjkroege@chromium.org> Cr-Commit-Position: refs/heads/master@{#531559} [modify] https://crrev.com/6162c97c07c724b92d8c73420239a7636c4ad24c/ui/ozone/platform/wayland/wayland_window.cc [modify] https://crrev.com/6162c97c07c724b92d8c73420239a7636c4ad24c/ui/ozone/platform/wayland/wayland_window.h [modify] https://crrev.com/6162c97c07c724b92d8c73420239a7636c4ad24c/ui/ozone/platform/wayland/wayland_window_unittest.cc
,
Jan 24 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a8646a32dfe24400847e70128f7d323a637dd807 commit a8646a32dfe24400847e70128f7d323a637dd807 Author: Maksim Sisov <msisov@igalia.com> Date: Wed Jan 24 17:31:46 2018 [ozone/wayland] Notify client about each state change from WM. Notify the client about window state changes instantiated from a window manager side. Those changes are results of shortcut keys like ALT+F10 (maximize/unmaximize) or super+H (minimize). Also remove the DCHECKs to avoid crashes due to theoretical races between requests to change state of a window and a response back from a WM. Bug: 784836 , 578890 Change-Id: Iaac5fdd971d89cef580197f00aeeeac64bf264b1 Reviewed-on: https://chromium-review.googlesource.com/880981 Reviewed-by: Robert Kroeger <rjkroege@chromium.org> Commit-Queue: Maksim Sisov <msisov@igalia.com> Cr-Commit-Position: refs/heads/master@{#531585} [modify] https://crrev.com/a8646a32dfe24400847e70128f7d323a637dd807/ui/ozone/platform/wayland/wayland_window.cc [modify] https://crrev.com/a8646a32dfe24400847e70128f7d323a637dd807/ui/ozone/platform/wayland/wayland_window_unittest.cc
,
Feb 26 2018
,
May 9 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c4d182f0a99effc90533cda90dbcbbb7e1bfcc51 commit c4d182f0a99effc90533cda90dbcbbb7e1bfcc51 Author: Maksim Sisov <msisov@igalia.com> Date: Wed May 09 07:30:41 2018 [ozone/wayland] Remove duplicated DCHECK. This change doesn't bring any functionality changes, but rather removes an accidentely added duplicate DCHECK. TBR=rjkroege@chromium.org Bug: 784836 , 578890 Change-Id: I524178327c4f6131eb582b9de37afe799039a41e Reviewed-on: https://chromium-review.googlesource.com/1051226 Commit-Queue: Maksim Sisov <msisov@igalia.com> Reviewed-by: Maksim Sisov <msisov@igalia.com> Cr-Commit-Position: refs/heads/master@{#557116} [modify] https://crrev.com/c4d182f0a99effc90533cda90dbcbbb7e1bfcc51/ui/ozone/platform/wayland/wayland_window.cc |
|||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||
Comment 1 by msi...@igalia.com
, Nov 14 2017