Blob Blame History Raw
From 5f81215e9771b14be1562d82f54db3fdb92521e3 Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Wed, 15 Aug 2018 14:26:19 +0200
Subject: [PATCH 1/2] endSessionDialog: Immediately add buttons to the dialog

Immediately add buttons to the dialog instead of first building an
array of button-info structs.

This is a preparation patch for adding support changing the "Reboot"
button into a "Boot Options" button when Alt is pressed.
---
 js/ui/endSessionDialog.js | 28 +++++++++++++++-------------
 1 file changed, 15 insertions(+), 13 deletions(-)

diff --git a/js/ui/endSessionDialog.js b/js/ui/endSessionDialog.js
index 0b475b6f9..301d8c9bf 100644
--- a/js/ui/endSessionDialog.js
+++ b/js/ui/endSessionDialog.js
@@ -440,25 +440,27 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
     }
 
     _updateButtons() {
-        let dialogContent = DialogContent[this._type];
-        let buttons = [{ action: this.cancel.bind(this),
+        this.clearButtons();
+
+        this.addButton({ action: this.cancel.bind(this),
                          label: _("Cancel"),
-                         key: Clutter.Escape }];
+                         key: Clutter.Escape });
 
+        let dialogContent = DialogContent[this._type];
         for (let i = 0; i < dialogContent.confirmButtons.length; i++) {
             let signal = dialogContent.confirmButtons[i].signal;
             let label = dialogContent.confirmButtons[i].label;
-            buttons.push({ action: () => {
-                               this.close(true);
-                               let signalId = this.connect('closed', () => {
-                                   this.disconnect(signalId);
-                                   this._confirm(signal);
-                               });
-                           },
-                           label: label });
+            let button = this.addButton({
+                action: () => {
+                    this.close(true);
+                    let signalId = this.connect('closed', () => {
+                        this.disconnect(signalId);
+                        this._confirm(signal);
+                    });
+                },
+                label
+            });
         }
-
-        this.setButtons(buttons);
     }
 
     close(skipSignal) {
-- 
2.21.0