diff --git a/src/PantheonShell.vala b/src/PantheonShell.vala index 55d802e8..1c14fcf2 100644 --- a/src/PantheonShell.vala +++ b/src/PantheonShell.vala @@ -237,7 +237,25 @@ namespace Gala { return; } - // TODO + Meta.Side side = TOP; + switch (anchor) { + case TOP: + break; + + case BOTTOM: + side = BOTTOM; + break; + + case LEFT: + side = LEFT; + break; + + case RIGHT: + side = RIGHT; + break; + } + + ShellClientsManager.get_instance ().set_anchor (window, side); } internal static void focus (Wl.Client client, Wl.Resource resource) { @@ -267,7 +285,7 @@ namespace Gala { return; } - // TODO + ShellClientsManager.get_instance ().set_size (window, width, height); } internal static void set_hide_mode (Wl.Client client, Wl.Resource resource, [CCode (type = "uint32_t")] Pantheon.Desktop.HideMode hide_mode) { @@ -282,7 +300,7 @@ namespace Gala { return; } - // TODO + ShellClientsManager.get_instance ().set_hide_mode (window, hide_mode); } internal static void set_keep_above (Wl.Client client, Wl.Resource resource) { diff --git a/src/ShellClients/HideTracker.vala b/src/ShellClients/HideTracker.vala index ed84b773..693614b9 100644 --- a/src/ShellClients/HideTracker.vala +++ b/src/ShellClients/HideTracker.vala @@ -13,7 +13,7 @@ public class Gala.HideTracker : Object { public Meta.Display display { get; construct; } public PanelWindow panel { get; construct; } - public PanelWindow.HideMode hide_mode { get; set; default = NEVER; } + public Pantheon.Desktop.HideMode hide_mode { get; set; default = NEVER; } private bool hovered = false; diff --git a/src/ShellClients/PanelClone.vala b/src/ShellClients/PanelClone.vala index ba8dfa78..9d401ca3 100644 --- a/src/ShellClients/PanelClone.vala +++ b/src/ShellClients/PanelClone.vala @@ -11,7 +11,7 @@ public class Gala.PanelClone : Object { public WindowManager wm { get; construct; } public PanelWindow panel { get; construct; } - public PanelWindow.HideMode hide_mode { + public Pantheon.Desktop.HideMode hide_mode { get { return hide_tracker.hide_mode; } diff --git a/src/ShellClients/PanelWindow.vala b/src/ShellClients/PanelWindow.vala index 46379336..913e0ea5 100644 --- a/src/ShellClients/PanelWindow.vala +++ b/src/ShellClients/PanelWindow.vala @@ -6,14 +6,6 @@ */ public class Gala.PanelWindow : Object { - public enum HideMode { - NEVER, - MAXIMIZED_FOCUS_WINDOW, - OVERLAPPING_FOCUS_WINDOW, - OVERLAPPING_WINDOW, - ALWAYS - } - private const int BARRIER_OFFSET = 50; // Allow hot corner trigger private static HashTable window_struts = new HashTable (null, null); @@ -137,7 +129,7 @@ public class Gala.PanelWindow : Object { }); } - public void set_hide_mode (HideMode hide_mode) { + public void set_hide_mode (Pantheon.Desktop.HideMode hide_mode) { clone.hide_mode = hide_mode; destroy_barrier (); diff --git a/src/ShellClients/ShellClientsManager.vala b/src/ShellClients/ShellClientsManager.vala index fa5fce49..4a58002e 100644 --- a/src/ShellClients/ShellClientsManager.vala +++ b/src/ShellClients/ShellClientsManager.vala @@ -79,7 +79,7 @@ public class Gala.ShellClientsManager : Object { windows[window].set_size (width, height); } - public void set_hide_mode (Meta.Window window, PanelWindow.HideMode hide_mode) { + public void set_hide_mode (Meta.Window window, Pantheon.Desktop.HideMode hide_mode) { if (!(window in windows)) { warning ("Set anchor for window before hide mode."); return;