Browse Source

fix: make TouchBarPopover and TouchBarGroup work (#27901) (#28412)

* fix: use correct `orderedItem` touchbar property

* fix: correct parent in touchbar group and popover

* fix: preserve property hook order
Erick Zhao 4 years ago
parent
commit
bc3b181575
2 changed files with 6 additions and 6 deletions
  1. 3 3
      lib/browser/api/touch-bar.ts
  2. 3 3
      shell/browser/ui/cocoa/electron_touch_bar.mm

+ 3 - 3
lib/browser/api/touch-bar.ts

@@ -7,8 +7,8 @@ const hiddenProperties = Symbol('hidden touch bar props');
 const extendConstructHook = (target: any, hook: Function) => {
   const existingHook = target._hook;
   target._hook = function () {
-    hook.call(this);
     if (existingHook) existingHook.call(this);
+    hook.call(this);
   };
 };
 
@@ -135,7 +135,7 @@ class TouchBarGroup extends TouchBarItem<Electron.TouchBarGroupConstructorOption
       }
     }
     for (const item of newChild.orderedItems) {
-      item._addParent(item);
+      item._addParent(self);
     }
   })
   child!: TouchBar;
@@ -179,7 +179,7 @@ class TouchBarPopover extends TouchBarItem<Electron.TouchBarPopoverConstructorOp
       }
     }
     for (const item of newChild.orderedItems) {
-      item._addParent(item);
+      item._addParent(self);
     }
   })
   child!: TouchBar;

+ 3 - 3
shell/browser/ui/cocoa/electron_touch_bar.mm

@@ -551,7 +551,7 @@ static NSString* const ImageScrubberItemIdentifier = @"scrubber.image.item";
 
   gin_helper::PersistentDictionary child;
   std::vector<gin_helper::PersistentDictionary> items;
-  if (settings.Get("child", &child) && child.Get("ordereredItems", &items)) {
+  if (settings.Get("child", &child) && child.Get("orderedItems", &items)) {
     item.popoverTouchBar =
         [self touchBarFromItemIdentifiers:[self identifiersFromSettings:items]];
   }
@@ -572,7 +572,7 @@ static NSString* const ImageScrubberItemIdentifier = @"scrubber.image.item";
   if (!settings.Get("child", &child))
     return nil;
   std::vector<gin_helper::PersistentDictionary> items;
-  if (!child.Get("ordereredItems", &items))
+  if (!child.Get("orderedItems", &items))
     return nil;
 
   NSMutableArray* generatedItems = [NSMutableArray array];
@@ -601,7 +601,7 @@ static NSString* const ImageScrubberItemIdentifier = @"scrubber.image.item";
   if (!settings.Get("child", &child))
     return;
   std::vector<gin_helper::PersistentDictionary> items;
-  if (!child.Get("ordereredItems", &items))
+  if (!child.Get("orderedItems", &items))
     return;
 
   item.groupTouchBar =