diff --git a/Perspex.sln b/Perspex.sln
index 89a70f102b..4d2e13bb10 100644
--- a/Perspex.sln
+++ b/Perspex.sln
@@ -70,6 +70,12 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared", "Shared", "{A689DE
src\Shared\SharedAssemblyInfo.cs = src\Shared\SharedAssemblyInfo.cs
EndProjectSection
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Gtk", "Gtk", "{B9894058-278A-46B5-B6ED-AD613FCC03B3}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Gtk", "src\Gtk\Perspex.Gtk\Perspex.Gtk.csproj", "{54F237D5-A70A-4752-9656-0C70B1A7B047}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Cairo", "src\Gtk\Perspex.Cairo\Perspex.Cairo.csproj", "{FB05AC90-89BA-4F2F-A924-F37875FB547C}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -180,6 +186,14 @@ Global
{78CAFE33-DBEB-4132-8A28-81CFE8A4933C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{78CAFE33-DBEB-4132-8A28-81CFE8A4933C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{78CAFE33-DBEB-4132-8A28-81CFE8A4933C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -200,5 +214,7 @@ Global
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{3E53A01A-B331-47F3-B828-4A5717E77A24} = {8B6A8209-894F-4BA1-B880-965FD453982C}
{78CAFE33-DBEB-4132-8A28-81CFE8A4933C} = {9B9E3891-2366-4253-A952-D08BCEB71098}
+ {54F237D5-A70A-4752-9656-0C70B1A7B047} = {B9894058-278A-46B5-B6ED-AD613FCC03B3}
+ {FB05AC90-89BA-4F2F-A924-F37875FB547C} = {B9894058-278A-46B5-B6ED-AD613FCC03B3}
EndGlobalSection
EndGlobal
diff --git a/samples/XamlTestApplication/XamlTestApplication.csproj b/samples/XamlTestApplication/XamlTestApplication.csproj
index d365195058..0f945f417e 100644
--- a/samples/XamlTestApplication/XamlTestApplication.csproj
+++ b/samples/XamlTestApplication/XamlTestApplication.csproj
@@ -179,7 +179,7 @@
{3e53a01a-b331-47f3-b828-4a5717e77a24}
- Perspex.Xaml
+ Perspex.Markup.Xaml
{3e908f67-5543-4879-a1dc-08eace79b3cd}
diff --git a/src/Cairo/Perspex.Cairo/CairoExtensions.cs b/src/Gtk/Perspex.Cairo/CairoExtensions.cs
similarity index 99%
rename from src/Cairo/Perspex.Cairo/CairoExtensions.cs
rename to src/Gtk/Perspex.Cairo/CairoExtensions.cs
index 364e330c09..dd09e7e46b 100644
--- a/src/Cairo/Perspex.Cairo/CairoExtensions.cs
+++ b/src/Gtk/Perspex.Cairo/CairoExtensions.cs
@@ -12,7 +12,7 @@ namespace Perspex.Cairo
{
public static Cairo.Matrix ToCairo(this Matrix m)
{
- return new Cairo.Matrix(m.M11, m.M12, m.M21, m.M22, m.OffsetX, m.OffsetY);
+ return new Cairo.Matrix(m.M11, m.M12, m.M21, m.M22, m.M31, m.M32);
}
public static Cairo.PointD ToCairo(this Point p)
diff --git a/src/Cairo/Perspex.Cairo/CairoPlatform.cs b/src/Gtk/Perspex.Cairo/CairoPlatform.cs
similarity index 100%
rename from src/Cairo/Perspex.Cairo/CairoPlatform.cs
rename to src/Gtk/Perspex.Cairo/CairoPlatform.cs
diff --git a/src/Cairo/Perspex.Cairo/Media/DrawingContext.cs b/src/Gtk/Perspex.Cairo/Media/DrawingContext.cs
similarity index 99%
rename from src/Cairo/Perspex.Cairo/Media/DrawingContext.cs
rename to src/Gtk/Perspex.Cairo/Media/DrawingContext.cs
index b347c2f7b7..ac7294fd80 100644
--- a/src/Cairo/Perspex.Cairo/Media/DrawingContext.cs
+++ b/src/Gtk/Perspex.Cairo/Media/DrawingContext.cs
@@ -15,7 +15,6 @@ namespace Perspex.Cairo.Media
using IBitmap = Perspex.Media.Imaging.IBitmap;
using System.Collections.Generic;
-
///
/// Draws using Direct2D1.
///
diff --git a/src/Cairo/Perspex.Cairo/Media/FormattedTextImpl.cs b/src/Gtk/Perspex.Cairo/Media/FormattedTextImpl.cs
similarity index 99%
rename from src/Cairo/Perspex.Cairo/Media/FormattedTextImpl.cs
rename to src/Gtk/Perspex.Cairo/Media/FormattedTextImpl.cs
index 3b1054cdd0..c43dc10fca 100644
--- a/src/Cairo/Perspex.Cairo/Media/FormattedTextImpl.cs
+++ b/src/Gtk/Perspex.Cairo/Media/FormattedTextImpl.cs
@@ -92,7 +92,7 @@ namespace Perspex.Cairo.Media
return this.Layout.IndexToPos(index).ToPerspex();
}
- public IEnumerable HitTestTextRange(int index, int length, Point origin)
+ public IEnumerable HitTestTextRange(int index, int length)
{
var ranges = new List();
diff --git a/src/Cairo/Perspex.Cairo/Media/Imaging/BitmapImpl.cs b/src/Gtk/Perspex.Cairo/Media/Imaging/BitmapImpl.cs
similarity index 100%
rename from src/Cairo/Perspex.Cairo/Media/Imaging/BitmapImpl.cs
rename to src/Gtk/Perspex.Cairo/Media/Imaging/BitmapImpl.cs
diff --git a/src/Cairo/Perspex.Cairo/Media/Imaging/RenderTargetBitmapImpl.cs b/src/Gtk/Perspex.Cairo/Media/Imaging/RenderTargetBitmapImpl.cs
similarity index 100%
rename from src/Cairo/Perspex.Cairo/Media/Imaging/RenderTargetBitmapImpl.cs
rename to src/Gtk/Perspex.Cairo/Media/Imaging/RenderTargetBitmapImpl.cs
diff --git a/src/Cairo/Perspex.Cairo/Media/StreamGeometryContextImpl.cs b/src/Gtk/Perspex.Cairo/Media/StreamGeometryContextImpl.cs
similarity index 100%
rename from src/Cairo/Perspex.Cairo/Media/StreamGeometryContextImpl.cs
rename to src/Gtk/Perspex.Cairo/Media/StreamGeometryContextImpl.cs
diff --git a/src/Cairo/Perspex.Cairo/Media/StreamGeometryImpl.cs b/src/Gtk/Perspex.Cairo/Media/StreamGeometryImpl.cs
similarity index 100%
rename from src/Cairo/Perspex.Cairo/Media/StreamGeometryImpl.cs
rename to src/Gtk/Perspex.Cairo/Media/StreamGeometryImpl.cs
diff --git a/src/Cairo/Perspex.Cairo/Perspex.Cairo.csproj b/src/Gtk/Perspex.Cairo/Perspex.Cairo.csproj
similarity index 94%
rename from src/Cairo/Perspex.Cairo/Perspex.Cairo.csproj
rename to src/Gtk/Perspex.Cairo/Perspex.Cairo.csproj
index 042d9e370f..f612517ebd 100644
--- a/src/Cairo/Perspex.Cairo/Perspex.Cairo.csproj
+++ b/src/Gtk/Perspex.Cairo/Perspex.Cairo.csproj
@@ -45,7 +45,7 @@
gtk-sharp-2.0
- ..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll
+ ..\..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll
True
@@ -57,10 +57,10 @@
- ..\..\packages\Rx-Core.2.2.5\lib\net45\System.Reactive.Core.dll
+ ..\..\..\packages\Rx-Core.2.2.5\lib\net45\System.Reactive.Core.dll
- ..\..\packages\Rx-Interfaces.2.2.5\lib\net45\System.Reactive.Interfaces.dll
+ ..\..\..\packages\Rx-Interfaces.2.2.5\lib\net45\System.Reactive.Interfaces.dll
gtk-sharp-2.0
diff --git a/src/Cairo/Perspex.Cairo/Properties/AssemblyInfo.cs b/src/Gtk/Perspex.Cairo/Properties/AssemblyInfo.cs
similarity index 100%
rename from src/Cairo/Perspex.Cairo/Properties/AssemblyInfo.cs
rename to src/Gtk/Perspex.Cairo/Properties/AssemblyInfo.cs
diff --git a/src/Cairo/Perspex.Cairo/Renderer.cs b/src/Gtk/Perspex.Cairo/Renderer.cs
similarity index 100%
rename from src/Cairo/Perspex.Cairo/Renderer.cs
rename to src/Gtk/Perspex.Cairo/Renderer.cs
diff --git a/src/Cairo/Perspex.Cairo/packages.config b/src/Gtk/Perspex.Cairo/packages.config
similarity index 100%
rename from src/Cairo/Perspex.Cairo/packages.config
rename to src/Gtk/Perspex.Cairo/packages.config
diff --git a/src/Gtk/Perspex.Gtk/Perspex.Gtk.csproj b/src/Gtk/Perspex.Gtk/Perspex.Gtk.csproj
index d520b199fb..858396a5cc 100644
--- a/src/Gtk/Perspex.Gtk/Perspex.Gtk.csproj
+++ b/src/Gtk/Perspex.Gtk/Perspex.Gtk.csproj
@@ -31,7 +31,7 @@
- ..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll
+ ..\..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll
True
@@ -45,13 +45,13 @@
gtk-sharp-2.0
- ..\..\packages\Rx-Interfaces.2.2.5\lib\net45\System.Reactive.Interfaces.dll
+ ..\..\..\packages\Rx-Interfaces.2.2.5\lib\net45\System.Reactive.Interfaces.dll
- ..\..\packages\Rx-Core.2.2.5\lib\net45\System.Reactive.Core.dll
+ ..\..\..\packages\Rx-Core.2.2.5\lib\net45\System.Reactive.Core.dll
- ..\..\packages\Rx-Linq.2.2.5\lib\net45\System.Reactive.Linq.dll
+ ..\..\..\packages\Rx-Linq.2.2.5\lib\net45\System.Reactive.Linq.dll
glib-sharp-2.0