Changeset View
Changeset View
Standalone View
Standalone View
shell_client.cpp
Show First 20 Lines • Show All 822 Lines • ▼ Show 20 Line(s) | 818 | { | |||
---|---|---|---|---|---|
823 | if (!isResizable()) { | 823 | if (!isResizable()) { | ||
824 | return; | 824 | return; | ||
825 | } | 825 | } | ||
826 | 826 | | |||
827 | const QRect clientArea = isElectricBorderMaximizing() ? | 827 | const QRect clientArea = isElectricBorderMaximizing() ? | ||
828 | workspace()->clientArea(MaximizeArea, Cursor::pos(), desktop()) : | 828 | workspace()->clientArea(MaximizeArea, Cursor::pos(), desktop()) : | ||
829 | workspace()->clientArea(MaximizeArea, this); | 829 | workspace()->clientArea(MaximizeArea, this); | ||
830 | 830 | | |||
831 | MaximizeMode oldMode = m_requestedMaximizeMode; | 831 | const MaximizeMode oldMode = m_requestedMaximizeMode; | ||
832 | const QRect oldGeometry = geometry(); | ||||
833 | | ||||
832 | StackingUpdatesBlocker blocker(workspace()); | 834 | StackingUpdatesBlocker blocker(workspace()); | ||
833 | RequestGeometryBlocker geometryBlocker(this); | 835 | RequestGeometryBlocker geometryBlocker(this); | ||
834 | // 'adjust == true' means to update the size only, e.g. after changing workspace size | 836 | // 'adjust == true' means to update the size only, e.g. after changing workspace size | ||
835 | if (!adjust) { | 837 | if (!adjust) { | ||
836 | if (vertical) | 838 | if (vertical) | ||
837 | m_requestedMaximizeMode = MaximizeMode(m_requestedMaximizeMode ^ MaximizeVertical); | 839 | m_requestedMaximizeMode = MaximizeMode(m_requestedMaximizeMode ^ MaximizeVertical); | ||
838 | if (horizontal) | 840 | if (horizontal) | ||
839 | m_requestedMaximizeMode = MaximizeMode(m_requestedMaximizeMode ^ MaximizeHorizontal); | 841 | m_requestedMaximizeMode = MaximizeMode(m_requestedMaximizeMode ^ MaximizeHorizontal); | ||
Show All 36 Lines | 877 | } else if ((oldMode == MaximizeVertical && m_requestedMaximizeMode == MaximizeRestore) || | |||
876 | (oldMode == MaximizeFull && m_requestedMaximizeMode == MaximizeHorizontal)) { | 878 | (oldMode == MaximizeFull && m_requestedMaximizeMode == MaximizeHorizontal)) { | ||
877 | // Modifying geometry of a tiled window | 879 | // Modifying geometry of a tiled window | ||
878 | updateQuickTileMode(QuickTileFlag::None); // Exit quick tile mode without restoring geometry | 880 | updateQuickTileMode(QuickTileFlag::None); // Exit quick tile mode without restoring geometry | ||
879 | } | 881 | } | ||
880 | } | 882 | } | ||
881 | 883 | | |||
882 | // TODO: check rules | 884 | // TODO: check rules | ||
883 | if (m_requestedMaximizeMode == MaximizeFull) { | 885 | if (m_requestedMaximizeMode == MaximizeFull) { | ||
884 | m_geomMaximizeRestore = geometry(); | 886 | m_geomMaximizeRestore = oldGeometry; | ||
885 | // TODO: Client has more checks | 887 | // TODO: Client has more checks | ||
886 | if (options->electricBorderMaximize()) { | 888 | if (options->electricBorderMaximize()) { | ||
887 | updateQuickTileMode(QuickTileFlag::Maximize); | 889 | updateQuickTileMode(QuickTileFlag::Maximize); | ||
888 | } else { | 890 | } else { | ||
889 | updateQuickTileMode(QuickTileFlag::None); | 891 | updateQuickTileMode(QuickTileFlag::None); | ||
890 | } | 892 | } | ||
891 | if (quickTileMode() != oldQuickTileMode) { | 893 | if (quickTileMode() != oldQuickTileMode) { | ||
892 | emit quickTileModeChanged(); | 894 | emit quickTileModeChanged(); | ||
▲ Show 20 Lines • Show All 1053 Lines • Show Last 20 Lines |