boxpointer: If available, use source actor for constraining
If a source actor is set, use that for determining the arrow side (i.e. whether the BoxPointer widget should expand in a certain direction). This is better because it ensures that the popup is displayed on the same monitor as the widget it originates from. Without this, entering text with a vertically aligned input method close to the bottom of a monitor would expand the BoxPointer downwards on the monitor beneath it, instead of upwards, which is what one would expect. https://bugzilla.gnome.org/show_bug.cgi?id=786886
This commit is contained in:
parent
6914f8fb32
commit
96e14dcbe7
@ -587,7 +587,10 @@ var BoxPointer = new Lang.Class({
|
|||||||
_calculateArrowSide: function(arrowSide) {
|
_calculateArrowSide: function(arrowSide) {
|
||||||
let sourceAllocation = Shell.util_get_transformed_allocation(this._sourceActor);
|
let sourceAllocation = Shell.util_get_transformed_allocation(this._sourceActor);
|
||||||
let [minWidth, minHeight, boxWidth, boxHeight] = this._container.get_preferred_size();
|
let [minWidth, minHeight, boxWidth, boxHeight] = this._container.get_preferred_size();
|
||||||
let monitor = Main.layoutManager.findMonitorForActor(this.actor);
|
let monitorActor = this.sourceActor;
|
||||||
|
if (!monitorActor)
|
||||||
|
monitorActor = this.actor;
|
||||||
|
let monitor = Main.layoutManager.findMonitorForActor(monitorActor);
|
||||||
|
|
||||||
switch (arrowSide) {
|
switch (arrowSide) {
|
||||||
case St.Side.TOP:
|
case St.Side.TOP:
|
||||||
|
Loading…
Reference in New Issue
Block a user