Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(401)

Side by Side Diff: components/exo/wayland/server.cc

Issue 2285633002: Add WM_EVENT_TRUSTED_PIN and WINDOW_STATE_TYPE_TRUSTED_PINNED to Ash. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « components/exo/shell_surface_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/exo/wayland/server.h" 5 #include "components/exo/wayland/server.h"
6 6
7 #include <grp.h> 7 #include <grp.h>
8 #include <linux/input.h> 8 #include <linux/input.h>
9 #include <stddef.h> 9 #include <stddef.h>
10 #include <stdint.h> 10 #include <stdint.h>
(...skipping 1501 matching lines...) Expand 10 before | Expand all | Expand 10 after
1512 GetUserDataAs<ShellSurface>(resource)->SetFullscreen(true); 1512 GetUserDataAs<ShellSurface>(resource)->SetFullscreen(true);
1513 } 1513 }
1514 1514
1515 void remote_surface_unfullscreen(wl_client* client, wl_resource* resource) { 1515 void remote_surface_unfullscreen(wl_client* client, wl_resource* resource) {
1516 GetUserDataAs<ShellSurface>(resource)->SetFullscreen(false); 1516 GetUserDataAs<ShellSurface>(resource)->SetFullscreen(false);
1517 } 1517 }
1518 1518
1519 void remote_surface_pin(wl_client* client, 1519 void remote_surface_pin(wl_client* client,
1520 wl_resource* resource, 1520 wl_resource* resource,
1521 int32_t trusted) { 1521 int32_t trusted) {
1522 GetUserDataAs<ShellSurface>(resource)->SetPinned(true); 1522 GetUserDataAs<ShellSurface>(resource)->SetPinned(true, trusted);
1523 } 1523 }
1524 1524
1525 void remote_surface_unpin(wl_client* client, wl_resource* resource) { 1525 void remote_surface_unpin(wl_client* client, wl_resource* resource) {
1526 GetUserDataAs<ShellSurface>(resource)->SetPinned(false); 1526 GetUserDataAs<ShellSurface>(resource)->SetPinned(false, /* trusted */ false);
1527 } 1527 }
1528 1528
1529 void remote_surface_set_system_modal(wl_client* client, wl_resource* resource) { 1529 void remote_surface_set_system_modal(wl_client* client, wl_resource* resource) {
1530 GetUserDataAs<ShellSurface>(resource)->SetSystemModal(true); 1530 GetUserDataAs<ShellSurface>(resource)->SetSystemModal(true);
1531 } 1531 }
1532 1532
1533 void remote_surface_unset_system_modal(wl_client* client, 1533 void remote_surface_unset_system_modal(wl_client* client,
1534 wl_resource* resource) { 1534 wl_resource* resource) {
1535 GetUserDataAs<ShellSurface>(resource)->SetSystemModal(false); 1535 GetUserDataAs<ShellSurface>(resource)->SetSystemModal(false);
1536 } 1536 }
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
1596 wl_resource* resource) { 1596 wl_resource* resource) {
1597 GetUserDataAs<ShellSurface>(resource)->Minimize(); 1597 GetUserDataAs<ShellSurface>(resource)->Minimize();
1598 } 1598 }
1599 1599
1600 void remote_surface_restore_DEPRECATED(wl_client* client, 1600 void remote_surface_restore_DEPRECATED(wl_client* client,
1601 wl_resource* resource) { 1601 wl_resource* resource) {
1602 GetUserDataAs<ShellSurface>(resource)->Restore(); 1602 GetUserDataAs<ShellSurface>(resource)->Restore();
1603 } 1603 }
1604 1604
1605 void remote_surface_pin_DEPRECATED(wl_client* client, wl_resource* resource) { 1605 void remote_surface_pin_DEPRECATED(wl_client* client, wl_resource* resource) {
1606 GetUserDataAs<ShellSurface>(resource)->SetPinned(true); 1606 GetUserDataAs<ShellSurface>(resource)->SetPinned(true, /* trusted */ false);
1607 } 1607 }
1608 1608
1609 void remote_surface_unpin_DEPRECATED(wl_client* client, wl_resource* resource) { 1609 void remote_surface_unpin_DEPRECATED(wl_client* client, wl_resource* resource) {
1610 GetUserDataAs<ShellSurface>(resource)->SetPinned(false); 1610 GetUserDataAs<ShellSurface>(resource)->SetPinned(false, /* trusted */ false);
1611 } 1611 }
1612 1612
1613 void remote_surface_unfullscreen_DEPRECATED(wl_client* client, 1613 void remote_surface_unfullscreen_DEPRECATED(wl_client* client,
1614 wl_resource* resource) { 1614 wl_resource* resource) {
1615 GetUserDataAs<ShellSurface>(resource)->SetFullscreen(false); 1615 GetUserDataAs<ShellSurface>(resource)->SetFullscreen(false);
1616 } 1616 }
1617 1617
1618 void remote_surface_set_rectangular_shadow_DEPRECATED(wl_client* client, 1618 void remote_surface_set_rectangular_shadow_DEPRECATED(wl_client* client,
1619 wl_resource* resource, 1619 wl_resource* resource,
1620 int32_t x, 1620 int32_t x,
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1655 GetUserDataAs<ShellSurface>(resource)->SetRectangularShadowBackgroundOpacity( 1655 GetUserDataAs<ShellSurface>(resource)->SetRectangularShadowBackgroundOpacity(
1656 wl_fixed_to_double(opacity)); 1656 wl_fixed_to_double(opacity));
1657 } 1657 }
1658 1658
1659 void remote_surface_activate_DEPRECATED(wl_client* client, 1659 void remote_surface_activate_DEPRECATED(wl_client* client,
1660 wl_resource* resource, 1660 wl_resource* resource,
1661 uint32_t serial) { 1661 uint32_t serial) {
1662 GetUserDataAs<ShellSurface>(resource)->Activate(); 1662 GetUserDataAs<ShellSurface>(resource)->Activate();
1663 } 1663 }
1664 1664
1665 void remote_surface_pin_with_trusted_flag_DEPRECATED(wl_client* client,
1666 wl_resource* resource,
1667 int32_t trusted) {
1668 GetUserDataAs<ShellSurface>(resource)->SetPinned(true, trusted);
1669 }
1670
1665 const struct zwp_remote_surface_v1_interface 1671 const struct zwp_remote_surface_v1_interface
1666 remote_surface_implementation_DEPRECATED = { 1672 remote_surface_implementation_DEPRECATED = {
1667 remote_surface_destroy_DEPRECATED, 1673 remote_surface_destroy_DEPRECATED,
1668 remote_surface_set_app_id_DEPRECATED, 1674 remote_surface_set_app_id_DEPRECATED,
1669 remote_surface_set_window_geometry_DEPRECATED, 1675 remote_surface_set_window_geometry_DEPRECATED,
1670 remote_surface_set_scale_DEPRECATED, 1676 remote_surface_set_scale_DEPRECATED,
1671 remote_surface_fullscreen_DEPRECATED, 1677 remote_surface_fullscreen_DEPRECATED,
1672 remote_surface_maximize_DEPRECATED, 1678 remote_surface_maximize_DEPRECATED,
1673 remote_surface_minimize_DEPRECATED, 1679 remote_surface_minimize_DEPRECATED,
1674 remote_surface_restore_DEPRECATED, 1680 remote_surface_restore_DEPRECATED,
1675 remote_surface_pin_DEPRECATED, 1681 remote_surface_pin_DEPRECATED,
1676 remote_surface_unpin_DEPRECATED, 1682 remote_surface_unpin_DEPRECATED,
1677 remote_surface_unfullscreen_DEPRECATED, 1683 remote_surface_unfullscreen_DEPRECATED,
1678 remote_surface_set_rectangular_shadow_DEPRECATED, 1684 remote_surface_set_rectangular_shadow_DEPRECATED,
1679 remote_surface_set_title_DEPRECATED, 1685 remote_surface_set_title_DEPRECATED,
1680 remote_surface_set_top_inset_DEPRECATED, 1686 remote_surface_set_top_inset_DEPRECATED,
1681 remote_surface_set_system_modal_DEPRECATED, 1687 remote_surface_set_system_modal_DEPRECATED,
1682 remote_surface_unset_system_modal_DEPRECATED, 1688 remote_surface_unset_system_modal_DEPRECATED,
1683 remote_surface_set_rectangular_shadow_background_opacity_DEPRECATED, 1689 remote_surface_set_rectangular_shadow_background_opacity_DEPRECATED,
1684 remote_surface_activate_DEPRECATED}; 1690 remote_surface_activate_DEPRECATED,
1691 remote_surface_pin_with_trusted_flag_DEPRECATED};
1685 1692
1686 //////////////////////////////////////////////////////////////////////////////// 1693 ////////////////////////////////////////////////////////////////////////////////
1687 // notification_surface_interface: 1694 // notification_surface_interface:
1688 1695
1689 void notification_surface_destroy(wl_client* client, wl_resource* resource) { 1696 void notification_surface_destroy(wl_client* client, wl_resource* resource) {
1690 wl_resource_destroy(resource); 1697 wl_resource_destroy(resource);
1691 } 1698 }
1692 1699
1693 const struct zcr_notification_surface_v1_interface 1700 const struct zcr_notification_surface_v1_interface
1694 notification_surface_implementation = {notification_surface_destroy}; 1701 notification_surface_implementation = {notification_surface_destroy};
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
1897 break; 1904 break;
1898 case ash::wm::WINDOW_STATE_TYPE_MAXIMIZED: 1905 case ash::wm::WINDOW_STATE_TYPE_MAXIMIZED:
1899 state_type = ZCR_REMOTE_SHELL_V1_STATE_TYPE_MAXIMIZED; 1906 state_type = ZCR_REMOTE_SHELL_V1_STATE_TYPE_MAXIMIZED;
1900 break; 1907 break;
1901 case ash::wm::WINDOW_STATE_TYPE_FULLSCREEN: 1908 case ash::wm::WINDOW_STATE_TYPE_FULLSCREEN:
1902 state_type = ZCR_REMOTE_SHELL_V1_STATE_TYPE_FULLSCREEN; 1909 state_type = ZCR_REMOTE_SHELL_V1_STATE_TYPE_FULLSCREEN;
1903 break; 1910 break;
1904 case ash::wm::WINDOW_STATE_TYPE_PINNED: 1911 case ash::wm::WINDOW_STATE_TYPE_PINNED:
1905 state_type = ZCR_REMOTE_SHELL_V1_STATE_TYPE_PINNED; 1912 state_type = ZCR_REMOTE_SHELL_V1_STATE_TYPE_PINNED;
1906 break; 1913 break;
1914 case ash::wm::WINDOW_STATE_TYPE_TRUSTED_PINNED:
1915 state_type = ZWP_REMOTE_SHELL_V1_STATE_TYPE_TRUSTED_PINNED;
1916 break;
1907 default: 1917 default:
1908 break; 1918 break;
1909 } 1919 }
1910 1920
1911 zcr_remote_surface_v1_send_state_type_changed(resource, state_type); 1921 zcr_remote_surface_v1_send_state_type_changed(resource, state_type);
1912 wl_client_flush(wl_resource_get_client(resource)); 1922 wl_client_flush(wl_resource_get_client(resource));
1913 } 1923 }
1914 1924
1915 void remote_shell_get_remote_surface(wl_client* client, 1925 void remote_shell_get_remote_surface(wl_client* client,
1916 wl_resource* resource, 1926 wl_resource* resource,
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
2214 zwp_remote_surface_v1_send_unset_minimized(resource); 2224 zwp_remote_surface_v1_send_unset_minimized(resource);
2215 break; 2225 break;
2216 case ash::wm::WINDOW_STATE_TYPE_MAXIMIZED: 2226 case ash::wm::WINDOW_STATE_TYPE_MAXIMIZED:
2217 if (wl_resource_get_version(resource) >= 2) 2227 if (wl_resource_get_version(resource) >= 2)
2218 zwp_remote_surface_v1_send_unset_maximized(resource); 2228 zwp_remote_surface_v1_send_unset_maximized(resource);
2219 break; 2229 break;
2220 case ash::wm::WINDOW_STATE_TYPE_FULLSCREEN: 2230 case ash::wm::WINDOW_STATE_TYPE_FULLSCREEN:
2221 zwp_remote_surface_v1_send_unset_fullscreen(resource); 2231 zwp_remote_surface_v1_send_unset_fullscreen(resource);
2222 break; 2232 break;
2223 case ash::wm::WINDOW_STATE_TYPE_PINNED: 2233 case ash::wm::WINDOW_STATE_TYPE_PINNED:
2234 case ash::wm::WINDOW_STATE_TYPE_TRUSTED_PINNED:
2224 if (wl_resource_get_version(resource) >= 3) 2235 if (wl_resource_get_version(resource) >= 3)
2225 zwp_remote_surface_v1_send_unset_pinned(resource); 2236 zwp_remote_surface_v1_send_unset_pinned(resource);
2226 break; 2237 break;
2227 default: 2238 default:
2228 break; 2239 break;
2229 } 2240 }
2230 2241
2231 uint32_t state_type = ZWP_REMOTE_SHELL_V1_STATE_TYPE_NORMAL; 2242 uint32_t state_type = ZWP_REMOTE_SHELL_V1_STATE_TYPE_NORMAL;
2232 switch (new_state_type) { 2243 switch (new_state_type) {
2233 case ash::wm::WINDOW_STATE_TYPE_MINIMIZED: 2244 case ash::wm::WINDOW_STATE_TYPE_MINIMIZED:
2234 state_type = ZWP_REMOTE_SHELL_V1_STATE_TYPE_MINIMIZED; 2245 state_type = ZWP_REMOTE_SHELL_V1_STATE_TYPE_MINIMIZED;
2235 if (wl_resource_get_version(resource) >= 2) 2246 if (wl_resource_get_version(resource) >= 2)
2236 zwp_remote_surface_v1_send_set_minimized(resource); 2247 zwp_remote_surface_v1_send_set_minimized(resource);
2237 break; 2248 break;
2238 case ash::wm::WINDOW_STATE_TYPE_MAXIMIZED: 2249 case ash::wm::WINDOW_STATE_TYPE_MAXIMIZED:
2239 state_type = ZWP_REMOTE_SHELL_V1_STATE_TYPE_MAXIMIZED; 2250 state_type = ZWP_REMOTE_SHELL_V1_STATE_TYPE_MAXIMIZED;
2240 if (wl_resource_get_version(resource) >= 2) 2251 if (wl_resource_get_version(resource) >= 2)
2241 zwp_remote_surface_v1_send_set_maximized(resource); 2252 zwp_remote_surface_v1_send_set_maximized(resource);
2242 break; 2253 break;
2243 case ash::wm::WINDOW_STATE_TYPE_FULLSCREEN: 2254 case ash::wm::WINDOW_STATE_TYPE_FULLSCREEN:
2244 state_type = ZWP_REMOTE_SHELL_V1_STATE_TYPE_FULLSCREEN; 2255 state_type = ZWP_REMOTE_SHELL_V1_STATE_TYPE_FULLSCREEN;
2245 zwp_remote_surface_v1_send_set_fullscreen(resource); 2256 zwp_remote_surface_v1_send_set_fullscreen(resource);
2246 break; 2257 break;
2247 case ash::wm::WINDOW_STATE_TYPE_PINNED: 2258 case ash::wm::WINDOW_STATE_TYPE_PINNED:
2248 state_type = ZWP_REMOTE_SHELL_V1_STATE_TYPE_PINNED; 2259 state_type = ZWP_REMOTE_SHELL_V1_STATE_TYPE_PINNED;
2249 if (wl_resource_get_version(resource) >= 3) 2260 if (wl_resource_get_version(resource) >= 3)
2250 zwp_remote_surface_v1_send_set_pinned(resource); 2261 zwp_remote_surface_v1_send_set_pinned(resource);
2251 break; 2262 break;
2263 case ash::wm::WINDOW_STATE_TYPE_TRUSTED_PINNED:
2264 state_type = ZWP_REMOTE_SHELL_V1_STATE_TYPE_TRUSTED_PINNED;
2265 if (wl_resource_get_version(resource) >= 3)
2266 zwp_remote_surface_v1_send_set_pinned(resource);
2267 break;
2252 default: 2268 default:
2253 break; 2269 break;
2254 } 2270 }
2255 2271
2256 if (wl_resource_get_version(resource) >= 7) 2272 if (wl_resource_get_version(resource) >= 7)
2257 zwp_remote_surface_v1_send_state_type_changed(resource, state_type); 2273 zwp_remote_surface_v1_send_state_type_changed(resource, state_type);
2258 2274
2259 wl_client_flush(wl_resource_get_client(resource)); 2275 wl_client_flush(wl_resource_get_client(resource));
2260 } 2276 }
2261 2277
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
2319 &notification_surface_implementation_DEPRECATED, 2335 &notification_surface_implementation_DEPRECATED,
2320 std::move(notification_surface)); 2336 std::move(notification_surface));
2321 } 2337 }
2322 2338
2323 const struct zwp_remote_shell_v1_interface 2339 const struct zwp_remote_shell_v1_interface
2324 remote_shell_implementation_DEPRECATED = { 2340 remote_shell_implementation_DEPRECATED = {
2325 remote_shell_destroy_DEPRECATED, 2341 remote_shell_destroy_DEPRECATED,
2326 remote_shell_get_remote_surface_DEPRECATED, 2342 remote_shell_get_remote_surface_DEPRECATED,
2327 remote_shell_get_notification_surface_DEPRECATED}; 2343 remote_shell_get_notification_surface_DEPRECATED};
2328 2344
2329 const uint32_t remote_shell_version_DEPRECATED = 10; 2345 const uint32_t remote_shell_version_DEPRECATED = 11;
2330 2346
2331 void bind_remote_shell_DEPRECATED(wl_client* client, 2347 void bind_remote_shell_DEPRECATED(wl_client* client,
2332 void* data, 2348 void* data,
2333 uint32_t version, 2349 uint32_t version,
2334 uint32_t id) { 2350 uint32_t id) {
2335 wl_resource* resource = wl_resource_create( 2351 wl_resource* resource = wl_resource_create(
2336 client, &zwp_remote_shell_v1_interface, 2352 client, &zwp_remote_shell_v1_interface,
2337 std::min(version, remote_shell_version_DEPRECATED), id); 2353 std::min(version, remote_shell_version_DEPRECATED), id);
2338 2354
2339 SetImplementation(resource, &remote_shell_implementation_DEPRECATED, 2355 SetImplementation(resource, &remote_shell_implementation_DEPRECATED,
(...skipping 1634 matching lines...) Expand 10 before | Expand all | Expand 10 after
3974 DCHECK(event_loop); 3990 DCHECK(event_loop);
3975 wl_event_loop_dispatch(event_loop, timeout.InMilliseconds()); 3991 wl_event_loop_dispatch(event_loop, timeout.InMilliseconds());
3976 } 3992 }
3977 3993
3978 void Server::Flush() { 3994 void Server::Flush() {
3979 wl_display_flush_clients(wl_display_.get()); 3995 wl_display_flush_clients(wl_display_.get());
3980 } 3996 }
3981 3997
3982 } // namespace wayland 3998 } // namespace wayland
3983 } // namespace exo 3999 } // namespace exo
OLDNEW
« no previous file with comments | « components/exo/shell_surface_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698