Changeset View
Changeset View
Standalone View
Standalone View
shell_client.cpp
Show First 20 Lines • Show All 938 Lines • ▼ Show 20 Line(s) | |||||
939 | { | 939 | { | ||
940 | if (!isFullScreen() && !set) | 940 | if (!isFullScreen() && !set) | ||
941 | return; | 941 | return; | ||
942 | if (user && !userCanSetFullScreen()) | 942 | if (user && !userCanSetFullScreen()) | ||
943 | return; | 943 | return; | ||
944 | set = rules()->checkFullScreen(set && !isSpecialWindow()); | 944 | set = rules()->checkFullScreen(set && !isSpecialWindow()); | ||
945 | setShade(ShadeNone); | 945 | setShade(ShadeNone); | ||
946 | bool was_fs = isFullScreen(); | 946 | bool was_fs = isFullScreen(); | ||
947 | if (was_fs) | 947 | if (was_fs) { | ||
948 | workspace()->updateFocusMousePosition(Cursor::pos()); // may cause leave event | 948 | workspace()->updateFocusMousePosition(Cursor::pos()); // may cause leave event | ||
949 | else | 949 | } else { | ||
950 | // in shell surface, maximise mode and fullscreen are exclusive | ||||
951 | // fullscreen->toplevel should restore the state we had before maximising | ||||
952 | if (m_shellSurface && m_maximizeMode == MaximizeMode::MaximizeFull) { | ||||
953 | m_geomFsRestore = m_geomMaximizeRestore; | ||||
954 | } else { | ||||
950 | m_geomFsRestore = geometry(); | 955 | m_geomFsRestore = geometry(); | ||
956 | } | ||||
957 | } | ||||
951 | m_fullScreen = set; | 958 | m_fullScreen = set; | ||
952 | if (was_fs == isFullScreen()) | 959 | if (was_fs == isFullScreen()) | ||
953 | return; | 960 | return; | ||
954 | if (set) { | 961 | if (set) { | ||
955 | untab(); | 962 | untab(); | ||
956 | workspace()->raiseClient(this); | 963 | workspace()->raiseClient(this); | ||
957 | } | 964 | } | ||
958 | RequestGeometryBlocker requestBlocker(this); | 965 | RequestGeometryBlocker requestBlocker(this); | ||
▲ Show 20 Lines • Show All 993 Lines • Show Last 20 Lines |