From 519df156f73419d83fbd043e73abc8d3f93233b0 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Wed, 15 Jan 2014 16:45:34 -0500 Subject: [PATCH] panel: add an icon to the ActivitiesButton --- data/theme/gnome-shell-sass/_common.scss | 5 +++++ js/ui/panel.js | 9 ++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/data/theme/gnome-shell-sass/_common.scss b/data/theme/gnome-shell-sass/_common.scss index 1b0c20650..639f062f1 100644 --- a/data/theme/gnome-shell-sass/_common.scss +++ b/data/theme/gnome-shell-sass/_common.scss @@ -749,60 +749,65 @@ StScrollBar { -panel-corner-background-color: rgba(0, 0, 0, 0.35); -panel-corner-border-width: 2px; -panel-corner-border-color: transparent; &:active, &:overview, &:focus { -panel-corner-border-color: lighten($selected_bg_color,5%); } &.lock-screen, &.login-screen, &.unlock-screen { -panel-corner-radius: 0; -panel-corner-background-color: transparent; -panel-corner-border-color: transparent; } } .panel-button { -natural-hpadding: 12px; -minimum-hpadding: 6px; font-weight: bold; color: #eee; text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.9); transition-duration: 100ms; .app-menu-icon { -st-icon-style: symbolic; margin-left: 4px; margin-right: 4px; //dimensions of the icon are hardcoded } + .panel-logo-icon { + padding-right: .4em; + icon-size: 1em; + } + .system-status-icon, .app-menu-icon > StIcon, .popup-menu-arrow { icon-shadow: 0px 1px 2px rgba(0, 0, 0, 0.9); } &:hover { color: lighten($fg_color, 10%); text-shadow: 0px 1px 6px rgba(0, 0, 0, 1); .system-status-icon, .app-menu-icon > StIcon, .popup-menu-arrow { icon-shadow: 0px 1px 6px rgba(0, 0, 0, 1); } } &:active, &:overview, &:focus, &:checked { // Trick due to St limitations. It needs a background to draw // a box-shadow background-color: rgba(0, 0, 0, 0.01); box-shadow: inset 0 -2px 0px lighten($selected_bg_color,5%); color: lighten($fg_color,10%); & > .system-status-icon { icon-shadow: black 0 2px 2px; } } .system-status-icon { icon-size: 1.09em; padding: 0 5px; } .unlock-screen &, .login-screen &, diff --git a/js/ui/panel.js b/js/ui/panel.js index 2f593247d..d1a572503 100644 --- a/js/ui/panel.js +++ b/js/ui/panel.js @@ -379,65 +379,72 @@ var AppMenuButton = new Lang.Class({ } if (this._overviewShowingId > 0) { Main.overview.disconnect(this._overviewShowingId); this._overviewShowingId = 0; } if (this._showsAppMenuId > 0) { this._gtkSettings.disconnect(this._showsAppMenuId); this._showsAppMenuId = 0; } if (this._switchWorkspaceNotifyId > 0) { global.window_manager.disconnect(this._switchWorkspaceNotifyId); this._switchWorkspaceNotifyId = 0; } this.parent(); } }); Signals.addSignalMethods(AppMenuButton.prototype); var ActivitiesButton = new Lang.Class({ Name: 'ActivitiesButton', Extends: PanelMenu.Button, _init() { this.parent(0.0, null, true); this.actor.accessible_role = Atk.Role.TOGGLE_BUTTON; this.actor.name = 'panelActivities'; + let box = new St.BoxLayout(); + this.actor.add_actor(box); + let iconFile = Gio.File.new_for_path('/usr/share/icons/hicolor/scalable/apps/start-here.svg'); + this._icon = new St.Icon({ gicon: new Gio.FileIcon({ file: iconFile }), + style_class: 'panel-logo-icon' }); + box.add_actor(this._icon); + /* Translators: If there is no suitable word for "Activities" in your language, you can use the word for "Overview". */ this._label = new St.Label({ text: _("Activities"), y_align: Clutter.ActorAlign.CENTER }); - this.actor.add_actor(this._label); + box.add_actor(this._label); this.actor.label_actor = this._label; this.actor.connect('captured-event', this._onCapturedEvent.bind(this)); this.actor.connect_after('key-release-event', this._onKeyRelease.bind(this)); Main.overview.connect('showing', () => { this.actor.add_style_pseudo_class('overview'); this.actor.add_accessible_state (Atk.StateType.CHECKED); }); Main.overview.connect('hiding', () => { this.actor.remove_style_pseudo_class('overview'); this.actor.remove_accessible_state (Atk.StateType.CHECKED); }); this._xdndTimeOut = 0; }, handleDragOver(source, actor, x, y, time) { if (source != Main.xdndHandler) return DND.DragMotionResult.CONTINUE; if (this._xdndTimeOut != 0) Mainloop.source_remove(this._xdndTimeOut); this._xdndTimeOut = Mainloop.timeout_add(BUTTON_DND_ACTIVATION_TIMEOUT, () => { this._xdndToggleOverview(actor); }); GLib.Source.set_name_by_id(this._xdndTimeOut, '[gnome-shell] this._xdndToggleOverview'); return DND.DragMotionResult.CONTINUE; -- 2.17.1