Compare commits

...

1 Commits

Author SHA1 Message Date
Georges Basile Stavracas Neto
602cec9b8e
workspace, workspaceThumbnail: Use window content (WIP) 2019-07-16 14:31:30 -03:00
2 changed files with 11 additions and 9 deletions

View File

@ -86,7 +86,7 @@ class WindowCloneLayout extends Clutter.LayoutManager {
if (child == container._delegate._windowClone) if (child == container._delegate._windowClone)
realWindow = container._delegate.realWindow; realWindow = container._delegate.realWindow;
else else
realWindow = child.source; realWindow = child.content.window_actor;
child.allocate(this._makeBoxForWindow(realWindow.meta_window), child.allocate(this._makeBoxForWindow(realWindow.meta_window),
flags); flags);
@ -111,7 +111,7 @@ var WindowClone = GObject.registerClass({
this.metaWindow._delegate = this; this.metaWindow._delegate = this;
this._workspace = workspace; this._workspace = workspace;
this._windowClone = new Clutter.Clone({ source: realWindow }); this._windowClone = new Clutter.Actor({ content: realWindow.content });
// We expect this to be used for all interaction rather than // We expect this to be used for all interaction rather than
// this._windowClone; as the former is reactive and the latter // this._windowClone; as the former is reactive and the latter
// is not, this just works for most cases. However, for DND all // is not, this just works for most cases. However, for DND all
@ -205,7 +205,7 @@ var WindowClone = GObject.registerClass({
// Delete all windows, starting from the bottom-most (most-modal) one // Delete all windows, starting from the bottom-most (most-modal) one
let windows = this.get_children(); let windows = this.get_children();
for (let i = windows.length - 1; i >= 1; i--) { for (let i = windows.length - 1; i >= 1; i--) {
let realWindow = windows[i].source; let realWindow = windows[i].content.window_actor;
let metaWindow = realWindow.meta_window; let metaWindow = realWindow.meta_window;
metaWindow.delete(global.get_current_time()); metaWindow.delete(global.get_current_time());
@ -237,7 +237,7 @@ var WindowClone = GObject.registerClass({
} }
_doAddAttachedDialog(metaWin, realWin) { _doAddAttachedDialog(metaWin, realWin) {
let clone = new Clutter.Clone({ source: realWin }); let clone = new Clutter.Actor({ content: realWin.content });
clone._sizeChangedId = metaWin.connect('size-changed', clone._sizeChangedId = metaWin.connect('size-changed',
this._onMetaWindowSizeChanged.bind(this)); this._onMetaWindowSizeChanged.bind(this));
clone._posChangedId = metaWin.connect('position-changed', clone._posChangedId = metaWin.connect('position-changed',
@ -290,7 +290,7 @@ var WindowClone = GObject.registerClass({
if (child == this._windowClone) if (child == this._windowClone)
realWindow = this.realWindow; realWindow = this.realWindow;
else else
realWindow = child.source; realWindow = child.content.window_actor;
let metaWindow = realWindow.meta_window; let metaWindow = realWindow.meta_window;
rect = rect.union(metaWindow.get_frame_rect()); rect = rect.union(metaWindow.get_frame_rect());
@ -335,7 +335,7 @@ var WindowClone = GObject.registerClass({
if (child == this._windowClone) if (child == this._windowClone)
realWindow = this.realWindow; realWindow = this.realWindow;
else else
realWindow = child.source; realWindow = child.content.window_actor;
realWindow.meta_window.disconnect(child._sizeChangedId); realWindow.meta_window.disconnect(child._sizeChangedId);
realWindow.meta_window.disconnect(child._posChangedId); realWindow.meta_window.disconnect(child._posChangedId);

View File

@ -47,7 +47,8 @@ class PrimaryActorLayout extends Clutter.FixedLayout {
var WindowClone = class { var WindowClone = class {
constructor(realWindow) { constructor(realWindow) {
this.clone = new Clutter.Clone({ source: realWindow }); this.clone = new Clutter.Actor({ content: realWindow.content,
request_mode: Clutter.RequestMode.CONTENT_SIZE });
/* Can't use a Shell.GenericContainer because of DND and reparenting... */ /* Can't use a Shell.GenericContainer because of DND and reparenting... */
this.actor = new Clutter.Actor({ layout_manager: new PrimaryActorLayout(this.clone), this.actor = new Clutter.Actor({ layout_manager: new PrimaryActorLayout(this.clone),
@ -139,7 +140,8 @@ var WindowClone = class {
} }
_doAddAttachedDialog(metaDialog, realDialog) { _doAddAttachedDialog(metaDialog, realDialog) {
let clone = new Clutter.Clone({ source: realDialog }); let clone = new Clutter.Actor({ content: realDialog.content,
request_mode: Clutter.RequestMode.CONTENT_SIZE });
this._updateDialogPosition(realDialog, clone); this._updateDialogPosition(realDialog, clone);
clone._updateId = realDialog.connect('notify::position', dialog => { clone._updateId = realDialog.connect('notify::position', dialog => {
@ -165,7 +167,7 @@ var WindowClone = class {
_disconnectSignals() { _disconnectSignals() {
this.actor.get_children().forEach(child => { this.actor.get_children().forEach(child => {
let realWindow = child.source; let realWindow = child.content.window_actor;
realWindow.disconnect(child._updateId); realWindow.disconnect(child._updateId);
realWindow.disconnect(child._destroyId); realWindow.disconnect(child._destroyId);