Merge lp:~azzar1/unity/fix-maximimize-button-if-vert-horz into lp:unity

Proposed by Andrea Azzarone
Status: Superseded
Proposed branch: lp:~azzar1/unity/fix-maximimize-button-if-vert-horz
Merge into: lp:unity
Diff against target: 88 lines (+20/-4)
4 files modified
decorations/DecoratedWindow.cpp (+9/-1)
decorations/DecorationsPriv.h (+2/-0)
decorations/DecorationsWindowButton.cpp (+8/-1)
decorations/DecorationsWindowButton.h (+1/-2)
To merge this branch: bzr merge lp:~azzar1/unity/fix-maximimize-button-if-vert-horz
Reviewer Review Type Date Requested Status
Unity Team Pending
Review via email: mp+301635@code.launchpad.net

This proposal has been superseded by a proposal from 2016-08-02.

Commit message

Display unmaximize button if the window is vertically or horizontally maximized.

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'decorations/DecoratedWindow.cpp'
--- decorations/DecoratedWindow.cpp 2016-07-27 10:17:42 +0000
+++ decorations/DecoratedWindow.cpp 2016-08-01 11:02:01 +0000
@@ -118,6 +118,10 @@
118 else118 else
119 Undecorate();119 Undecorate();
120120
121 auto const& maximize_button = maximize_button_.lock();
122 if (maximize_button)
123 maximize_button->UpdateTexture();
124
121 last_mwm_decor_ = win_->mwmDecor();125 last_mwm_decor_ = win_->mwmDecor();
122 last_actions_ = win_->actions();126 last_actions_ = win_->actions();
123}127}
@@ -410,7 +414,11 @@
410 top_layout_->Append(std::make_shared<WindowButton>(win_, WindowButtonType::MINIMIZE));414 top_layout_->Append(std::make_shared<WindowButton>(win_, WindowButtonType::MINIMIZE));
411415
412 if (win_->actions() & (CompWindowActionMaximizeHorzMask|CompWindowActionMaximizeVertMask))416 if (win_->actions() & (CompWindowActionMaximizeHorzMask|CompWindowActionMaximizeVertMask))
413 top_layout_->Append(std::make_shared<WindowButton>(win_, WindowButtonType::MAXIMIZE));417 {
418 auto maximize_button = std::make_shared<WindowButton>(win_, WindowButtonType::MAXIMIZE);
419 maximize_button_ = maximize_button;
420 top_layout_->Append(maximize_button);
421 }
414422
415 auto title = std::make_shared<Title>();423 auto title = std::make_shared<Title>();
416 title->text = last_title_.empty() ? WindowManager::Default().GetWindowName(win_->id()) : last_title_;424 title->text = last_title_.empty() ? WindowManager::Default().GetWindowName(win_->id()) : last_title_;
417425
=== modified file 'decorations/DecorationsPriv.h'
--- decorations/DecorationsPriv.h 2016-07-26 11:33:50 +0000
+++ decorations/DecorationsPriv.h 2016-08-01 11:02:01 +0000
@@ -49,6 +49,7 @@
49class MenuLayout;49class MenuLayout;
50class SlidingLayout;50class SlidingLayout;
51class ForceQuitDialog;51class ForceQuitDialog;
52class WindowButton;
5253
53namespace cu = compiz_utils;54namespace cu = compiz_utils;
5455
@@ -164,6 +165,7 @@
164 std::shared_ptr<ForceQuitDialog> force_quit_;165 std::shared_ptr<ForceQuitDialog> force_quit_;
165 InputMixer::Ptr input_mixer_;166 InputMixer::Ptr input_mixer_;
166 Layout::Ptr top_layout_;167 Layout::Ptr top_layout_;
168 uweak_ptr<WindowButton> maximize_button_;
167 uweak_ptr<MenuLayout> menus_;169 uweak_ptr<MenuLayout> menus_;
168 uweak_ptr<Title> title_;170 uweak_ptr<Title> title_;
169 uweak_ptr<SlidingLayout> sliding_layout_;171 uweak_ptr<SlidingLayout> sliding_layout_;
170172
=== modified file 'decorations/DecorationsWindowButton.cpp'
--- decorations/DecorationsWindowButton.cpp 2014-02-27 07:11:16 +0000
+++ decorations/DecorationsWindowButton.cpp 2016-08-01 11:02:01 +0000
@@ -44,7 +44,14 @@
4444
45void WindowButton::UpdateTexture()45void WindowButton::UpdateTexture()
46{46{
47 SetTexture(DataPool::Get()->ButtonTexture(scale(), type_, GetCurrentState()));47 auto type = type_;
48
49 if (type == WindowButtonType::MAXIMIZE &&
50 (win_->state() & CompWindowStateMaximizedVertMask ||
51 win_->state() & CompWindowStateMaximizedHorzMask))
52 type = WindowButtonType::UNMAXIMIZE;
53
54 SetTexture(DataPool::Get()->ButtonTexture(scale(), type, GetCurrentState()));
48}55}
4956
50WidgetState WindowButton::GetCurrentState() const57WidgetState WindowButton::GetCurrentState() const
5158
=== modified file 'decorations/DecorationsWindowButton.h'
--- decorations/DecorationsWindowButton.h 2014-02-19 00:03:24 +0000
+++ decorations/DecorationsWindowButton.h 2016-08-01 11:02:01 +0000
@@ -34,6 +34,7 @@
34 WindowButton(CompWindow*, WindowButtonType type);34 WindowButton(CompWindow*, WindowButtonType type);
3535
36 WidgetState GetCurrentState() const;36 WidgetState GetCurrentState() const;
37 void UpdateTexture();
3738
38protected:39protected:
39 void ButtonDownEvent(CompPoint const&, unsigned button, Time) override;40 void ButtonDownEvent(CompPoint const&, unsigned button, Time) override;
@@ -44,8 +45,6 @@
44 void AddProperties(debug::IntrospectionData&);45 void AddProperties(debug::IntrospectionData&);
4546
46private:47private:
47 void UpdateTexture();
48
49 WindowButtonType type_;48 WindowButtonType type_;
50 bool pressed_;49 bool pressed_;
51 bool was_pressed_;50 bool was_pressed_;