[geary/wip/743960-split-header-2: 2/8] Use composer headerbar for main window when composing new messages
- From: Robert Schroll <rschroll src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [geary/wip/743960-split-header-2: 2/8] Use composer headerbar for main window when composing new messages
- Date: Sun, 22 Feb 2015 04:57:47 +0000 (UTC)
commit 8492a05b23747a7e739a36593e131ccdfa9d7a2b
Author: Robert Schroll <rschroll gmail com>
Date: Wed Feb 11 01:47:42 2015 -0500
Use composer headerbar for main window when composing new messages
src/client/components/main-toolbar.vala | 14 ++++++++++++++
src/client/components/main-window.vala | 9 ++++++---
src/client/composer/composer-box.vala | 9 +++++++++
src/client/composer/composer-window.vala | 3 ++-
4 files changed, 31 insertions(+), 4 deletions(-)
---
diff --git a/src/client/components/main-toolbar.vala b/src/client/components/main-toolbar.vala
index 1e49c40..79c5563 100644
--- a/src/client/components/main-toolbar.vala
+++ b/src/client/components/main-toolbar.vala
@@ -170,6 +170,20 @@ public class MainToolbar : Gtk.Box {
search_entry.placeholder_text = placeholder;
}
+ public void set_conversation_header(Gtk.Widget header) {
+ conversation_header.hide();
+ header.get_style_context().add_class("titlebar");
+ header.get_style_context().add_class("geary-titlebar-right");
+ pack_start(header, true, true);
+ }
+
+ public void remove_conversation_header(Gtk.Widget header) {
+ remove(header);
+ header.get_style_context().remove_class("titlebar");
+ header.get_style_context().remove_class("geary-titlebar-right");
+ conversation_header.show();
+ }
+
private void on_search_entry_changed() {
search_text_changed(search_entry.text);
// Enable/disable clear button.
diff --git a/src/client/components/main-window.vala b/src/client/components/main-window.vala
index 1cce29d..38b9067 100644
--- a/src/client/components/main-window.vala
+++ b/src/client/components/main-window.vala
@@ -157,9 +157,12 @@ public class MainWindow : Gtk.ApplicationWindow {
border-left-width: 0px;
}
ComposerBox {
- border: 16px solid #ccc;
- box-shadow: 0 0 0 1px rgba(0,0,0,0.4) inset;
- padding: 1px;
+ border-left-width: 0px;
+ border-right-width: 0px;
+ border-bottom-width: 0px;
+ }
+ ComposerBox.full-pane {
+ border-top-width: 0px;
}
ComposerEmbed GtkHeaderBar,
ComposerBox GtkHeaderBar {
diff --git a/src/client/composer/composer-box.vala b/src/client/composer/composer-box.vala
index a5dfc38..3fc423c 100644
--- a/src/client/composer/composer-box.vala
+++ b/src/client/composer/composer-box.vala
@@ -27,6 +27,11 @@ public class ComposerBox : Gtk.Frame, ComposerContainer {
instance.controller.main_window).conversation_list_view;
prev_selection = conversation_list_view.get_selected_conversations();
conversation_list_view.get_selection().unselect_all();
+
+ composer.header.parent.remove(composer.header);
+ GearyApplication.instance.controller.main_window.main_toolbar.set_conversation_header(
+ composer.header);
+ get_style_context().add_class("full-pane");
}
}
@@ -66,6 +71,10 @@ public class ComposerBox : Gtk.Frame, ComposerContainer {
public void vanish() {
hide();
parent.hide();
+ if (get_style_context().has_class("full-pane"))
+ GearyApplication.instance.controller.main_window.main_toolbar.remove_conversation_header(
+ composer.header);
+
composer.state = ComposerWidget.ComposerState.DETACHED;
composer.editor.focus_in_event.disconnect(on_focus_in);
composer.editor.focus_out_event.disconnect(on_focus_out);
diff --git a/src/client/composer/composer-window.vala b/src/client/composer/composer-window.vala
index 4c06cef..1f80853 100644
--- a/src/client/composer/composer-window.vala
+++ b/src/client/composer/composer-window.vala
@@ -27,7 +27,8 @@ public class ComposerWindow : Gtk.Window, ComposerContainer {
if (!GearyApplication.instance.is_running_unity) {
composer.header.show_close_button = true;
- composer.header.parent.remove(composer.header);
+ if (composer.header.parent != null)
+ composer.header.parent.remove(composer.header);
set_titlebar(composer.header);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]