Compare commits
	
		
			2 Commits
		
	
	
		
			wip/fmuell
			...
			wip/csoria
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 6865dbdd1b | ||
|   | 741c84bc41 | 
| @@ -37,14 +37,13 @@ stage { | ||||
|   icon-shadow: 0 1px black; } | ||||
|   .button:focus { | ||||
|     color: #eeeeec; | ||||
|     border-color: #215d9c; | ||||
|     box-shadow: inset 0 1px #454f52; | ||||
|     text-shadow: 0 1px black; | ||||
|     icon-shadow: 0 1px black; } | ||||
|     icon-shadow: 0 1px black; | ||||
|     box-shadow: inset 0px 0px 0px 1px #215d9c; } | ||||
|   .button:insensitive { | ||||
|     color: #7f7f7f; | ||||
|     color: gray; | ||||
|     border-color: rgba(0, 0, 0, 0.7); | ||||
|     background-color: rgba(62, 67, 68, 0.7); | ||||
|     background-color: rgba(62, 67, 69, 0.7); | ||||
|     box-shadow: none; | ||||
|     text-shadow: none; | ||||
|     icon-shadow: none; } | ||||
| @@ -52,9 +51,46 @@ stage { | ||||
|     color: white; | ||||
|     border-color: rgba(0, 0, 0, 0.7); | ||||
|     background-color: #222728; | ||||
|     box-shadow: inset 0 0 black; | ||||
|     text-shadow: none; | ||||
|     icon-shadow: none; } | ||||
|  | ||||
| .modal-dialog-linked-button { | ||||
|   border-right-width: 1px; | ||||
|   color: #eeeeec; | ||||
|   background-color: #2e3436; | ||||
|   border-color: rgba(0, 0, 0, 0.7); | ||||
|   box-shadow: inset 0 1px #454f52; | ||||
|   text-shadow: 0 1px black; | ||||
|   icon-shadow: 0 1px black; | ||||
|   padding: 12px; } | ||||
|   .modal-dialog-linked-button:insensitive { | ||||
|     color: gray; | ||||
|     border-color: rgba(0, 0, 0, 0.7); | ||||
|     background-color: rgba(62, 67, 69, 0.7); | ||||
|     box-shadow: none; | ||||
|     text-shadow: none; | ||||
|     icon-shadow: none; } | ||||
|   .modal-dialog-linked-button:active { | ||||
|     color: white; | ||||
|     border-color: rgba(0, 0, 0, 0.7); | ||||
|     background-color: #222728; | ||||
|     box-shadow: inset 0 0 black; | ||||
|     text-shadow: none; | ||||
|     icon-shadow: none; } | ||||
|   .modal-dialog-linked-button:focus { | ||||
|     color: #eeeeec; | ||||
|     text-shadow: 0 1px black; | ||||
|     icon-shadow: 0 1px black; | ||||
|     box-shadow: inset 0px 0px 0px 1px #215d9c; } | ||||
|   .modal-dialog-linked-button:first-child { | ||||
|     border-radius: 0px 0px 0px 6px; } | ||||
|   .modal-dialog-linked-button:last-child { | ||||
|     border-right-width: 0px; | ||||
|     border-radius: 0px 0px 6px 0px; } | ||||
|   .modal-dialog-linked-button:first-child:last-child { | ||||
|     border-right-width: 0px; | ||||
|     border-radius: 0px 0px 6px 6px; } | ||||
|  | ||||
| /* Entries */ | ||||
| StEntry { | ||||
| @@ -71,8 +107,8 @@ StEntry { | ||||
|     box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.4); | ||||
|     border-color: rgba(166, 166, 166, 0.5); } | ||||
|   StEntry:insensitive { | ||||
|     color: #7f7f7f; | ||||
|     border-color: #0d0d0d; | ||||
|     color: gray; | ||||
|     border-color: #0e0e0e; | ||||
|     box-shadow: none; } | ||||
|   StEntry StIcon.capslock-warning { | ||||
|     icon-size: 16px; | ||||
| @@ -106,7 +142,7 @@ StScrollBar { | ||||
| .slider { | ||||
|   height: 1em; | ||||
|   -slider-height: 0.3em; | ||||
|   -slider-background-color: #0d0d0d; | ||||
|   -slider-background-color: #0e0e0e; | ||||
|   -slider-border-color: black; | ||||
|   -slider-active-background-color: #215d9c; | ||||
|   -slider-active-border-color: #184472; | ||||
| @@ -160,11 +196,12 @@ StScrollBar { | ||||
|   background-color: white; } | ||||
|  | ||||
| .modal-dialog { | ||||
|   border-radius: 5px; | ||||
|   border-radius: 9px; | ||||
|   color: #eeeeec; | ||||
|   background-color: rgba(23, 25, 26, 0.95); | ||||
|   border: 3px solid rgba(238, 238, 236, 0.5); | ||||
|   padding: 24px; } | ||||
|   border: 3px solid rgba(238, 238, 236, 0.5); } | ||||
|   .modal-dialog .modal-dialog-content-box { | ||||
|     padding: 24px; } | ||||
|   .modal-dialog .run-dialog-entry { | ||||
|     width: 20em; | ||||
|     margin-bottom: 6px; } | ||||
| @@ -179,10 +216,6 @@ StScrollBar { | ||||
|     color: #d6d6d1; | ||||
|     padding-bottom: .4em; } | ||||
|  | ||||
| .button-dialog-button-box { | ||||
|   spacing: 18px; | ||||
|   padding-top: 48px; } | ||||
|  | ||||
| .show-processes-dialog-subject, | ||||
| .mount-question-dialog-subject, | ||||
| .end-session-dialog-subject { | ||||
| @@ -702,7 +735,7 @@ StScrollBar { | ||||
|   border-left-width: 1px; } | ||||
|  | ||||
| .calendar-nonwork-day { | ||||
|   color: #7f7f7f; } | ||||
|   color: gray; } | ||||
|  | ||||
| .calendar-today { | ||||
|   font-weight: bold; | ||||
| @@ -834,7 +867,8 @@ StScrollBar { | ||||
|   min-width: 470px; } | ||||
|  | ||||
| .nm-dialog-content { | ||||
|   spacing: 20px; } | ||||
|   spacing: 20px; | ||||
|   padding: 24px; } | ||||
|  | ||||
| .nm-dialog-header-hbox { | ||||
|   spacing: 10px; } | ||||
| @@ -1016,7 +1050,7 @@ StScrollBar { | ||||
|     color: white; | ||||
|     border-color: rgba(0, 0, 0, 0.7); | ||||
|     background-color: #222728; | ||||
|     box-shadow: none; | ||||
|     box-shadow: inset 0 0 black; | ||||
|     text-shadow: none; | ||||
|     icon-shadow: none; } | ||||
|   .app-view-control:first-child { | ||||
| @@ -1335,10 +1369,9 @@ StScrollBar { | ||||
|   color: white; } | ||||
|   .keyboard-key:focus { | ||||
|     color: #eeeeec; | ||||
|     border-color: #215d9c; | ||||
|     box-shadow: inset 0 1px #454f52; | ||||
|     text-shadow: 0 1px black; | ||||
|     icon-shadow: 0 1px black; } | ||||
|     icon-shadow: 0 1px black; | ||||
|     box-shadow: inset 0px 0px 0px 1px #215d9c; } | ||||
|   .keyboard-key:hover, .keyboard-key:checked { | ||||
|     color: white; | ||||
|     border-color: rgba(0, 0, 0, 0.7); | ||||
| @@ -1350,7 +1383,7 @@ StScrollBar { | ||||
|     color: white; | ||||
|     border-color: rgba(0, 0, 0, 0.7); | ||||
|     background-color: #222728; | ||||
|     box-shadow: none; | ||||
|     box-shadow: inset 0 0 black; | ||||
|     text-shadow: none; | ||||
|     icon-shadow: none; } | ||||
|   .keyboard-key:grayed { | ||||
| @@ -1443,13 +1476,13 @@ StScrollBar { | ||||
|         color: white; | ||||
|         border-color: rgba(0, 0, 0, 0.7); | ||||
|         background-color: #1c5187; | ||||
|         box-shadow: none; | ||||
|         box-shadow: inset 0 0 black; | ||||
|         text-shadow: none; | ||||
|         icon-shadow: none; } | ||||
|       .login-dialog .modal-dialog-button:default:insensitive { | ||||
|         color: #7f7f7f; | ||||
|         color: gray; | ||||
|         border-color: rgba(0, 0, 0, 0.7); | ||||
|         background-color: rgba(62, 67, 68, 0.7); | ||||
|         background-color: rgba(62, 67, 69, 0.7); | ||||
|         box-shadow: none; | ||||
|         text-shadow: none; | ||||
|         icon-shadow: none; } | ||||
|   | ||||
 Submodule data/theme/gnome-shell-sass updated: 23e0bc1e71...e0e74382f1
									
								
							| @@ -37,14 +37,13 @@ stage { | ||||
|   icon-shadow: 0 1px black; } | ||||
|   .button:focus { | ||||
|     color: #eeeeec; | ||||
|     border-color: #215d9c; | ||||
|     box-shadow: inset 0 1px #454f52; | ||||
|     text-shadow: 0 1px black; | ||||
|     icon-shadow: 0 1px black; } | ||||
|     icon-shadow: 0 1px black; | ||||
|     box-shadow: inset 0px 0px 0px 1px #215d9c; } | ||||
|   .button:insensitive { | ||||
|     color: #939695; | ||||
|     color: #949796; | ||||
|     border-color: rgba(0, 0, 0, 0.7); | ||||
|     background-color: rgba(66, 71, 73, 0.7); | ||||
|     background-color: rgba(66, 72, 73, 0.7); | ||||
|     box-shadow: none; | ||||
|     text-shadow: none; | ||||
|     icon-shadow: none; } | ||||
| @@ -52,9 +51,46 @@ stage { | ||||
|     color: white; | ||||
|     border-color: rgba(0, 0, 0, 0.7); | ||||
|     background-color: #222728; | ||||
|     box-shadow: inset 0 0 black; | ||||
|     text-shadow: none; | ||||
|     icon-shadow: none; } | ||||
|  | ||||
| .modal-dialog-linked-button { | ||||
|   border-right-width: 1px; | ||||
|   color: #eeeeec; | ||||
|   background-color: #2e3436; | ||||
|   border-color: rgba(0, 0, 0, 0.7); | ||||
|   box-shadow: inset 0 1px #454f52; | ||||
|   text-shadow: 0 1px black; | ||||
|   icon-shadow: 0 1px black; | ||||
|   padding: 12px; } | ||||
|   .modal-dialog-linked-button:insensitive { | ||||
|     color: #949796; | ||||
|     border-color: rgba(0, 0, 0, 0.7); | ||||
|     background-color: rgba(66, 72, 73, 0.7); | ||||
|     box-shadow: none; | ||||
|     text-shadow: none; | ||||
|     icon-shadow: none; } | ||||
|   .modal-dialog-linked-button:active { | ||||
|     color: white; | ||||
|     border-color: rgba(0, 0, 0, 0.7); | ||||
|     background-color: #222728; | ||||
|     box-shadow: inset 0 0 black; | ||||
|     text-shadow: none; | ||||
|     icon-shadow: none; } | ||||
|   .modal-dialog-linked-button:focus { | ||||
|     color: #eeeeec; | ||||
|     text-shadow: 0 1px black; | ||||
|     icon-shadow: 0 1px black; | ||||
|     box-shadow: inset 0px 0px 0px 1px #215d9c; } | ||||
|   .modal-dialog-linked-button:first-child { | ||||
|     border-radius: 0px 0px 0px 6px; } | ||||
|   .modal-dialog-linked-button:last-child { | ||||
|     border-right-width: 0px; | ||||
|     border-radius: 0px 0px 6px 0px; } | ||||
|   .modal-dialog-linked-button:first-child:last-child { | ||||
|     border-right-width: 0px; | ||||
|     border-radius: 0px 0px 6px 6px; } | ||||
|  | ||||
| /* Entries */ | ||||
| StEntry { | ||||
| @@ -71,8 +107,8 @@ StEntry { | ||||
|     box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.4); | ||||
|     border-color: rgba(154, 154, 142, 0.5); } | ||||
|   StEntry:insensitive { | ||||
|     color: #939695; | ||||
|     border-color: #323636; | ||||
|     color: #949796; | ||||
|     border-color: #333636; | ||||
|     box-shadow: none; } | ||||
|   StEntry StIcon.capslock-warning { | ||||
|     icon-size: 16px; | ||||
| @@ -95,10 +131,10 @@ StScrollBar { | ||||
|     background-color: transparent; } | ||||
|   StScrollBar StButton#vhandle, StScrollBar StButton#hhandle { | ||||
|     border-radius: 8px; | ||||
|     background-color: #a5a8a6; | ||||
|     background-color: #a6a8a7; | ||||
|     margin: 3px; } | ||||
|     StScrollBar StButton#vhandle:hover, StScrollBar StButton#hhandle:hover { | ||||
|       background-color: #c9cbc9; } | ||||
|       background-color: #cacbc9; } | ||||
|     StScrollBar StButton#vhandle:active, StScrollBar StButton#hhandle:active { | ||||
|       background-color: #215d9c; } | ||||
|  | ||||
| @@ -106,7 +142,7 @@ StScrollBar { | ||||
| .slider { | ||||
|   height: 1em; | ||||
|   -slider-height: 0.3em; | ||||
|   -slider-background-color: #323636; | ||||
|   -slider-background-color: #333636; | ||||
|   -slider-border-color: #1c1f1f; | ||||
|   -slider-active-background-color: #215d9c; | ||||
|   -slider-active-border-color: #184472; | ||||
| @@ -160,11 +196,12 @@ StScrollBar { | ||||
|   background-color: white; } | ||||
|  | ||||
| .modal-dialog { | ||||
|   border-radius: 5px; | ||||
|   border-radius: 9px; | ||||
|   color: #eeeeec; | ||||
|   background-color: rgba(23, 25, 26, 0.95); | ||||
|   border: 3px solid rgba(238, 238, 236, 0.5); | ||||
|   padding: 24px; } | ||||
|   border: 3px solid rgba(238, 238, 236, 0.5); } | ||||
|   .modal-dialog .modal-dialog-content-box { | ||||
|     padding: 24px; } | ||||
|   .modal-dialog .run-dialog-entry { | ||||
|     width: 20em; | ||||
|     margin-bottom: 6px; } | ||||
| @@ -179,10 +216,6 @@ StScrollBar { | ||||
|     color: #d6d6d1; | ||||
|     padding-bottom: .4em; } | ||||
|  | ||||
| .button-dialog-button-box { | ||||
|   spacing: 18px; | ||||
|   padding-top: 48px; } | ||||
|  | ||||
| .show-processes-dialog-subject, | ||||
| .mount-question-dialog-subject, | ||||
| .end-session-dialog-subject { | ||||
| @@ -702,7 +735,7 @@ StScrollBar { | ||||
|   border-left-width: 1px; } | ||||
|  | ||||
| .calendar-nonwork-day { | ||||
|   color: #939695; } | ||||
|   color: #949796; } | ||||
|  | ||||
| .calendar-today { | ||||
|   font-weight: bold; | ||||
| @@ -834,7 +867,8 @@ StScrollBar { | ||||
|   min-width: 470px; } | ||||
|  | ||||
| .nm-dialog-content { | ||||
|   spacing: 20px; } | ||||
|   spacing: 20px; | ||||
|   padding: 24px; } | ||||
|  | ||||
| .nm-dialog-header-hbox { | ||||
|   spacing: 10px; } | ||||
| @@ -1016,7 +1050,7 @@ StScrollBar { | ||||
|     color: white; | ||||
|     border-color: rgba(0, 0, 0, 0.7); | ||||
|     background-color: #222728; | ||||
|     box-shadow: none; | ||||
|     box-shadow: inset 0 0 black; | ||||
|     text-shadow: none; | ||||
|     icon-shadow: none; } | ||||
|   .app-view-control:first-child { | ||||
| @@ -1335,10 +1369,9 @@ StScrollBar { | ||||
|   color: white; } | ||||
|   .keyboard-key:focus { | ||||
|     color: #eeeeec; | ||||
|     border-color: #215d9c; | ||||
|     box-shadow: inset 0 1px #454f52; | ||||
|     text-shadow: 0 1px black; | ||||
|     icon-shadow: 0 1px black; } | ||||
|     icon-shadow: 0 1px black; | ||||
|     box-shadow: inset 0px 0px 0px 1px #215d9c; } | ||||
|   .keyboard-key:hover, .keyboard-key:checked { | ||||
|     color: white; | ||||
|     border-color: rgba(0, 0, 0, 0.7); | ||||
| @@ -1350,7 +1383,7 @@ StScrollBar { | ||||
|     color: white; | ||||
|     border-color: rgba(0, 0, 0, 0.7); | ||||
|     background-color: #222728; | ||||
|     box-shadow: none; | ||||
|     box-shadow: inset 0 0 black; | ||||
|     text-shadow: none; | ||||
|     icon-shadow: none; } | ||||
|   .keyboard-key:grayed { | ||||
| @@ -1443,13 +1476,13 @@ StScrollBar { | ||||
|         color: white; | ||||
|         border-color: rgba(0, 0, 0, 0.7); | ||||
|         background-color: #1c5187; | ||||
|         box-shadow: none; | ||||
|         box-shadow: inset 0 0 black; | ||||
|         text-shadow: none; | ||||
|         icon-shadow: none; } | ||||
|       .login-dialog .modal-dialog-button:default:insensitive { | ||||
|         color: #939695; | ||||
|         color: #949796; | ||||
|         border-color: rgba(0, 0, 0, 0.7); | ||||
|         background-color: rgba(66, 71, 73, 0.7); | ||||
|         background-color: rgba(66, 72, 73, 0.7); | ||||
|         box-shadow: none; | ||||
|         text-shadow: none; | ||||
|         icon-shadow: none; } | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 98 KiB | 
| @@ -14,7 +14,7 @@ const ShellEntry = imports.ui.shellEntry; | ||||
| const Tweener = imports.ui.tweener; | ||||
| const UserWidget = imports.ui.userWidget; | ||||
|  | ||||
| const DEFAULT_BUTTON_WELL_ICON_SIZE = 24; | ||||
| const DEFAULT_BUTTON_WELL_ICON_SIZE = 16; | ||||
| const DEFAULT_BUTTON_WELL_ANIMATION_DELAY = 1.0; | ||||
| const DEFAULT_BUTTON_WELL_ANIMATION_TIME = 0.3; | ||||
|  | ||||
|   | ||||
| @@ -7,7 +7,7 @@ const St = imports.gi.St; | ||||
| const Signals = imports.signals; | ||||
| const Atk = imports.gi.Atk; | ||||
|  | ||||
| const ANIMATED_ICON_UPDATE_TIMEOUT = 100; | ||||
| const ANIMATED_ICON_UPDATE_TIMEOUT = 14; | ||||
|  | ||||
| const Animation = new Lang.Class({ | ||||
|     Name: 'Animation', | ||||
|   | ||||
| @@ -9,9 +9,15 @@ const Gio = imports.gi.Gio; | ||||
| const GObject = imports.gi.GObject; | ||||
| const Gcr = imports.gi.Gcr; | ||||
|  | ||||
| const Animation = imports.ui.animation; | ||||
| const ModalDialog = imports.ui.modalDialog; | ||||
| const ShellEntry = imports.ui.shellEntry; | ||||
| const CheckBox = imports.ui.checkBox; | ||||
| const Tweener = imports.ui.tweener; | ||||
|  | ||||
| const WORK_SPINNER_ICON_SIZE = 24; | ||||
| const WORK_SPINNER_ANIMATION_DELAY = 1.0; | ||||
| const WORK_SPINNER_ANIMATION_TIME = 0.3; | ||||
|  | ||||
| const KeyringDialog = new Lang.Class({ | ||||
|     Name: 'KeyringDialog', | ||||
| @@ -58,27 +64,54 @@ const KeyringDialog = new Lang.Class({ | ||||
|                             { y_fill:  true, | ||||
|                               y_align: St.Align.START }); | ||||
|  | ||||
|         this._workSpinner = null; | ||||
|         this._controlTable = null; | ||||
|  | ||||
|  | ||||
|         this._cancelButton = this.addButton({ label: '', | ||||
|                                               action: Lang.bind(this, this._onCancelButton), | ||||
|                                               key: Clutter.Escape }, | ||||
|                                             { expand: true, x_fill: false, x_align: St.Align.START }); | ||||
|         this.placeSpinner({ expand: false, | ||||
|                             x_fill: false, | ||||
|                             y_fill: false, | ||||
|                             x_align: St.Align.END, | ||||
|                             y_align: St.Align.MIDDLE }); | ||||
|                                               key: Clutter.Escape }); | ||||
|         this._continueButton = this.addButton({ label: '', | ||||
|                                                 action: Lang.bind(this, this._onContinueButton), | ||||
|                                                 default: true }, | ||||
|                                               { expand: false, x_fill: false, x_align: St.Align.END }); | ||||
|                                                 default: true }); | ||||
|  | ||||
|         this.prompt.bind_property('cancel-label', this._cancelButton, 'label', GObject.BindingFlags.SYNC_CREATE); | ||||
|         this.prompt.bind_property('continue-label', this._continueButton, 'label', GObject.BindingFlags.SYNC_CREATE); | ||||
|     }, | ||||
|  | ||||
|     _createSpinner: function() { | ||||
|         let spinnerIcon = Gio.File.new_for_uri('resource:///org/gnome/shell/theme/process-working.svg'); | ||||
|         this._workSpinner = new Animation.AnimatedIcon(spinnerIcon, WORK_SPINNER_ICON_SIZE); | ||||
|         this._workSpinner.actor.opacity = 0; | ||||
|         this._workSpinner.actor.show(); | ||||
|     }, | ||||
|  | ||||
|     _setWorking: function(working) { | ||||
|         if (!this._workSpinner) | ||||
|             return; | ||||
|  | ||||
|         Tweener.removeTweens(this._workSpinner.actor); | ||||
|         if (working) { | ||||
|             this._workSpinner.play(); | ||||
|             Tweener.addTween(this._workSpinner.actor, | ||||
|                              { opacity: 255, | ||||
|                                delay: WORK_SPINNER_ANIMATION_DELAY, | ||||
|                                time: WORK_SPINNER_ANIMATION_TIME, | ||||
|                                transition: 'linear' | ||||
|                              }); | ||||
|         } else { | ||||
|             Tweener.addTween(this._workSpinner.actor, | ||||
|                              { opacity: 0, | ||||
|                                time: WORK_SPINNER_ANIMATION_TIME, | ||||
|                                transition: 'linear', | ||||
|                                onCompleteScope: this, | ||||
|                                onComplete: function() { | ||||
|                                    if (this._workSpinner) | ||||
|                                        this._workSpinner.stop(); | ||||
|                                } | ||||
|                              }); | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     _buildControlTable: function() { | ||||
|         let layout = new Clutter.GridLayout({ orientation: Clutter.Orientation.VERTICAL }); | ||||
|         let table = new St.Widget({ style_class: 'keyring-dialog-control-table', | ||||
| @@ -101,15 +134,19 @@ const KeyringDialog = new Lang.Class({ | ||||
|             ShellEntry.addContextMenu(this._passwordEntry, { isPassword: true }); | ||||
|             this._passwordEntry.clutter_text.connect('activate', Lang.bind(this, this._onPasswordActivate)); | ||||
|  | ||||
|             this._createSpinner(); | ||||
|             if (rtl) { | ||||
|                 layout.attach(this._passwordEntry, 0, row, 1, 1); | ||||
|                 layout.attach(label, 1, row, 1, 1); | ||||
|                 layout.attach(this._workSpinner.actor, 0, row, 1, 1); | ||||
|                 layout.attach(this._passwordEntry, 1, row, 1, 1); | ||||
|                 layout.attach(label, 2, row, 1, 1); | ||||
|             } else { | ||||
|                 layout.attach(label, 0, row, 1, 1); | ||||
|                 layout.attach(this._passwordEntry, 1, row, 1, 1); | ||||
|                 layout.attach(this._workSpinner.actor, 2, row, 1, 1); | ||||
|             } | ||||
|             row++; | ||||
|         } else { | ||||
|             this._workSpinner = null; | ||||
|             this._passwordEntry = null; | ||||
|         } | ||||
|  | ||||
| @@ -178,7 +215,7 @@ const KeyringDialog = new Lang.Class({ | ||||
|  | ||||
|         this._continueButton.can_focus = sensitive; | ||||
|         this._continueButton.reactive = sensitive; | ||||
|         this.setWorking(!sensitive); | ||||
|         this._setWorking(!sensitive); | ||||
|     }, | ||||
|  | ||||
|     _ensureOpen: function() { | ||||
|   | ||||
| @@ -13,13 +13,19 @@ const Mainloop = imports.mainloop; | ||||
| const Polkit = imports.gi.Polkit; | ||||
| const PolkitAgent = imports.gi.PolkitAgent; | ||||
|  | ||||
| const Animation = imports.ui.animation; | ||||
| const Components = imports.ui.components; | ||||
| const ModalDialog = imports.ui.modalDialog; | ||||
| const ShellEntry = imports.ui.shellEntry; | ||||
| const UserWidget = imports.ui.userWidget; | ||||
| const Tweener = imports.ui.tweener; | ||||
|  | ||||
| const DIALOG_ICON_SIZE = 48; | ||||
|  | ||||
| const WORK_SPINNER_ICON_SIZE = 24; | ||||
| const WORK_SPINNER_ANIMATION_DELAY = 1.0; | ||||
| const WORK_SPINNER_ANIMATION_TIME = 0.3; | ||||
|  | ||||
| const AuthenticationDialog = new Lang.Class({ | ||||
|     Name: 'AuthenticationDialog', | ||||
|     Extends: ModalDialog.ModalDialog, | ||||
| @@ -136,6 +142,7 @@ const AuthenticationDialog = new Lang.Class({ | ||||
|         this._passwordEntry.clutter_text.connect('activate', Lang.bind(this, this._onEntryActivate)); | ||||
|         this._passwordBox.add(this._passwordEntry, | ||||
|                               { expand: true }); | ||||
|         this._addSpinner(); | ||||
|         this.setInitialKeyFocus(this._passwordEntry); | ||||
|         this._passwordBox.hide(); | ||||
|  | ||||
| @@ -165,17 +172,10 @@ const AuthenticationDialog = new Lang.Class({ | ||||
|  | ||||
|         this._cancelButton = this.addButton({ label: _("Cancel"), | ||||
|                                               action: Lang.bind(this, this.cancel), | ||||
|                                               key: Clutter.Escape }, | ||||
|                                             { expand: true, x_fill: false, x_align: St.Align.START }); | ||||
|         this.placeSpinner({ expand: false, | ||||
|                             x_fill: false, | ||||
|                             y_fill: false, | ||||
|                             x_align: St.Align.END, | ||||
|                             y_align: St.Align.MIDDLE }); | ||||
|                                               key: Clutter.Escape }); | ||||
|         this._okButton = this.addButton({ label:  _("Authenticate"), | ||||
|                                           action: Lang.bind(this, this._onAuthenticateButtonPressed), | ||||
|                                           default: true }, | ||||
|                                         { expand: false, x_fill: false, x_align: St.Align.END }); | ||||
|                                           default: true }); | ||||
|  | ||||
|         this._doneEmitted = false; | ||||
|  | ||||
| @@ -183,6 +183,39 @@ const AuthenticationDialog = new Lang.Class({ | ||||
|         this._cookie = cookie; | ||||
|     }, | ||||
|  | ||||
|     _addSpinner: function() { | ||||
|         let spinnerIcon = Gio.File.new_for_uri('resource:///org/gnome/shell/theme/process-working.svg'); | ||||
|         this._workSpinner = new Animation.AnimatedIcon(spinnerIcon, WORK_SPINNER_ICON_SIZE); | ||||
|         this._workSpinner.actor.opacity = 0; | ||||
|         this._workSpinner.actor.show(); | ||||
|  | ||||
|         this._passwordBox.add(this._workSpinner.actor); | ||||
|     }, | ||||
|  | ||||
|     _setWorking: function(working) { | ||||
|         Tweener.removeTweens(this._workSpinner.actor); | ||||
|         if (working) { | ||||
|             this._workSpinner.play(); | ||||
|             Tweener.addTween(this._workSpinner.actor, | ||||
|                              { opacity: 255, | ||||
|                                delay: WORK_SPINNER_ANIMATION_DELAY, | ||||
|                                time: WORK_SPINNER_ANIMATION_TIME, | ||||
|                                transition: 'linear' | ||||
|                              }); | ||||
|         } else { | ||||
|             Tweener.addTween(this._workSpinner.actor, | ||||
|                              { opacity: 0, | ||||
|                                time: WORK_SPINNER_ANIMATION_TIME, | ||||
|                                transition: 'linear', | ||||
|                                onCompleteScope: this, | ||||
|                                onComplete: function() { | ||||
|                                    if (this._workSpinner) | ||||
|                                        this._workSpinner.stop(); | ||||
|                                } | ||||
|                              }); | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     performAuthentication: function() { | ||||
|         this.destroySession(); | ||||
|         this._session = new PolkitAgent.Session({ identity: this._identityToAuth, | ||||
| @@ -229,7 +262,7 @@ const AuthenticationDialog = new Lang.Class({ | ||||
|  | ||||
|         this._okButton.can_focus = sensitive; | ||||
|         this._okButton.reactive = sensitive; | ||||
|         this.setWorking(!sensitive); | ||||
|         this._setWorking(!sensitive); | ||||
|     }, | ||||
|  | ||||
|     _onEntryActivate: function() { | ||||
|   | ||||
| @@ -23,7 +23,7 @@ const Tweener = imports.ui.tweener; | ||||
| const OPEN_AND_CLOSE_TIME = 0.1; | ||||
| const FADE_OUT_DIALOG_TIME = 1.0; | ||||
|  | ||||
| const WORK_SPINNER_ICON_SIZE = 24; | ||||
| const WORK_SPINNER_ICON_SIZE = 16; | ||||
| const WORK_SPINNER_ANIMATION_DELAY = 1.0; | ||||
| const WORK_SPINNER_ANIMATION_TIME = 0.3; | ||||
|  | ||||
|   | ||||
| @@ -30,7 +30,7 @@ const APP_MENU_ICON_MARGIN = 0; | ||||
|  | ||||
| const BUTTON_DND_ACTIVATION_TIMEOUT = 250; | ||||
|  | ||||
| const SPINNER_ANIMATION_TIME = 0.2; | ||||
| const SPINNER_ANIMATION_TIME = 1.0; | ||||
|  | ||||
| // To make sure the panel corners blend nicely with the panel, | ||||
| // we draw background and borders the same way, e.g. drawing | ||||
|   | ||||
| @@ -877,7 +877,7 @@ const NMWirelessDialog = new Lang.Class({ | ||||
|                                                  y_align: Clutter.ActorAlign.CENTER }); | ||||
|  | ||||
|         let file = Gio.File.new_for_uri('resource:///org/gnome/shell/theme/process-working.svg'); | ||||
|         this._noNetworksSpinner = new Animation.AnimatedIcon(file, 24, 24); | ||||
|         this._noNetworksSpinner = new Animation.AnimatedIcon(file, 16, 16); | ||||
|         this._noNetworksBox.add_actor(this._noNetworksSpinner.actor); | ||||
|         this._noNetworksBox.add_actor(new St.Label({ style_class: 'no-networks-label', | ||||
|                                                      text: _("No Networks") })); | ||||
| @@ -917,10 +917,7 @@ const NMWirelessDialog = new Lang.Class({ | ||||
|                                                   key: Clutter.Escape }); | ||||
|         this._connectButton = this.addButton({ action: Lang.bind(this, this._connect), | ||||
|                                                label: _("Connect"), | ||||
|                                                key: Clutter.Return }, | ||||
|                                              { expand: true, | ||||
|                                                x_fill: false, | ||||
|                                                x_align: St.Align.END }); | ||||
|                                                key: Clutter.Return }); | ||||
|     }, | ||||
|  | ||||
|     _connect: function() { | ||||
|   | ||||
| @@ -81,12 +81,10 @@ const DisplayChangeDialog = new Lang.Class({ | ||||
|         */ | ||||
|         this._cancelButton = this.addButton({ label: _("Revert Settings"), | ||||
|                                               action: Lang.bind(this, this._onFailure), | ||||
|                                               key: Clutter.Escape }, | ||||
|                                             { expand: true, x_fill: false, x_align: St.Align.START }); | ||||
|                                               key: Clutter.Escape }); | ||||
|         this._okButton = this.addButton({ label:  _("Keep Changes"), | ||||
|                                           action: Lang.bind(this, this._onSuccess), | ||||
|                                           default: true }, | ||||
|                                         { expand: false, x_fill: false, x_align: St.Align.END }); | ||||
|                                           default: true }); | ||||
|  | ||||
|         this._timeoutId = Mainloop.timeout_add(ONE_SECOND, Lang.bind(this, this._tick)); | ||||
|         GLib.Source.set_name_by_id(this._timeoutId, '[gnome-shell] this._tick'); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user