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

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: Add comments. 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
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 1458 matching lines...) Expand 10 before | Expand all | Expand 10 after
1469 1469
1470 void remote_surface_minimize(wl_client* client, wl_resource* resource) { 1470 void remote_surface_minimize(wl_client* client, wl_resource* resource) {
1471 GetUserDataAs<ShellSurface>(resource)->Minimize(); 1471 GetUserDataAs<ShellSurface>(resource)->Minimize();
1472 } 1472 }
1473 1473
1474 void remote_surface_restore(wl_client* client, wl_resource* resource) { 1474 void remote_surface_restore(wl_client* client, wl_resource* resource) {
1475 GetUserDataAs<ShellSurface>(resource)->Restore(); 1475 GetUserDataAs<ShellSurface>(resource)->Restore();
1476 } 1476 }
1477 1477
1478 void remote_surface_pin(wl_client* client, wl_resource* resource) { 1478 void remote_surface_pin(wl_client* client, wl_resource* resource) {
1479 GetUserDataAs<ShellSurface>(resource)->SetPinned(true); 1479 GetUserDataAs<ShellSurface>(resource)->SetPinned(true, /* trusted */ false);
1480 } 1480 }
1481 1481
1482 void remote_surface_unpin(wl_client* client, wl_resource* resource) { 1482 void remote_surface_unpin(wl_client* client, wl_resource* resource) {
1483 GetUserDataAs<ShellSurface>(resource)->SetPinned(false); 1483 GetUserDataAs<ShellSurface>(resource)->SetPinned(false, /* trusted */ false);
1484 } 1484 }
1485 1485
1486 void remote_surface_unfullscreen(wl_client* client, wl_resource* resource) { 1486 void remote_surface_unfullscreen(wl_client* client, wl_resource* resource) {
1487 GetUserDataAs<ShellSurface>(resource)->SetFullscreen(false); 1487 GetUserDataAs<ShellSurface>(resource)->SetFullscreen(false);
1488 } 1488 }
1489 1489
1490 void remote_surface_set_rectangular_shadow(wl_client* client, 1490 void remote_surface_set_rectangular_shadow(wl_client* client,
1491 wl_resource* resource, 1491 wl_resource* resource,
1492 int32_t x, 1492 int32_t x,
1493 int32_t y, 1493 int32_t y,
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1526 GetUserDataAs<ShellSurface>(resource)->SetRectangularShadowBackgroundOpacity( 1526 GetUserDataAs<ShellSurface>(resource)->SetRectangularShadowBackgroundOpacity(
1527 wl_fixed_to_double(opacity)); 1527 wl_fixed_to_double(opacity));
1528 } 1528 }
1529 1529
1530 void remote_surface_activate(wl_client* client, 1530 void remote_surface_activate(wl_client* client,
1531 wl_resource* resource, 1531 wl_resource* resource,
1532 uint32_t serial) { 1532 uint32_t serial) {
1533 GetUserDataAs<ShellSurface>(resource)->Activate(); 1533 GetUserDataAs<ShellSurface>(resource)->Activate();
1534 } 1534 }
1535 1535
1536 void remote_surface_pin_with_trusted_flag(wl_client* client,
1537 wl_resource* resource,
1538 int32_t trusted) {
1539 GetUserDataAs<ShellSurface>(resource)->SetPinned(true, trusted);
1540 }
1541
1536 const struct zwp_remote_surface_v1_interface remote_surface_implementation = { 1542 const struct zwp_remote_surface_v1_interface remote_surface_implementation = {
1537 remote_surface_destroy, 1543 remote_surface_destroy,
1538 remote_surface_set_app_id, 1544 remote_surface_set_app_id,
1539 remote_surface_set_window_geometry, 1545 remote_surface_set_window_geometry,
1540 remote_surface_set_scale, 1546 remote_surface_set_scale,
1541 remote_surface_fullscreen, 1547 remote_surface_fullscreen,
1542 remote_surface_maximize, 1548 remote_surface_maximize,
1543 remote_surface_minimize, 1549 remote_surface_minimize,
1544 remote_surface_restore, 1550 remote_surface_restore,
1545 remote_surface_pin, 1551 remote_surface_pin,
1546 remote_surface_unpin, 1552 remote_surface_unpin,
1547 remote_surface_unfullscreen, 1553 remote_surface_unfullscreen,
1548 remote_surface_set_rectangular_shadow, 1554 remote_surface_set_rectangular_shadow,
1549 remote_surface_set_title, 1555 remote_surface_set_title,
1550 remote_surface_set_top_inset, 1556 remote_surface_set_top_inset,
1551 remote_surface_set_system_modal, 1557 remote_surface_set_system_modal,
1552 remote_surface_unset_system_modal, 1558 remote_surface_unset_system_modal,
1553 remote_surface_set_rectangular_shadow_background_opacity, 1559 remote_surface_set_rectangular_shadow_background_opacity,
1554 remote_surface_activate}; 1560 remote_surface_activate,
1561 remote_surface_pin_with_trusted_flag};
1555 1562
1556 //////////////////////////////////////////////////////////////////////////////// 1563 ////////////////////////////////////////////////////////////////////////////////
1557 // notification_surface_interface: 1564 // notification_surface_interface:
1558 1565
1559 void notification_surface_destroy(wl_client* client, wl_resource* resource) { 1566 void notification_surface_destroy(wl_client* client, wl_resource* resource) {
1560 wl_resource_destroy(resource); 1567 wl_resource_destroy(resource);
1561 } 1568 }
1562 1569
1563 const struct zwp_notification_surface_v1_interface 1570 const struct zwp_notification_surface_v1_interface
1564 notification_surface_implementation = {notification_surface_destroy}; 1571 notification_surface_implementation = {notification_surface_destroy};
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
1789 zwp_remote_surface_v1_send_unset_minimized(resource); 1796 zwp_remote_surface_v1_send_unset_minimized(resource);
1790 break; 1797 break;
1791 case ash::wm::WINDOW_STATE_TYPE_MAXIMIZED: 1798 case ash::wm::WINDOW_STATE_TYPE_MAXIMIZED:
1792 if (wl_resource_get_version(resource) >= 2) 1799 if (wl_resource_get_version(resource) >= 2)
1793 zwp_remote_surface_v1_send_unset_maximized(resource); 1800 zwp_remote_surface_v1_send_unset_maximized(resource);
1794 break; 1801 break;
1795 case ash::wm::WINDOW_STATE_TYPE_FULLSCREEN: 1802 case ash::wm::WINDOW_STATE_TYPE_FULLSCREEN:
1796 zwp_remote_surface_v1_send_unset_fullscreen(resource); 1803 zwp_remote_surface_v1_send_unset_fullscreen(resource);
1797 break; 1804 break;
1798 case ash::wm::WINDOW_STATE_TYPE_PINNED: 1805 case ash::wm::WINDOW_STATE_TYPE_PINNED:
1806 case ash::wm::WINDOW_STATE_TYPE_TRUSTED_PINNED:
1799 if (wl_resource_get_version(resource) >= 3) 1807 if (wl_resource_get_version(resource) >= 3)
1800 zwp_remote_surface_v1_send_unset_pinned(resource); 1808 zwp_remote_surface_v1_send_unset_pinned(resource);
1801 break; 1809 break;
1802 default: 1810 default:
1803 break; 1811 break;
1804 } 1812 }
1805 1813
1806 uint32_t state_type = ZWP_REMOTE_SHELL_V1_STATE_TYPE_NORMAL; 1814 uint32_t state_type = ZWP_REMOTE_SHELL_V1_STATE_TYPE_NORMAL;
1807 switch (new_state_type) { 1815 switch (new_state_type) {
1808 case ash::wm::WINDOW_STATE_TYPE_MINIMIZED: 1816 case ash::wm::WINDOW_STATE_TYPE_MINIMIZED:
1809 state_type = ZWP_REMOTE_SHELL_V1_STATE_TYPE_MINIMIZED; 1817 state_type = ZWP_REMOTE_SHELL_V1_STATE_TYPE_MINIMIZED;
1810 if (wl_resource_get_version(resource) >= 2) 1818 if (wl_resource_get_version(resource) >= 2)
1811 zwp_remote_surface_v1_send_set_minimized(resource); 1819 zwp_remote_surface_v1_send_set_minimized(resource);
1812 break; 1820 break;
1813 case ash::wm::WINDOW_STATE_TYPE_MAXIMIZED: 1821 case ash::wm::WINDOW_STATE_TYPE_MAXIMIZED:
1814 state_type = ZWP_REMOTE_SHELL_V1_STATE_TYPE_MAXIMIZED; 1822 state_type = ZWP_REMOTE_SHELL_V1_STATE_TYPE_MAXIMIZED;
1815 if (wl_resource_get_version(resource) >= 2) 1823 if (wl_resource_get_version(resource) >= 2)
1816 zwp_remote_surface_v1_send_set_maximized(resource); 1824 zwp_remote_surface_v1_send_set_maximized(resource);
1817 break; 1825 break;
1818 case ash::wm::WINDOW_STATE_TYPE_FULLSCREEN: 1826 case ash::wm::WINDOW_STATE_TYPE_FULLSCREEN:
1819 state_type = ZWP_REMOTE_SHELL_V1_STATE_TYPE_FULLSCREEN; 1827 state_type = ZWP_REMOTE_SHELL_V1_STATE_TYPE_FULLSCREEN;
1820 zwp_remote_surface_v1_send_set_fullscreen(resource); 1828 zwp_remote_surface_v1_send_set_fullscreen(resource);
1821 break; 1829 break;
1822 case ash::wm::WINDOW_STATE_TYPE_PINNED: 1830 case ash::wm::WINDOW_STATE_TYPE_PINNED:
1823 state_type = ZWP_REMOTE_SHELL_V1_STATE_TYPE_PINNED; 1831 state_type = ZWP_REMOTE_SHELL_V1_STATE_TYPE_PINNED;
1824 if (wl_resource_get_version(resource) >= 3) 1832 if (wl_resource_get_version(resource) >= 3)
1825 zwp_remote_surface_v1_send_set_pinned(resource); 1833 zwp_remote_surface_v1_send_set_pinned(resource);
1826 break; 1834 break;
1835 case ash::wm::WINDOW_STATE_TYPE_TRUSTED_PINNED:
1836 state_type = ZWP_REMOTE_SHELL_V1_STATE_TYPE_TRUSTED_PINNED;
1837 if (wl_resource_get_version(resource) >= 3)
1838 zwp_remote_surface_v1_send_set_pinned(resource);
1839 break;
1827 default: 1840 default:
1828 break; 1841 break;
1829 } 1842 }
1830 1843
1831 if (wl_resource_get_version(resource) >= 7) 1844 if (wl_resource_get_version(resource) >= 7)
1832 zwp_remote_surface_v1_send_state_type_changed(resource, state_type); 1845 zwp_remote_surface_v1_send_state_type_changed(resource, state_type);
hirono 2016/09/05 23:27:38 Only accelerator keys behave differently for pinni
1833 1846
1834 wl_client_flush(wl_resource_get_client(resource)); 1847 wl_client_flush(wl_resource_get_client(resource));
1835 } 1848 }
1836 1849
1837 void remote_shell_get_remote_surface(wl_client* client, 1850 void remote_shell_get_remote_surface(wl_client* client,
1838 wl_resource* resource, 1851 wl_resource* resource,
1839 uint32_t id, 1852 uint32_t id,
1840 wl_resource* surface, 1853 wl_resource* surface,
1841 uint32_t container) { 1854 uint32_t container) {
1842 std::unique_ptr<ShellSurface> shell_surface = 1855 std::unique_ptr<ShellSurface> shell_surface =
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1889 wl_resource_get_version(resource), id); 1902 wl_resource_get_version(resource), id);
1890 SetImplementation(notification_surface_resource, 1903 SetImplementation(notification_surface_resource,
1891 &notification_surface_implementation, 1904 &notification_surface_implementation,
1892 std::move(notification_surface)); 1905 std::move(notification_surface));
1893 } 1906 }
1894 1907
1895 const struct zwp_remote_shell_v1_interface remote_shell_implementation = { 1908 const struct zwp_remote_shell_v1_interface remote_shell_implementation = {
1896 remote_shell_destroy, remote_shell_get_remote_surface, 1909 remote_shell_destroy, remote_shell_get_remote_surface,
1897 remote_shell_get_notification_surface}; 1910 remote_shell_get_notification_surface};
1898 1911
1899 const uint32_t remote_shell_version = 10; 1912 const uint32_t remote_shell_version = 11;
1900 1913
1901 void bind_remote_shell(wl_client* client, 1914 void bind_remote_shell(wl_client* client,
1902 void* data, 1915 void* data,
1903 uint32_t version, 1916 uint32_t version,
1904 uint32_t id) { 1917 uint32_t id) {
1905 wl_resource* resource = 1918 wl_resource* resource =
1906 wl_resource_create(client, &zwp_remote_shell_v1_interface, 1919 wl_resource_create(client, &zwp_remote_shell_v1_interface,
1907 std::min(version, remote_shell_version), id); 1920 std::min(version, remote_shell_version), id);
1908 1921
1909 SetImplementation(resource, &remote_shell_implementation, 1922 SetImplementation(resource, &remote_shell_implementation,
(...skipping 1218 matching lines...) Expand 10 before | Expand all | Expand 10 after
3128 DCHECK(event_loop); 3141 DCHECK(event_loop);
3129 wl_event_loop_dispatch(event_loop, timeout.InMilliseconds()); 3142 wl_event_loop_dispatch(event_loop, timeout.InMilliseconds());
3130 } 3143 }
3131 3144
3132 void Server::Flush() { 3145 void Server::Flush() {
3133 wl_display_flush_clients(wl_display_.get()); 3146 wl_display_flush_clients(wl_display_.get());
3134 } 3147 }
3135 3148
3136 } // namespace wayland 3149 } // namespace wayland
3137 } // namespace exo 3150 } // namespace exo
OLDNEW
« ash/common/wm/default_state.cc ('K') | « components/exo/shell_surface_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698