Add "precision" to boxpointer alignment
Allows the boxpointer arrow to be at a fixed percentage of the bubble https://bugzilla.gnome.org/show_bug.cgi?id=642031
This commit is contained in:
parent
140022aaf2
commit
8f3376ce62
@ -505,7 +505,7 @@ AppIconMenu.prototype = {
|
|||||||
if (St.Widget.get_default_direction() == St.TextDirection.RTL)
|
if (St.Widget.get_default_direction() == St.TextDirection.RTL)
|
||||||
side = St.Side.RIGHT;
|
side = St.Side.RIGHT;
|
||||||
|
|
||||||
PopupMenu.PopupMenu.prototype._init.call(this, source.actor, St.Align.MIDDLE, side, 0);
|
PopupMenu.PopupMenu.prototype._init.call(this, source.actor, 0.5, side, 0);
|
||||||
|
|
||||||
this._source = source;
|
this._source = source;
|
||||||
|
|
||||||
|
@ -320,9 +320,11 @@ BoxPointer.prototype = {
|
|||||||
// separated from its sourceActor
|
// separated from its sourceActor
|
||||||
let primary = global.get_primary_monitor();
|
let primary = global.get_primary_monitor();
|
||||||
let themeNode = this.actor.get_theme_node();
|
let themeNode = this.actor.get_theme_node();
|
||||||
let halfBorder = themeNode.get_length('-arrow-border-width') / 2;
|
let borderWidth = themeNode.get_length('-arrow-border-width');
|
||||||
let halfBase = themeNode.get_length('-arrow-base') / 2;
|
let arrowBase = themeNode.get_length('-arrow-base');
|
||||||
let borderRadius = themeNode.get_length('-arrow-border-radius');
|
let borderRadius = themeNode.get_length('-arrow-border-radius');
|
||||||
|
let margin = (4 * borderRadius + borderWidth + arrowBase);
|
||||||
|
let halfMargin = margin / 2;
|
||||||
|
|
||||||
let resX, resY;
|
let resX, resY;
|
||||||
|
|
||||||
@ -346,17 +348,7 @@ BoxPointer.prototype = {
|
|||||||
switch (this._arrowSide) {
|
switch (this._arrowSide) {
|
||||||
case St.Side.TOP:
|
case St.Side.TOP:
|
||||||
case St.Side.BOTTOM:
|
case St.Side.BOTTOM:
|
||||||
switch (alignment) {
|
resX = sourceCenterX - (halfMargin + (natWidth - margin) * alignment);
|
||||||
case St.Align.START:
|
|
||||||
resX = sourceCenterX - (halfBase + borderRadius + halfBorder);
|
|
||||||
break;
|
|
||||||
case St.Align.MIDDLE:
|
|
||||||
resX = sourceCenterX - (natWidth / 2);
|
|
||||||
break;
|
|
||||||
case St.Align.END:
|
|
||||||
resX = sourceCenterX - natWidth + (halfBase + borderRadius + halfBorder);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
resX = Math.max(resX, primary.x + 10);
|
resX = Math.max(resX, primary.x + 10);
|
||||||
resX = Math.min(resX, primary.x + primary.width - (10 + natWidth));
|
resX = Math.min(resX, primary.x + primary.width - (10 + natWidth));
|
||||||
@ -365,17 +357,7 @@ BoxPointer.prototype = {
|
|||||||
|
|
||||||
case St.Side.LEFT:
|
case St.Side.LEFT:
|
||||||
case St.Side.RIGHT:
|
case St.Side.RIGHT:
|
||||||
switch (alignment) {
|
resY = sourceCenterY - (halfMargin + (natHeight - margin) * alignment);
|
||||||
case St.Align.START:
|
|
||||||
resY = sourceCenterY - (halfBase + borderRadius + halfBorder);
|
|
||||||
break;
|
|
||||||
case St.Align.MIDDLE:
|
|
||||||
resY = sourceCenterY - (natHeight / 2);
|
|
||||||
break;
|
|
||||||
case St.Align.END:
|
|
||||||
resY = sourceCenterY - natHeight + (halfBase + borderRadius + halfBorder);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
resY = Math.max(resY, primary.y + 10);
|
resY = Math.max(resY, primary.y + 10);
|
||||||
resY = Math.min(resY, primary.y + primary.height - (10 + natHeight));
|
resY = Math.min(resY, primary.y + primary.height - (10 + natHeight));
|
||||||
|
@ -56,7 +56,7 @@ DateMenuButton.prototype = {
|
|||||||
//this._eventSource = new Calendar.FakeEventSource();
|
//this._eventSource = new Calendar.FakeEventSource();
|
||||||
this._eventSource = new Calendar.EvolutionEventSource();
|
this._eventSource = new Calendar.EvolutionEventSource();
|
||||||
|
|
||||||
PanelMenu.Button.prototype._init.call(this, St.Align.START);
|
PanelMenu.Button.prototype._init.call(this, 0.0);
|
||||||
|
|
||||||
this._clock = new St.Label();
|
this._clock = new St.Label();
|
||||||
this.actor.set_child(this._clock);
|
this.actor.set_child(this._clock);
|
||||||
|
@ -1802,7 +1802,7 @@ MessageTray.prototype = {
|
|||||||
if (!this._clickedSummaryItem)
|
if (!this._clickedSummaryItem)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
this._summaryNotificationBoxPointer.setPosition(this._clickedSummaryItem.actor, 0, St.Align.MIDDLE);
|
this._summaryNotificationBoxPointer.setPosition(this._clickedSummaryItem.actor, 0, 0.5);
|
||||||
},
|
},
|
||||||
|
|
||||||
_unsetClickedSummaryItem: function() {
|
_unsetClickedSummaryItem: function() {
|
||||||
|
@ -195,7 +195,7 @@ AppMenuButton.prototype = {
|
|||||||
__proto__: PanelMenu.Button.prototype,
|
__proto__: PanelMenu.Button.prototype,
|
||||||
|
|
||||||
_init: function() {
|
_init: function() {
|
||||||
PanelMenu.Button.prototype._init.call(this, St.Align.START);
|
PanelMenu.Button.prototype._init.call(this, 0.0);
|
||||||
this._metaDisplay = global.screen.get_display();
|
this._metaDisplay = global.screen.get_display();
|
||||||
this._startingApps = [];
|
this._startingApps = [];
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ SystemStatusButton.prototype = {
|
|||||||
__proto__: Button.prototype,
|
__proto__: Button.prototype,
|
||||||
|
|
||||||
_init: function(iconName,tooltipText) {
|
_init: function(iconName,tooltipText) {
|
||||||
Button.prototype._init.call(this, St.Align.START);
|
Button.prototype._init.call(this, 0.0);
|
||||||
this._iconActor = new St.Icon({ icon_name: iconName,
|
this._iconActor = new St.Icon({ icon_name: iconName,
|
||||||
icon_type: St.IconType.SYMBOLIC,
|
icon_type: St.IconType.SYMBOLIC,
|
||||||
style_class: 'system-status-icon' });
|
style_class: 'system-status-icon' });
|
||||||
|
@ -27,7 +27,7 @@ StatusMenuButton.prototype = {
|
|||||||
__proto__: PanelMenu.Button.prototype,
|
__proto__: PanelMenu.Button.prototype,
|
||||||
|
|
||||||
_init: function() {
|
_init: function() {
|
||||||
PanelMenu.Button.prototype._init.call(this, St.Align.START);
|
PanelMenu.Button.prototype._init.call(this, 0.0);
|
||||||
let box = new St.BoxLayout({ name: 'panelStatusMenu' });
|
let box = new St.BoxLayout({ name: 'panelStatusMenu' });
|
||||||
this.actor.set_child(box);
|
this.actor.set_child(box);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user