introspect: Introspect screen size
To be used by the screen cast service. https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1372
This commit is contained in:
parent
73436b5276
commit
a9b803f075
@ -70,6 +70,14 @@
|
|||||||
-->
|
-->
|
||||||
<property name="AnimationsEnabled" type="b" access="read"/>
|
<property name="AnimationsEnabled" type="b" access="read"/>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
ScreenSize:
|
||||||
|
@short_description: The size of the screen
|
||||||
|
|
||||||
|
Since: 3
|
||||||
|
-->
|
||||||
|
<property name="ScreenSize" type="(ii)" access="read"/>
|
||||||
|
|
||||||
<property name="version" type="u" access="read"/>
|
<property name="version" type="u" access="read"/>
|
||||||
</interface>
|
</interface>
|
||||||
</node>
|
</node>
|
||||||
|
@ -5,7 +5,7 @@ const INTROSPECT_SCHEMA = 'org.gnome.shell';
|
|||||||
const INTROSPECT_KEY = 'introspect';
|
const INTROSPECT_KEY = 'introspect';
|
||||||
const APP_WHITELIST = ['org.freedesktop.impl.portal.desktop.gtk'];
|
const APP_WHITELIST = ['org.freedesktop.impl.portal.desktop.gtk'];
|
||||||
|
|
||||||
const INTROSPECT_DBUS_API_VERSION = 2;
|
const INTROSPECT_DBUS_API_VERSION = 3;
|
||||||
|
|
||||||
const { loadInterfaceXML } = imports.misc.fileUtils;
|
const { loadInterfaceXML } = imports.misc.fileUtils;
|
||||||
|
|
||||||
@ -59,6 +59,11 @@ var IntrospectService = class {
|
|||||||
this._settings.connect('notify::enable-animations',
|
this._settings.connect('notify::enable-animations',
|
||||||
this._syncAnimationsEnabled.bind(this));
|
this._syncAnimationsEnabled.bind(this));
|
||||||
this._syncAnimationsEnabled();
|
this._syncAnimationsEnabled();
|
||||||
|
|
||||||
|
const monitorManager = Meta.MonitorManager.get();
|
||||||
|
monitorManager.connect('monitors-changed',
|
||||||
|
this._syncScreenSize.bind(this));
|
||||||
|
this._syncScreenSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
_isStandaloneApp(app) {
|
_isStandaloneApp(app) {
|
||||||
@ -209,10 +214,28 @@ var IntrospectService = class {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_syncScreenSize() {
|
||||||
|
const oldScreenWidth = this._screenWidth;
|
||||||
|
const oldScreenHeight = this._screenHeight;
|
||||||
|
this._screenWidth = global.screen_width;
|
||||||
|
this._screenHeight = global.screen_height;
|
||||||
|
|
||||||
|
if (oldScreenWidth !== this._screenWidth ||
|
||||||
|
oldScreenHeight !== this._screenHeight) {
|
||||||
|
const variant = new GLib.Variant('(ii)',
|
||||||
|
[this._screenWidth, this._screenHeight]);
|
||||||
|
this._dbusImpl.emit_property_changed('ScreenSize', variant);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
get AnimationsEnabled() {
|
get AnimationsEnabled() {
|
||||||
return this._animationsEnabled;
|
return this._animationsEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get ScreenSize() {
|
||||||
|
return [this._screenWidth, this._screenHeight];
|
||||||
|
}
|
||||||
|
|
||||||
get version() {
|
get version() {
|
||||||
return INTROSPECT_DBUS_API_VERSION;
|
return INTROSPECT_DBUS_API_VERSION;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user