[gnome-maps] MainWindow: move to CSD
- From: Zeeshan Ali Khattak <zeeshanak src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-maps] MainWindow: move to CSD
- Date: Tue, 6 Aug 2013 22:43:14 +0000 (UTC)
commit 912c9f104d76e8bc5a7cb309173100150a3bfac6
Author: Mattias Bengtsson <mattias jc bengtsson gmail com>
Date: Tue Aug 6 01:37:53 2013 +0200
MainWindow: move to CSD
Move maps to be client side decorated (CSD), that is: Gtk+ will draw the
window decorations instead of relying on the window manager for drawing
them.
This move has been made by a few other apps in GNOME already (like
devhelp) and is mandatory for making us work in the wayland tech demo
that will be released in 3.10.
This is done by just moving the GdHeaderBar inside a special child to
window with the attribute type = titlebar and that will be your new title
bar. I also added a close button like the other apps do, which will help
people close the app even when maximised.
https://bugzilla.gnome.org/show_bug.cgi?id=705537
src/main-window.ui | 94 +++++++++++++++++++++++++++++++++++-----------------
src/mainWindow.js | 3 ++
2 files changed, 66 insertions(+), 31 deletions(-)
---
diff --git a/src/main-window.ui b/src/main-window.ui
index ac97d3b..bc62cf3 100644
--- a/src/main-window.ui
+++ b/src/main-window.ui
@@ -19,46 +19,78 @@
<property name="width_request">600</property>
<property name="height_request">500</property>
<property name="window_position">center</property>
- <property name="hide_titlebar_when_maximized">True</property>
<property name="title" translatable="yes">Maps</property>
- <child>
- <object class="GtkGrid" id="window-content">
+ <child type="titlebar">
+ <object class="GdHeaderBar" id="header-bar">
<property name="visible">True</property>
- <property name="orientation">vertical</property>
+ <property name="can_focus">False</property>
+ <child type="title">
+ <object class="GdTaggedEntry" id="search-entry">
+ <property name="visible">True</property>
+ <property name="width_request">500</property>
+ </object>
+ </child>
<child>
- <object class="GdHeaderBar" id="header-bar">
+ <object class="GdHeaderToggleButton" id="track-user-button">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <child type="title">
- <object class="GdTaggedEntry" id="search-entry">
- <property name="visible">True</property>
- <property name="width_request">500</property>
- </object>
- </child>
- <child>
- <object class="GdHeaderToggleButton" id="track-user-button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="symbolic-icon-name">find-location-symbolic</property>
- <property name="action_name">win.track-user-location</property>
- </object>
- <packing>
- <property name="pack_type">start</property>
- </packing>
- </child>
+ <property name="can_focus">True</property>
+ <property name="symbolic-icon-name">find-location-symbolic</property>
+ <property name="action_name">win.track-user-location</property>
+ </object>
+ <packing>
+ <property name="pack_type">start</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GdHeaderMenuButton" id="layer-menu-button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="symbolic-icon-name">emblem-system-symbolic</property>
+ <property name="menu-model">map-type-menu</property>
+ <property name="action_name">win.map-type-menu</property>
+ </object>
+ <packing>
+ <property name="pack_type">end</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator" id="close-button-separator">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="valign">fill</property>
+ </object>
+ <packing>
+ <property name="pack_type">end</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="close-button">
+ <property name="visible">True</property>
+ <property name="valign">center</property>
+ <property name="relief">none</property>
+ <property name="action_name">win.close</property>
+ <style>
+ <class name="image-button"/>
+ </style>
<child>
- <object class="GdHeaderMenuButton" id="layer-menu-button">
+ <object class="GtkImage" id="close-image">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="symbolic-icon-name">emblem-system-symbolic</property>
- <property name="menu-model">map-type-menu</property>
- <property name="action_name">win.map-type-menu</property>
+ <property name="icon_size">1</property>
+ <property name="icon_name">window-close-symbolic</property>
</object>
- <packing>
- <property name="pack_type">end</property>
- </packing>
</child>
</object>
+ <packing>
+ <property name="pack_type">end</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkGrid" id="window-content">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <child>
</child>
</object>
</child>
diff --git a/src/mainWindow.js b/src/mainWindow.js
index 65b5f3f..1b5fcb5 100644
--- a/src/mainWindow.js
+++ b/src/mainWindow.js
@@ -73,6 +73,9 @@ const MainWindow = new Lang.Class({
_initActions: function() {
Utils.initActions(this.window, [
{
+ properties: { name: 'close' },
+ signalHandlers: { activate: this.window.close.bind(this.window) }
+ }, {
properties: { name: 'about' },
signalHandlers: { activate: this._onAboutActivate }
}, {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]