Compare commits

...

8 Commits

Author SHA1 Message Date
Florian Müllner 48ea80d391 Bump version to 3.33.3
Update NEWS.
2019-06-24 20:34:02 +02:00
Jakub Steiner b138e218bb classic: fix a broken build
- redesign of the default theme nuked some local variables
  breaking the build.
2019-06-24 20:28:03 +02:00
Florian Müllner 829440f546 Update sass submodule 2019-06-24 20:02:18 +02:00
Marco Trevisan (Treviño) 14859b4009 window-list: Pass the actor as PopupMenuManager owner
PopupMenuManager's grabHelper starting from gnome-shell@7bb84da must be
an actor, so pass it explicitly instead of expecting the shell to do it
for us.

This fixes an error during pushModal that was causing a grab not to be
released.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/68
2019-05-29 14:45:43 -05:00
Florian Müllner 3a596054ad places-menu: Adjust to GObject-ification of menu items
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/67
2019-05-29 09:38:21 +00:00
Florian Müllner 65191d83b4 drive-menu: Adjust to GObject-ification of menu items
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/67
2019-05-29 09:38:21 +00:00
Florian Müllner 8499b0e254 apps-menu: Adjust to GObject-ification of menu items
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/67
2019-05-29 09:38:21 +00:00
Florian Müllner f166ca501f window-list: Stop using deprecated actor property
Since PanelMenu.Button was changed to inherit from St.Widget, its actor
property is deprecated and points to itself. Stop using it to avoid the
corresponding warning.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/67
2019-05-29 09:38:21 +00:00
8 changed files with 79 additions and 64 deletions
+7
View File
@@ -1,3 +1,10 @@
3.33.3
======
* Misc. bug fixes [Florian, Marco; !67, !68]
Contributors:
Florian Müllner, Marco Trevisan (Treviño)
3.33.2 3.33.2
====== ======
* Misc. bug fixes and cleanups [Florian; !66] * Misc. bug fixes and cleanups [Florian; !66]
+3 -3
View File
@@ -60,9 +60,9 @@ $variant: 'light';
&.lock-screen, &.lock-screen,
&.unlock-screen, &.unlock-screen,
&.login-screen { &.login-screen {
background-color: transparentize($_bubble_bg_color, 0.5); background-color: transparentize($bg_color, 0.5);
background-gradient-start: transparentize($_bubble_bg_color, 0.5); background-gradient-start: transparentize($bg_color, 0.5);
background-gradient-end: transparentize($_bubble_bg_color, 0.5); background-gradient-end: transparentize($bg_color, 0.5);
border-bottom: none; border-bottom: none;
.panel-button { color: $osd_fg_color; } .panel-button { color: $osd_fg_color; }
} }
+44 -40
View File
@@ -25,11 +25,12 @@ const NAVIGATION_REGION_OVERSHOOT = 50;
Gio._promisify(Gio._LocalFilePrototype, 'query_info_async', 'query_info_finish'); Gio._promisify(Gio._LocalFilePrototype, 'query_info_async', 'query_info_finish');
Gio._promisify(Gio._LocalFilePrototype, 'set_attributes_async', 'set_attributes_finish'); Gio._promisify(Gio._LocalFilePrototype, 'set_attributes_async', 'set_attributes_finish');
var ActivitiesMenuItem = GObject.registerClass(
class ActivitiesMenuItem extends PopupMenu.PopupBaseMenuItem { class ActivitiesMenuItem extends PopupMenu.PopupBaseMenuItem {
constructor(button) { _init(button) {
super(); super._init();
this._button = button; this._button = button;
this.actor.add_child(new St.Label({ text: _('Activities Overview') })); this.add_child(new St.Label({ text: _('Activities Overview') }));
} }
activate(event) { activate(event) {
@@ -37,35 +38,36 @@ class ActivitiesMenuItem extends PopupMenu.PopupBaseMenuItem {
Main.overview.toggle(); Main.overview.toggle();
super.activate(event); super.activate(event);
} }
} });
var ApplicationMenuItem = GObject.registerClass(
class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem { class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem {
constructor(button, app) { _init(button, app) {
super(); super._init();
this._app = app; this._app = app;
this._button = button; this._button = button;
this._iconBin = new St.Bin(); this._iconBin = new St.Bin();
this.actor.add_child(this._iconBin); this.add_child(this._iconBin);
let appLabel = new St.Label({ let appLabel = new St.Label({
text: app.get_name(), text: app.get_name(),
y_expand: true, y_expand: true,
y_align: Clutter.ActorAlign.CENTER y_align: Clutter.ActorAlign.CENTER
}); });
this.actor.add_child(appLabel); this.add_child(appLabel);
this.actor.label_actor = appLabel; this.label_actor = appLabel;
let textureCache = St.TextureCache.get_default(); let textureCache = St.TextureCache.get_default();
let iconThemeChangedId = textureCache.connect('icon-theme-changed', let iconThemeChangedId = textureCache.connect('icon-theme-changed',
this._updateIcon.bind(this)); this._updateIcon.bind(this));
this.actor.connect('destroy', () => { this.connect('destroy', () => {
textureCache.disconnect(iconThemeChangedId); textureCache.disconnect(iconThemeChangedId);
}); });
this._updateIcon(); this._updateIcon();
this.actor._delegate = this; this._delegate = this;
let draggable = DND.makeDraggable(this.actor); let draggable = DND.makeDraggable(this);
let maybeStartDrag = draggable._maybeStartDrag; let maybeStartDrag = draggable._maybeStartDrag;
draggable._maybeStartDrag = (event) => { draggable._maybeStartDrag = (event) => {
@@ -103,11 +105,12 @@ class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem {
_updateIcon() { _updateIcon() {
this._iconBin.set_child(this.getDragActor()); this._iconBin.set_child(this.getDragActor());
} }
} });
var CategoryMenuItem = GObject.registerClass(
class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem { class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
constructor(button, category) { _init(button, category) {
super(); super._init();
this._category = category; this._category = category;
this._button = button; this._button = button;
@@ -120,8 +123,9 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
else else
name = _('Favorites'); name = _('Favorites');
this.actor.add_child(new St.Label({ text: name })); this.add_child(new St.Label({ text: name }));
this.actor.connect('motion-event', this._onMotionEvent.bind(this)); this.connect('motion-event', this._onMotionEvent.bind(this));
this.connect('notify::active', this._onActiveChanged.bind(this));
} }
activate(event) { activate(event) {
@@ -131,7 +135,7 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
} }
_isNavigatingSubmenu([x, y]) { _isNavigatingSubmenu([x, y]) {
let [posX, posY] = this.actor.get_transformed_position(); let [posX, posY] = this.get_transformed_position();
if (this._oldX == -1) { if (this._oldX == -1) {
this._oldX = x; this._oldX = x;
@@ -146,11 +150,11 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
this._oldY = y; this._oldY = y;
// If it lies outside the x-coordinates then it is definitely outside. // If it lies outside the x-coordinates then it is definitely outside.
if (posX > x || posX + this.actor.width < x) if (posX > x || posX + this.width < x)
return false; return false;
// If it lies inside the menu item then it is definitely inside. // If it lies inside the menu item then it is definitely inside.
if (posY <= y && posY + this.actor.height >= y) if (posY <= y && posY + this.height >= y)
return true; return true;
// We want the keep-up triangle only if the movement is more // We want the keep-up triangle only if the movement is more
@@ -171,17 +175,17 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
// only check for triangle ABC. // only check for triangle ABC.
if (posY > y) { if (posY > y) {
let offset = posY - y; let offset = posY - y;
y = posY + this.actor.height + offset; y = posY + this.height + offset;
} }
// Ensure that A is (0, 0). // Ensure that A is (0, 0).
x -= posX; x -= posX;
y -= posY + this.actor.height; y -= posY + this.height;
// Check which side of line AB the point P lies on by taking the // Check which side of line AB the point P lies on by taking the
// cross-product of AB and AP. See: // cross-product of AB and AP. See:
// http://stackoverflow.com/questions/3461453/determine-which-side-of-a-line-a-point-lies // http://stackoverflow.com/questions/3461453/determine-which-side-of-a-line-a-point-lies
if (((this.actor.width * y) - (NAVIGATION_REGION_OVERSHOOT * x)) <= 0) if (((this.width * y) - (NAVIGATION_REGION_OVERSHOOT * x)) <= 0)
return true; return true;
return false; return false;
@@ -191,16 +195,16 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
if (!Clutter.get_pointer_grab()) { if (!Clutter.get_pointer_grab()) {
this._oldX = -1; this._oldX = -1;
this._oldY = -1; this._oldY = -1;
Clutter.grab_pointer(this.actor); Clutter.grab_pointer(this);
} }
this.actor.hover = true; this.hover = true;
if (this._isNavigatingSubmenu(event.get_coords())) if (this._isNavigatingSubmenu(event.get_coords()))
return true; return true;
this._oldX = -1; this._oldX = -1;
this._oldY = -1; this._oldY = -1;
this.actor.hover = false; this.hover = false;
Clutter.ungrab_pointer(); Clutter.ungrab_pointer();
let source = event.get_source(); let source = event.get_source();
@@ -210,14 +214,14 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
return false; return false;
} }
setActive(active, params) { _onActiveChanged() {
if (active) { if (!this.active)
this._button.selectCategory(this._category); return;
this._button.scrollToCatButton(this);
} this._button.selectCategory(this._category);
super.setActive(active, params); this._button.scrollToCatButton(this);
} }
} });
class ApplicationsMenu extends PopupMenu.PopupMenu { class ApplicationsMenu extends PopupMenu.PopupMenu {
constructor(sourceActor, arrowAlignment, arrowSide, button) { constructor(sourceActor, arrowAlignment, arrowSide, button) {
@@ -563,7 +567,7 @@ class ApplicationsButton extends PanelMenu.Button {
let appsScrollBoxAlloc = this.applicationsScrollBox.get_allocation_box(); let appsScrollBoxAlloc = this.applicationsScrollBox.get_allocation_box();
let currentScrollValue = appsScrollBoxAdj.get_value(); let currentScrollValue = appsScrollBoxAdj.get_value();
let boxHeight = appsScrollBoxAlloc.y2 - appsScrollBoxAlloc.y1; let boxHeight = appsScrollBoxAlloc.y2 - appsScrollBoxAlloc.y1;
let buttonAlloc = button.actor.get_allocation_box(); let buttonAlloc = button.get_allocation_box();
let newScrollValue = currentScrollValue; let newScrollValue = currentScrollValue;
if (currentScrollValue > buttonAlloc.y1 - 10) if (currentScrollValue > buttonAlloc.y1 - 10)
newScrollValue = buttonAlloc.y1 - 10; newScrollValue = buttonAlloc.y1 - 10;
@@ -578,7 +582,7 @@ class ApplicationsButton extends PanelMenu.Button {
let catsScrollBoxAlloc = this.categoriesScrollBox.get_allocation_box(); let catsScrollBoxAlloc = this.categoriesScrollBox.get_allocation_box();
let currentScrollValue = catsScrollBoxAdj.get_value(); let currentScrollValue = catsScrollBoxAdj.get_value();
let boxHeight = catsScrollBoxAlloc.y2 - catsScrollBoxAlloc.y1; let boxHeight = catsScrollBoxAlloc.y2 - catsScrollBoxAlloc.y1;
let buttonAlloc = button.actor.get_allocation_box(); let buttonAlloc = button.get_allocation_box();
let newScrollValue = currentScrollValue; let newScrollValue = currentScrollValue;
if (currentScrollValue > buttonAlloc.y1 - 10) if (currentScrollValue > buttonAlloc.y1 - 10)
newScrollValue = buttonAlloc.y1 - 10; newScrollValue = buttonAlloc.y1 - 10;
@@ -625,7 +629,7 @@ class ApplicationsButton extends PanelMenu.Button {
}); });
let activities = new ActivitiesMenuItem(this); let activities = new ActivitiesMenuItem(this);
this.leftBox.add(activities.actor, { this.leftBox.add(activities, {
expand: false, expand: false,
x_fill: true, x_fill: true,
y_fill: false, y_fill: false,
@@ -661,7 +665,7 @@ class ApplicationsButton extends PanelMenu.Button {
this._tree.load_sync(); this._tree.load_sync();
let root = this._tree.get_root_directory(); let root = this._tree.get_root_directory();
let categoryMenuItem = new CategoryMenuItem(this, null); let categoryMenuItem = new CategoryMenuItem(this, null);
this.categoriesBox.add_actor(categoryMenuItem.actor); this.categoriesBox.add_actor(categoryMenuItem);
let iter = root.iter(); let iter = root.iter();
let nextType; let nextType;
while ((nextType = iter.next()) != GMenu.TreeItemType.INVALID) { while ((nextType = iter.next()) != GMenu.TreeItemType.INVALID) {
@@ -677,7 +681,7 @@ class ApplicationsButton extends PanelMenu.Button {
this._loadCategory(categoryId, dir); this._loadCategory(categoryId, dir);
if (this.applicationsByCategory[categoryId].length > 0) { if (this.applicationsByCategory[categoryId].length > 0) {
let categoryMenuItem = new CategoryMenuItem(this, dir); let categoryMenuItem = new CategoryMenuItem(this, dir);
this.categoriesBox.add_actor(categoryMenuItem.actor); this.categoriesBox.add_actor(categoryMenuItem);
} }
} }
@@ -718,8 +722,8 @@ class ApplicationsButton extends PanelMenu.Button {
item.setDragEnabled(this._desktopTarget.hasDesktop); item.setDragEnabled(this._desktopTarget.hasDesktop);
this._applicationsButtons.set(app, item); this._applicationsButtons.set(app, item);
} }
if (!item.actor.get_parent()) if (!item.get_parent())
this.applicationsBox.add_actor(item.actor); this.applicationsBox.add_actor(item);
} }
} }
+11 -8
View File
@@ -12,29 +12,32 @@ const ShellMountOperation = imports.ui.shellMountOperation;
const ExtensionUtils = imports.misc.extensionUtils; const ExtensionUtils = imports.misc.extensionUtils;
var MountMenuItem = GObject.registerClass(
class MountMenuItem extends PopupMenu.PopupBaseMenuItem { class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
constructor(mount) { _init(mount) {
super(); super._init();
this.label = new St.Label({ text: mount.get_name() }); this.label = new St.Label({ text: mount.get_name() });
this.actor.add(this.label, { expand: true }); this.add(this.label, { expand: true });
this.actor.label_actor = this.label; this.label_actor = this.label;
this.mount = mount; this.mount = mount;
this.connect('destroy', this._onDestroy.bind(this));
let ejectIcon = new St.Icon({ let ejectIcon = new St.Icon({
icon_name: 'media-eject-symbolic', icon_name: 'media-eject-symbolic',
style_class: 'popup-menu-icon' style_class: 'popup-menu-icon'
}); });
let ejectButton = new St.Button({ child: ejectIcon }); let ejectButton = new St.Button({ child: ejectIcon });
ejectButton.connect('clicked', this._eject.bind(this)); ejectButton.connect('clicked', this._eject.bind(this));
this.actor.add(ejectButton); this.add(ejectButton);
this._changedId = mount.connect('changed', this._syncVisibility.bind(this)); this._changedId = mount.connect('changed', this._syncVisibility.bind(this));
this._syncVisibility(); this._syncVisibility();
} }
destroy() { _onDestroy() {
if (this._changedId) { if (this._changedId) {
this.mount.disconnect(this._changedId); this.mount.disconnect(this._changedId);
this._changedId = 0; this._changedId = 0;
@@ -61,7 +64,7 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
} }
_syncVisibility() { _syncVisibility() {
this.actor.visible = this._isInteresting(); this.visible = this._isInteresting();
} }
_eject() { _eject() {
@@ -108,7 +111,7 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
super.activate(event); super.activate(event);
} }
} });
let DriveMenu = GObject.registerClass( let DriveMenu = GObject.registerClass(
class DriveMenu extends PanelMenu.Button { class DriveMenu extends PanelMenu.Button {
+7 -6
View File
@@ -17,19 +17,20 @@ const PlaceDisplay = Me.imports.placeDisplay;
const PLACE_ICON_SIZE = 16; const PLACE_ICON_SIZE = 16;
var PlaceMenuItem = GObject.registerClass(
class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem { class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem {
constructor(info) { _init(info) {
super(); super._init();
this._info = info; this._info = info;
this._icon = new St.Icon({ this._icon = new St.Icon({
gicon: info.icon, gicon: info.icon,
icon_size: PLACE_ICON_SIZE icon_size: PLACE_ICON_SIZE
}); });
this.actor.add_child(this._icon); this.add_child(this._icon);
this._label = new St.Label({ text: info.name, x_expand: true }); this._label = new St.Label({ text: info.name, x_expand: true });
this.actor.add_child(this._label); this.add_child(this._label);
if (info.isRemovable()) { if (info.isRemovable()) {
this._ejectIcon = new St.Icon({ this._ejectIcon = new St.Icon({
@@ -38,7 +39,7 @@ class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem {
}); });
this._ejectButton = new St.Button({ child: this._ejectIcon }); this._ejectButton = new St.Button({ child: this._ejectIcon });
this._ejectButton.connect('clicked', info.eject.bind(info)); this._ejectButton.connect('clicked', info.eject.bind(info));
this.actor.add_child(this._ejectButton); this.add_child(this._ejectButton);
} }
this._changedId = info.connect('changed', this._changedId = info.connect('changed',
@@ -64,7 +65,7 @@ class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem {
this._icon.gicon = info.icon; this._icon.gicon = info.icon;
this._label.text = info.name; this._label.text = info.name;
} }
} });
const SECTIONS = [ const SECTIONS = [
'special', 'special',
+5 -5
View File
@@ -221,7 +221,7 @@ class BaseButton {
this.actor.connect('destroy', this._onDestroy.bind(this)); this.actor.connect('destroy', this._onDestroy.bind(this));
this.actor.connect('popup-menu', this._onPopupMenu.bind(this)); this.actor.connect('popup-menu', this._onPopupMenu.bind(this));
this._contextMenuManager = new PopupMenu.PopupMenuManager(this); this._contextMenuManager = new PopupMenu.PopupMenuManager(this.actor);
this._switchWorkspaceId = global.window_manager.connect( this._switchWorkspaceId = global.window_manager.connect(
'switch-workspace', this._updateVisibility.bind(this)); 'switch-workspace', this._updateVisibility.bind(this));
@@ -481,7 +481,7 @@ class AppButton extends BaseButton {
this._multiWindowTitle.add(label); this._multiWindowTitle.add(label);
this._multiWindowTitle.label_actor = label; this._multiWindowTitle.label_actor = label;
this._menuManager = new PopupMenu.PopupMenuManager(this); this._menuManager = new PopupMenu.PopupMenuManager(this.actor);
this._menu = new PopupMenu.PopupMenu(this.actor, 0.5, St.Side.BOTTOM); this._menu = new PopupMenu.PopupMenu(this.actor, 0.5, St.Side.BOTTOM);
this._menu.connect('open-state-changed', _onMenuStateChanged); this._menu.connect('open-state-changed', _onMenuStateChanged);
this._menu.actor.hide(); this._menu.actor.hide();
@@ -809,7 +809,7 @@ class WindowList {
this._updateWorkspaceIndicatorVisibility.bind(this)); this._updateWorkspaceIndicatorVisibility.bind(this));
this._updateWorkspaceIndicatorVisibility(); this._updateWorkspaceIndicatorVisibility();
this._menuManager = new PopupMenu.PopupMenuManager(this); this._menuManager = new PopupMenu.PopupMenuManager(this.actor);
this._menuManager.addMenu(this._workspaceIndicator.menu); this._menuManager.addMenu(this._workspaceIndicator.menu);
Main.layoutManager.addChrome(this.actor, { Main.layoutManager.addChrome(this.actor, {
@@ -917,7 +917,7 @@ class WindowList {
let workspacesOnMonitor = this._monitor == Main.layoutManager.primaryMonitor || let workspacesOnMonitor = this._monitor == Main.layoutManager.primaryMonitor ||
!this._mutterSettings.get_boolean('workspaces-only-on-primary'); !this._mutterSettings.get_boolean('workspaces-only-on-primary');
this._workspaceIndicator.actor.visible = hasWorkspaces && workspacesOnMonitor; this._workspaceIndicator.visible = hasWorkspaces && workspacesOnMonitor;
} }
_getPreferredUngroupedWindowListWidth() { _getPreferredUngroupedWindowListWidth() {
@@ -940,7 +940,7 @@ class WindowList {
} }
_getMaxWindowListWidth() { _getMaxWindowListWidth() {
let indicatorsBox = this._workspaceIndicator.actor.get_parent(); let indicatorsBox = this._workspaceIndicator.get_parent();
return this.actor.width - indicatorsBox.get_preferred_width(-1)[1]; return this.actor.width - indicatorsBox.get_preferred_width(-1)[1];
} }
+1 -1
View File
@@ -1,5 +1,5 @@
project('gnome-shell-extensions', project('gnome-shell-extensions',
version: '3.33.2', version: '3.33.3',
meson_version: '>= 0.44.0', meson_version: '>= 0.44.0',
license: 'GPL2+' license: 'GPL2+'
) )