Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorVsevolod Kukol <sevoku@xamarin.com>2015-12-21 12:09:28 +0300
committerVsevolod Kukol <sevoku@xamarin.com>2015-12-21 12:09:28 +0300
commit6cf90a3902e792ddbb94c17c238cedbfbfe4dcbb (patch)
treeef1d1b5e7e27363b65481c9a44f43e52d3ec1017 /main
parent84f0a2b34845a4969ad1ae606d4b1db9c37c19b9 (diff)
[Ide] Fix completion popover alignment
Align the popover next to the alignemnt target rectangle (caret) and not over its border. This happens only when the target is on the left or top side of the popover.
Diffstat (limited to 'main')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components/PopoverWindow.cs10
1 files changed, 6 insertions, 4 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/PopoverWindow.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/PopoverWindow.cs
index 7be6f51a2f..10e8832f09 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/PopoverWindow.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/PopoverWindow.cs
@@ -233,6 +233,8 @@ namespace MonoDevelop.Components
caret = GtkUtil.ToScreenCoordinates (parent, parent.GdkWindow, caret);
}
+ caret.Inflate (CaretSpacing, CaretSpacing);
+
Gtk.Requisition request = SizeRequest ();
var screen = parent.Screen;
Gdk.Rectangle geometry = GtkWorkarounds.GetUsableMonitorGeometry (screen, screen.GetMonitorAtPoint (caret.X, caret.Y));
@@ -269,14 +271,14 @@ namespace MonoDevelop.Components
switch ((PopupPosition)((int)position & 0x0f)) {
case PopupPosition.Top:
- y = caret.Bottom + CaretSpacing;
+ y = caret.Bottom + 1;
break;
case PopupPosition.Bottom:
- y = caret.Y - request.Height - CaretSpacing; break;
+ y = caret.Y - request.Height; break;
case PopupPosition.Right:
- x = caret.X - request.Width - CaretSpacing; break;
+ x = caret.X - request.Width; break;
case PopupPosition.Left:
- x = caret.Right + CaretSpacing; break;
+ x = caret.Right + 1; break;
}
int offset;
if ((position & PopupPosition.Top) != 0 || (position & PopupPosition.Bottom) != 0) {