Compare commits
95 Commits
wip/fmuell
...
gnome-3-30
Author | SHA1 | Date | |
---|---|---|---|
![]() |
81309b8eb8 | ||
![]() |
d416691896 | ||
![]() |
7a6ed76a20 | ||
![]() |
a8f6f01d67 | ||
![]() |
1f03c94d31 | ||
![]() |
843ed09b09 | ||
![]() |
51b04134db | ||
![]() |
bfcfa64456 | ||
![]() |
ea3d897439 | ||
![]() |
5979f87295 | ||
![]() |
1cda659732 | ||
![]() |
4010628001 | ||
![]() |
e23f4d6c7c | ||
![]() |
511e8c6584 | ||
![]() |
ee97f73521 | ||
![]() |
ca54b55c01 | ||
![]() |
999cc1214e | ||
![]() |
cf5d496e01 | ||
![]() |
5246da5837 | ||
![]() |
f645368c66 | ||
![]() |
45b4495886 | ||
![]() |
ae0461fd60 | ||
![]() |
4e1747e6ec | ||
![]() |
2a36bf52cb | ||
![]() |
3dffdab1ad | ||
![]() |
fd75921f13 | ||
![]() |
9b9599515a | ||
![]() |
609c81698e | ||
![]() |
62c2dbbc9d | ||
![]() |
a1a7ba7cc7 | ||
![]() |
be35dec71e | ||
![]() |
e55bdb0fbb | ||
![]() |
bacdd1c12d | ||
![]() |
78f6a409aa | ||
![]() |
d7ee164f0f | ||
![]() |
0820b9cbef | ||
![]() |
89a720c050 | ||
![]() |
d2393395ff | ||
![]() |
d21b276c07 | ||
![]() |
ccc5967382 | ||
![]() |
5ee0f743de | ||
![]() |
ec5db74101 | ||
![]() |
24d8066197 | ||
![]() |
c77c47cf29 | ||
![]() |
620bd037d2 | ||
![]() |
54f8232a93 | ||
![]() |
c17ba90209 | ||
![]() |
a3f5354abb | ||
![]() |
00613b304f | ||
![]() |
d44ffc1158 | ||
![]() |
501a1aff68 | ||
![]() |
586a9ff9cd | ||
![]() |
7190666075 | ||
![]() |
e2f6a1980d | ||
![]() |
669582ddbb | ||
![]() |
d9ad834eac | ||
![]() |
fffe58f829 | ||
![]() |
a35382d6fc | ||
![]() |
361955dbf9 | ||
![]() |
873c26ff12 | ||
![]() |
70a89cad45 | ||
![]() |
b1056759e6 | ||
![]() |
24e37fda02 | ||
![]() |
43b8d5e942 | ||
![]() |
deec047313 | ||
![]() |
ef5e195f32 | ||
![]() |
ed1136d36f | ||
![]() |
132eb2b1c5 | ||
![]() |
8d5e01856b | ||
![]() |
2b1f664aed | ||
![]() |
4609cf1912 | ||
![]() |
44b871da92 | ||
![]() |
3e29ab5441 | ||
![]() |
11fb91f60f | ||
![]() |
7ea034c719 | ||
![]() |
b2fabd9356 | ||
![]() |
0892b5dcdb | ||
![]() |
fb39cc5952 | ||
![]() |
969eecb88e | ||
![]() |
cdad6fadf5 | ||
![]() |
33ffdd6061 | ||
![]() |
34fd681936 | ||
![]() |
0cf2d396b0 | ||
![]() |
4a4fa8b2d7 | ||
![]() |
2ed6290a40 | ||
![]() |
94423151b2 | ||
![]() |
f42d9df3e0 | ||
![]() |
150a640c66 | ||
![]() |
a76b28bd72 | ||
![]() |
2ed70ca971 | ||
![]() |
179cd0a3c8 | ||
![]() |
fcdac69eea | ||
![]() |
9d6e1a89fc | ||
![]() |
87a645aa2b | ||
![]() |
b087752b55 |
2
.gitmodules
vendored
2
.gitmodules
vendored
@@ -1,3 +1,3 @@
|
||||
[submodule "subprojects/gvc"]
|
||||
path = subprojects/gvc
|
||||
url = https://git.gnome.org/browse/libgnome-volume-control
|
||||
url = https://gitlab.gnome.org/GNOME/libgnome-volume-control.git
|
||||
|
47
NEWS
47
NEWS
@@ -1,3 +1,50 @@
|
||||
3.30.2
|
||||
======
|
||||
* popupMenu: Fix keyboard activation when numlock is active [Andrea; #550]
|
||||
* Do not block all shortcuts while app folders are expanded [Florian; #648]
|
||||
* Fix regression in handling new input sources [Carlos; #691]
|
||||
* Improve performance of app icon animations [Daniel; !253, !261]
|
||||
* Respect natural-scroll setting for workspace swipe gesture [Erik; #516]
|
||||
* notifications: Support icon theme names in 'image-path' hint [Marco; !285]
|
||||
* Confine window preview titles to workspace area [Florian; !214]
|
||||
* Misc. bug fixes [Florian, Cosimo; #602, #693, #768, #430, !286]
|
||||
|
||||
Contributors:
|
||||
Andrea Azzarone, Cosimo Cecchi, Erik Duxstad, Carlos Garnacho,
|
||||
Florian Müllner, Didier Roche, Marco Trevisan (Treviño), verdre,
|
||||
Daniel van Vugt
|
||||
|
||||
Translators:
|
||||
Rūdolfs Mazurs [lv], Kristjan SCHMIDT [eo], Milo Casagrande [it],
|
||||
Dušan Kazik [sk], gogo [hr], Anish Sheela [ml], Rafael Fontenelle [pt_BR],
|
||||
Daniel Mustieles [es]
|
||||
|
||||
3.30.1
|
||||
======
|
||||
* Cancel search on overview hiding [Marco; !205]
|
||||
* Fix disappearing network icon [Iain; #140]
|
||||
* Improve switch-monitor shortcut handling [Daniel; !208]
|
||||
* Fix missing key information in keyring dialog [Florian; #574]
|
||||
* De-duplicate all entries in run command history [Pascal; #524]
|
||||
* Fix frozen disk unlock dialogs [Florian; #565]
|
||||
* Fix unresponsive-app dialog blocking input in other windows [Florian; #273]
|
||||
* Fix handling of forward-key-event input method signal [Carlos; #531]
|
||||
* Misc. bug fixes [Florian, Marco, Carlos, Pascal, Andrea; #520, #791233,
|
||||
!188, #539, !217, #536, #537, #578, !236, #579, !228, #618, #471, !255]
|
||||
|
||||
Contributors:
|
||||
Andrea Azzarone, Jürg Billeter, Daniel Drake, Carlos Garnacho, Andre Klapper,
|
||||
Iain Lane, Florian Müllner, Bastien Nocera, Pascal Nowack, Jakub Steiner,
|
||||
Ray Strode, Will Thompson, Marco Trevisan (Treviño), Adam Williamson,
|
||||
Andrew Zaborowski
|
||||
|
||||
Translators:
|
||||
Yuras Shumovich [be], Stas Solovey [ru], Justin van Steijn [nl],
|
||||
Dušan Kazik [sk], Khaled Hosny [ar], Madis O [et], Mart Raudsepp [et],
|
||||
Марко Костић [sr], Piotr Drąg [pl], Marek Černocký [cs], Fran Dieguez [gl],
|
||||
Ask Hjorth Larsen [da], Balázs Meskó [hu], Jiri Grönroos [fi],
|
||||
Cheng-Chia Tseng [zh_TW]
|
||||
|
||||
3.30.0
|
||||
======
|
||||
|
||||
|
9
data/dbus-interfaces/meson.build
Normal file
9
data/dbus-interfaces/meson.build
Normal file
@@ -0,0 +1,9 @@
|
||||
dbus_interfaces = [
|
||||
'org.gnome.Shell.Extensions.xml',
|
||||
'org.gnome.Shell.PadOsd.xml',
|
||||
'org.gnome.Shell.Screencast.xml',
|
||||
'org.gnome.Shell.Screenshot.xml',
|
||||
'org.gnome.ShellSearchProvider.xml',
|
||||
'org.gnome.ShellSearchProvider2.xml'
|
||||
]
|
||||
install_data(dbus_interfaces, install_dir: ifacedir)
|
5
data/dbus-interfaces/net.hadess.SensorProxy.xml
Normal file
5
data/dbus-interfaces/net.hadess.SensorProxy.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<node>
|
||||
<interface name="net.hadess.SensorProxy">
|
||||
<property name="HasAccelerometer" type="b" access="read"/>
|
||||
</interface>
|
||||
</node>
|
5
data/dbus-interfaces/net.hadess.SwitcherooControl.xml
Normal file
5
data/dbus-interfaces/net.hadess.SwitcherooControl.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<node>
|
||||
<interface name="net.hadess.SwitcherooControl">
|
||||
<property name="HasDualGpu" type="b" access="read"/>
|
||||
</interface>
|
||||
</node>
|
32
data/dbus-interfaces/org.Gtk.MountOperationHandler.xml
Normal file
32
data/dbus-interfaces/org.Gtk.MountOperationHandler.xml
Normal file
@@ -0,0 +1,32 @@
|
||||
<node>
|
||||
<interface name="org.Gtk.MountOperationHandler">
|
||||
<method name="AskPassword">
|
||||
<arg type="s" direction="in" name="object_id"/>
|
||||
<arg type="s" direction="in" name="message"/>
|
||||
<arg type="s" direction="in" name="icon_name"/>
|
||||
<arg type="s" direction="in" name="default_user"/>
|
||||
<arg type="s" direction="in" name="default_domain"/>
|
||||
<arg type="u" direction="in" name="flags"/>
|
||||
<arg type="u" direction="out" name="response"/>
|
||||
<arg type="a{sv}" direction="out" name="response_details"/>
|
||||
</method>
|
||||
<method name="AskQuestion">
|
||||
<arg type="s" direction="in" name="object_id"/>
|
||||
<arg type="s" direction="in" name="message"/>
|
||||
<arg type="s" direction="in" name="icon_name"/>
|
||||
<arg type="as" direction="in" name="choices"/>
|
||||
<arg type="u" direction="out" name="response"/>
|
||||
<arg type="a{sv}" direction="out" name="response_details"/>
|
||||
</method>
|
||||
<method name="ShowProcesses">
|
||||
<arg type="s" direction="in" name="object_id"/>
|
||||
<arg type="s" direction="in" name="message"/>
|
||||
<arg type="s" direction="in" name="icon_name"/>
|
||||
<arg type="ai" direction="in" name="application_pids"/>
|
||||
<arg type="as" direction="in" name="choices"/>
|
||||
<arg type="u" direction="out" name="response"/>
|
||||
<arg type="a{sv}" direction="out" name="response_details"/>
|
||||
</method>
|
||||
<method name="Close"/>
|
||||
</interface>
|
||||
</node>
|
12
data/dbus-interfaces/org.freedesktop.Application.xml
Normal file
12
data/dbus-interfaces/org.freedesktop.Application.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<node>
|
||||
<interface name="org.freedesktop.Application">
|
||||
<method name="ActivateAction">
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="av" direction="in"/>
|
||||
<arg type="a{sv}" direction="in"/>
|
||||
</method>
|
||||
<method name="Activate">
|
||||
<arg type="a{sv}" direction="in"/>
|
||||
</method>
|
||||
</interface>
|
||||
</node>
|
16
data/dbus-interfaces/org.freedesktop.DBus.xml
Normal file
16
data/dbus-interfaces/org.freedesktop.DBus.xml
Normal file
@@ -0,0 +1,16 @@
|
||||
<node>
|
||||
<interface name="org.freedesktop.DBus">
|
||||
<method name="ListNames">
|
||||
<arg type="as" direction="out" name="names"/>
|
||||
</method>
|
||||
<method name="GetConnectionUnixProcessID">
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="u" direction="out"/>
|
||||
</method>
|
||||
<signal name="NameOwnerChanged">
|
||||
<arg type="s" direction="out" name="name"/>
|
||||
<arg type="s" direction="out" name="oldOwner"/>
|
||||
<arg type="s" direction="out" name="newOwner"/>
|
||||
</signal>
|
||||
</interface>
|
||||
</node>
|
11
data/dbus-interfaces/org.freedesktop.GeoClue2.Agent.xml
Normal file
11
data/dbus-interfaces/org.freedesktop.GeoClue2.Agent.xml
Normal file
@@ -0,0 +1,11 @@
|
||||
<node>
|
||||
<interface name="org.freedesktop.GeoClue2.Agent">
|
||||
<property name="MaxAccuracyLevel" type="u" access="read"/>
|
||||
<method name="AuthorizeApp">
|
||||
<arg name="desktop_id" type="s" direction="in"/>
|
||||
<arg name="req_accuracy_level" type="u" direction="in"/>
|
||||
<arg name="authorized" type="b" direction="out"/>
|
||||
<arg name="allowed_accuracy_level" type="u" direction="out"/>
|
||||
</method>
|
||||
</interface>
|
||||
</node>
|
@@ -0,0 +1,9 @@
|
||||
<node>
|
||||
<interface name="org.freedesktop.GeoClue2.Manager">
|
||||
<property name="InUse" type="b" access="read"/>
|
||||
<property name="AvailableAccuracyLevel" type="u" access="read"/>
|
||||
<method name="AddAgent">
|
||||
<arg name="id" type="s" direction="in"/>
|
||||
</method>
|
||||
</interface>
|
||||
</node>
|
@@ -0,0 +1,13 @@
|
||||
<node>
|
||||
<interface name="org.freedesktop.ModemManager.Modem.Cdma">
|
||||
<method name="GetSignalQuality">
|
||||
<arg type="u" direction="out"/>
|
||||
</method>
|
||||
<method name="GetServingSystem">
|
||||
<arg type="(usu)" direction="out"/>
|
||||
</method>
|
||||
<signal name="SignalQuality">
|
||||
<arg type="u" direction="out"/>
|
||||
</signal>
|
||||
</interface>
|
||||
</node>
|
@@ -0,0 +1,19 @@
|
||||
<node>
|
||||
<interface name="org.freedesktop.ModemManager.Modem.Gsm.Network">
|
||||
<method name="GetRegistrationInfo">
|
||||
<arg type="(uss)" direction="out"/>
|
||||
</method>
|
||||
<method name="GetSignalQuality">
|
||||
<arg type="u" direction="out"/>
|
||||
</method>
|
||||
<property name="AccessTechnology" type="u" access="read"/>
|
||||
<signal name="SignalQuality">
|
||||
<arg type="u" direction="out"/>
|
||||
</signal>
|
||||
<signal name="RegistrationInfo">
|
||||
<arg type="u" direction="out"/>
|
||||
<arg type="s" direction="out"/>
|
||||
<arg type="s" direction="out"/>
|
||||
</signal>
|
||||
</interface>
|
||||
</node>
|
@@ -0,0 +1,6 @@
|
||||
<node>
|
||||
<interface name="org.freedesktop.ModemManager1.Modem.Modem3gpp">
|
||||
<property name="OperatorCode" type="s" access="read"/>
|
||||
<property name="OperatorName" type="s" access="read"/>
|
||||
</interface>
|
||||
</node>
|
@@ -0,0 +1,5 @@
|
||||
<node>
|
||||
<interface name="org.freedesktop.ModemManager1.Modem.ModemCdma">
|
||||
<property name="Sid" type="u" access="read"/>
|
||||
</interface>
|
||||
</node>
|
@@ -0,0 +1,5 @@
|
||||
<node>
|
||||
<interface name="org.freedesktop.ModemManager1.Modem">
|
||||
<property name="SignalQuality" type="(ub)" access="read"/>
|
||||
</interface>
|
||||
</node>
|
35
data/dbus-interfaces/org.freedesktop.Notifications.xml
Normal file
35
data/dbus-interfaces/org.freedesktop.Notifications.xml
Normal file
@@ -0,0 +1,35 @@
|
||||
<node>
|
||||
<interface name="org.freedesktop.Notifications">
|
||||
<method name="Notify">
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="u" direction="in"/>
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="as" direction="in"/>
|
||||
<arg type="a{sv}" direction="in"/>
|
||||
<arg type="i" direction="in"/>
|
||||
<arg type="u" direction="out"/>
|
||||
</method>
|
||||
<method name="CloseNotification">
|
||||
<arg type="u" direction="in"/>
|
||||
</method>
|
||||
<method name="GetCapabilities">
|
||||
<arg type="as" direction="out"/>
|
||||
</method>
|
||||
<method name="GetServerInformation">
|
||||
<arg type="s" direction="out"/>
|
||||
<arg type="s" direction="out"/>
|
||||
<arg type="s" direction="out"/>
|
||||
<arg type="s" direction="out"/>
|
||||
</method>
|
||||
<signal name="NotificationClosed">
|
||||
<arg type="u"/>
|
||||
<arg type="u"/>
|
||||
</signal>
|
||||
<signal name="ActionInvoked">
|
||||
<arg type="u"/>
|
||||
<arg type="s"/>
|
||||
</signal>
|
||||
</interface>
|
||||
</node>
|
13
data/dbus-interfaces/org.freedesktop.PackageKit.Offline.xml
Normal file
13
data/dbus-interfaces/org.freedesktop.PackageKit.Offline.xml
Normal file
@@ -0,0 +1,13 @@
|
||||
<node>
|
||||
<interface name="org.freedesktop.PackageKit.Offline">
|
||||
<property name="UpdatePrepared" type="b" access="read"/>
|
||||
<property name="UpdateTriggered" type="b" access="read"/>
|
||||
<property name="UpgradePrepared" type="b" access="read"/>
|
||||
<property name="UpgradeTriggered" type="b" access="read"/>
|
||||
<property name="PreparedUpgrade" type="a{sv}" access="read"/>
|
||||
<method name="Trigger">
|
||||
<arg type="s" name="action" direction="in"/>
|
||||
</method>
|
||||
<method name="Cancel"/>
|
||||
</interface>
|
||||
</node>
|
11
data/dbus-interfaces/org.freedesktop.UPower.Device.xml
Normal file
11
data/dbus-interfaces/org.freedesktop.UPower.Device.xml
Normal file
@@ -0,0 +1,11 @@
|
||||
<node>
|
||||
<interface name="org.freedesktop.UPower.Device">
|
||||
<property name="Type" type="u" access="read"/>
|
||||
<property name="State" type="u" access="read"/>
|
||||
<property name="Percentage" type="d" access="read"/>
|
||||
<property name="TimeToEmpty" type="x" access="read"/>
|
||||
<property name="TimeToFull" type="x" access="read"/>
|
||||
<property name="IsPresent" type="b" access="read"/>
|
||||
<property name="IconName" type="s" access="read"/>
|
||||
</interface>
|
||||
</node>
|
5
data/dbus-interfaces/org.freedesktop.UPower.xml
Normal file
5
data/dbus-interfaces/org.freedesktop.UPower.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<node>
|
||||
<interface name="org.freedesktop.UPower">
|
||||
<property name="OnBattery" type="b" access="read"/>
|
||||
</interface>
|
||||
</node>
|
18
data/dbus-interfaces/org.freedesktop.bolt1.Device.xml
Normal file
18
data/dbus-interfaces/org.freedesktop.bolt1.Device.xml
Normal file
@@ -0,0 +1,18 @@
|
||||
<node>
|
||||
<interface name="org.freedesktop.bolt1.Device">
|
||||
<property name="Uid" type="s" access="read"></property>
|
||||
<property name="Name" type="s" access="read"></property>
|
||||
<property name="Vendor" type="s" access="read"></property>
|
||||
<property name="Type" type="s" access="read"></property>
|
||||
<property name="Status" type="s" access="read"></property>
|
||||
<property name="Parent" type="s" access="read"></property>
|
||||
<property name="SysfsPath" type="s" access="read"></property>
|
||||
<property name="Stored" type="b" access="read"></property>
|
||||
<property name="Policy" type="s" access="read"></property>
|
||||
<property name="Key" type="s" access="read"></property>
|
||||
<property name="Label" type="s" access="read"></property>
|
||||
<property name="ConnectTime" type="t" access="read"></property>
|
||||
<property name="AuthorizeTime" type="t" access="read"></property>
|
||||
<property name="StoreTime" type="t" access="read"></property>
|
||||
</interface>
|
||||
</node>
|
15
data/dbus-interfaces/org.freedesktop.bolt1.Manager.xml
Normal file
15
data/dbus-interfaces/org.freedesktop.bolt1.Manager.xml
Normal file
@@ -0,0 +1,15 @@
|
||||
<node>
|
||||
<interface name="org.freedesktop.bolt1.Manager">
|
||||
<property name="Probing" type="b" access="read"></property>
|
||||
<property name="AuthMode" type="s" access="readwrite"></property>
|
||||
<method name="EnrollDevice">
|
||||
<arg type="s" name="uid" direction="in"/>
|
||||
<arg type="s" name="policy" direction="in"/>
|
||||
<arg type="s" name="flags" direction="in"/>
|
||||
<arg name="device" direction="out" type="o"/>
|
||||
</method>
|
||||
<signal name="DeviceAdded">
|
||||
<arg name="device" type="o"/>
|
||||
</signal>
|
||||
</interface>
|
||||
</node>
|
15
data/dbus-interfaces/org.freedesktop.impl.portal.Access.xml
Normal file
15
data/dbus-interfaces/org.freedesktop.impl.portal.Access.xml
Normal file
@@ -0,0 +1,15 @@
|
||||
<node>
|
||||
<interface name="org.freedesktop.impl.portal.Access">
|
||||
<method name="AccessDialog">
|
||||
<arg type="o" name="handle" direction="in"/>
|
||||
<arg type="s" name="app_id" direction="in"/>
|
||||
<arg type="s" name="parent_window" direction="in"/>
|
||||
<arg type="s" name="title" direction="in"/>
|
||||
<arg type="s" name="subtitle" direction="in"/>
|
||||
<arg type="s" name="body" direction="in"/>
|
||||
<arg type="a{sv}" name="options" direction="in"/>
|
||||
<arg type="u" name="response" direction="out"/>
|
||||
<arg type="a{sv}" name="results" direction="out"/>
|
||||
</method>
|
||||
</interface>
|
||||
</node>
|
@@ -0,0 +1,24 @@
|
||||
<node>
|
||||
<interface name="org.freedesktop.impl.portal.PermissionStore">
|
||||
<method name="Lookup">
|
||||
<arg name="table" type="s" direction="in"/>
|
||||
<arg name="id" type="s" direction="in"/>
|
||||
<arg name="permissions" type="a{sas}" direction="out"/>
|
||||
<arg name="data" type="v" direction="out"/>
|
||||
</method>
|
||||
<method name="Set">
|
||||
<arg name="table" type="s" direction="in"/>
|
||||
<arg name="create" type="b" direction="in"/>
|
||||
<arg name="id" type="s" direction="in"/>
|
||||
<arg name="app_permissions" type="a{sas}" direction="in"/>
|
||||
<arg name="data" type="v" direction="in"/>
|
||||
</method>
|
||||
<signal name="Changed">
|
||||
<arg name="table" type="s" direction="out"/>
|
||||
<arg name="id" type="s" direction="out"/>
|
||||
<arg name="deleted" type="b" direction="out"/>
|
||||
<arg name="data" type="v" direction="out"/>
|
||||
<arg name="permissions" type="a{sas}" direction="out"/>
|
||||
</signal>
|
||||
</interface>
|
||||
</node>
|
@@ -0,0 +1,5 @@
|
||||
<node>
|
||||
<interface name="org.freedesktop.impl.portal.Request">
|
||||
<method name="Close"/>
|
||||
</interface>
|
||||
</node>
|
27
data/dbus-interfaces/org.freedesktop.login1.Manager.xml
Normal file
27
data/dbus-interfaces/org.freedesktop.login1.Manager.xml
Normal file
@@ -0,0 +1,27 @@
|
||||
<node>
|
||||
<interface name="org.freedesktop.login1.Manager">
|
||||
<method name="Suspend">
|
||||
<arg type="b" direction="in"/>
|
||||
</method>
|
||||
<method name="CanSuspend">
|
||||
<arg type="s" direction="out"/>
|
||||
</method>
|
||||
<method name="Inhibit">
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="h" direction="out"/>
|
||||
</method>
|
||||
<method name="GetSession">
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="o" direction="out"/>
|
||||
</method>
|
||||
<method name="ListSessions">
|
||||
<arg name="sessions" type="a(susso)" direction="out"/>
|
||||
</method>
|
||||
<signal name="PrepareForSleep">
|
||||
<arg type="b" direction="out"/>
|
||||
</signal>
|
||||
</interface>
|
||||
</node>
|
15
data/dbus-interfaces/org.freedesktop.login1.Session.xml
Normal file
15
data/dbus-interfaces/org.freedesktop.login1.Session.xml
Normal file
@@ -0,0 +1,15 @@
|
||||
<node>
|
||||
<interface name="org.freedesktop.login1.Session">
|
||||
<signal name="Lock"/>
|
||||
<signal name="Unlock"/>
|
||||
<property name="Active" type="b" access="read"/>
|
||||
<property name="Class" type="s" access="read"/>
|
||||
<property name="Id" type="s" access="read"/>
|
||||
<property name="Remote" type="b" access="read"/>
|
||||
<property name="Type" type="s" access="read"/>
|
||||
<property name="State" type="s" access="read"/>
|
||||
<method name="SetLockedHint">
|
||||
<arg type="b" direction="in"/>
|
||||
</method>
|
||||
</interface>
|
||||
</node>
|
6
data/dbus-interfaces/org.freedesktop.login1.User.xml
Normal file
6
data/dbus-interfaces/org.freedesktop.login1.User.xml
Normal file
@@ -0,0 +1,6 @@
|
||||
<node>
|
||||
<interface name="org.freedesktop.login1.User">
|
||||
<property name="Display" type="(so)" access="read"/>
|
||||
<property name="Sessions" type="a(so)" access="read"/>
|
||||
</interface>
|
||||
</node>
|
13
data/dbus-interfaces/org.freedesktop.realmd.Provider.xml
Normal file
13
data/dbus-interfaces/org.freedesktop.realmd.Provider.xml
Normal file
@@ -0,0 +1,13 @@
|
||||
<node>
|
||||
<interface name="org.freedesktop.realmd.Provider">
|
||||
<property name="Name" type="s" access="read"/>
|
||||
<property name="Version" type="s" access="read"/>
|
||||
<property name="Realms" type="ao" access="read"/>
|
||||
<method name="Discover">
|
||||
<arg name="string" type="s" direction="in"/>
|
||||
<arg name="options" type="a{sv}" direction="in"/>
|
||||
<arg name="relevance" type="i" direction="out"/>
|
||||
<arg name="realm" type="ao" direction="out"/>
|
||||
</method>
|
||||
</interface>
|
||||
</node>
|
20
data/dbus-interfaces/org.freedesktop.realmd.Realm.xml
Normal file
20
data/dbus-interfaces/org.freedesktop.realmd.Realm.xml
Normal file
@@ -0,0 +1,20 @@
|
||||
<node>
|
||||
<interface name="org.freedesktop.realmd.Realm">
|
||||
<property name="Name" type="s" access="read"/>
|
||||
<property name="Configured" type="s" access="read"/>
|
||||
<property name="Details" type="a(ss)" access="read"/>
|
||||
<property name="LoginFormats" type="as" access="read"/>
|
||||
<property name="LoginPolicy" type="s" access="read"/>
|
||||
<property name="PermittedLogins" type="as" access="read"/>
|
||||
<property name="SupportedInterfaces" type="as" access="read"/>
|
||||
<method name="ChangeLoginPolicy">
|
||||
<arg name="login_policy" type="s" direction="in"/>
|
||||
<arg name="permitted_add" type="as" direction="in"/>
|
||||
<arg name="permitted_remove" type="as" direction="in"/>
|
||||
<arg name="options" type="a{sv}" direction="in"/>
|
||||
</method>
|
||||
<method name="Deconfigure">
|
||||
<arg name="options" type="a{sv}" direction="in"/>
|
||||
</method>
|
||||
</interface>
|
||||
</node>
|
15
data/dbus-interfaces/org.freedesktop.realmd.Service.xml
Normal file
15
data/dbus-interfaces/org.freedesktop.realmd.Service.xml
Normal file
@@ -0,0 +1,15 @@
|
||||
<node>
|
||||
<interface name="org.freedesktop.realmd.Service">
|
||||
<method name="Cancel">
|
||||
<arg name="operation" type="s" direction="in"/>
|
||||
</method>
|
||||
<method name="Release"/>
|
||||
<method name="SetLocale">
|
||||
<arg name="locale" type="s" direction="in"/>
|
||||
</method>
|
||||
<signal name="Diagnostics">
|
||||
<arg name="data" type="s"/>
|
||||
<arg name="operation" type="s"/>
|
||||
</signal>
|
||||
</interface>
|
||||
</node>
|
26
data/dbus-interfaces/org.gnome.Magnifier.ZoomRegion.xml
Normal file
26
data/dbus-interfaces/org.gnome.Magnifier.ZoomRegion.xml
Normal file
@@ -0,0 +1,26 @@
|
||||
<node>
|
||||
<interface name="org.gnome.Magnifier.ZoomRegion">
|
||||
<method name="setMagFactor">
|
||||
<arg type="d" direction="in"/>
|
||||
<arg type="d" direction="in"/>
|
||||
</method>
|
||||
<method name="getMagFactor">
|
||||
<arg type="d" direction="out"/>
|
||||
<arg type="d" direction="out"/>
|
||||
</method>
|
||||
<method name="setRoi">
|
||||
<arg type="ai" direction="in"/>
|
||||
</method>
|
||||
<method name="getRoi">
|
||||
<arg type="ai" direction="out"/>
|
||||
</method>
|
||||
<method name="shiftContentsTo">
|
||||
<arg type="i" direction="in"/>
|
||||
<arg type="i" direction="in"/>
|
||||
<arg type="b" direction="out"/>
|
||||
</method>
|
||||
<method name="moveResize">
|
||||
<arg type="ai" direction="in"/>
|
||||
</method>
|
||||
</interface>
|
||||
</node>
|
54
data/dbus-interfaces/org.gnome.Magnifier.xml
Normal file
54
data/dbus-interfaces/org.gnome.Magnifier.xml
Normal file
@@ -0,0 +1,54 @@
|
||||
<node>
|
||||
<interface name="org.gnome.Magnifier">
|
||||
<method name="setActive">
|
||||
<arg type="b" direction="in"/>
|
||||
</method>
|
||||
<method name="isActive">
|
||||
<arg type="b" direction="out"/>
|
||||
</method>
|
||||
<method name="showCursor"/>
|
||||
<method name="hideCursor"/>
|
||||
<method name="createZoomRegion">
|
||||
<arg type="d" direction="in"/>
|
||||
<arg type="d" direction="in"/>
|
||||
<arg type="ai" direction="in"/>
|
||||
<arg type="ai" direction="in"/>
|
||||
<arg type="o" direction="out"/>
|
||||
</method>
|
||||
<method name="addZoomRegion">
|
||||
<arg type="o" direction="in"/>
|
||||
<arg type="b" direction="out"/>
|
||||
</method>
|
||||
<method name="getZoomRegions">
|
||||
<arg type="ao" direction="out"/>
|
||||
</method>
|
||||
<method name="clearAllZoomRegions"/>
|
||||
<method name="fullScreenCapable">
|
||||
<arg type="b" direction="out"/>
|
||||
</method>
|
||||
<method name="setCrosswireSize">
|
||||
<arg type="i" direction="in"/>
|
||||
</method>
|
||||
<method name="getCrosswireSize">
|
||||
<arg type="i" direction="out"/>
|
||||
</method>
|
||||
<method name="setCrosswireLength">
|
||||
<arg type="i" direction="in"/>
|
||||
</method>
|
||||
<method name="getCrosswireLength">
|
||||
<arg type="i" direction="out"/>
|
||||
</method>
|
||||
<method name="setCrosswireClip">
|
||||
<arg type="b" direction="in"/>
|
||||
</method>
|
||||
<method name="getCrosswireClip">
|
||||
<arg type="b" direction="out"/>
|
||||
</method>
|
||||
<method name="setCrosswireColor">
|
||||
<arg type="u" direction="in"/>
|
||||
</method>
|
||||
<method name="getCrosswireColor">
|
||||
<arg type="u" direction="out"/>
|
||||
</method>
|
||||
</interface>
|
||||
</node>
|
18
data/dbus-interfaces/org.gnome.ScreenSaver.xml
Normal file
18
data/dbus-interfaces/org.gnome.ScreenSaver.xml
Normal file
@@ -0,0 +1,18 @@
|
||||
<node>
|
||||
<interface name="org.gnome.ScreenSaver">
|
||||
<method name="Lock"/>
|
||||
<method name="GetActive">
|
||||
<arg type="b" direction="out" name="active"/>
|
||||
</method>
|
||||
<method name="SetActive">
|
||||
<arg type="b" direction="in" name="value"/>
|
||||
</method>
|
||||
<method name="GetActiveTime">
|
||||
<arg type="u" direction="out" name="value"/>
|
||||
</method>
|
||||
<signal name="ActiveChanged">
|
||||
<arg name="new_value" type="b"/>
|
||||
</signal>
|
||||
<signal name="WakeUpScreen"/>
|
||||
</interface>
|
||||
</node>
|
@@ -0,0 +1,16 @@
|
||||
<node>
|
||||
<interface name="org.gnome.SessionManager.EndSessionDialog">
|
||||
<method name="Open">
|
||||
<arg type="u" direction="in"/>
|
||||
<arg type="u" direction="in"/>
|
||||
<arg type="u" direction="in"/>
|
||||
<arg type="ao" direction="in"/>
|
||||
</method>
|
||||
<method name="Close"/>
|
||||
<signal name="ConfirmedLogout"/>
|
||||
<signal name="ConfirmedReboot"/>
|
||||
<signal name="ConfirmedShutdown"/>
|
||||
<signal name="Canceled"/>
|
||||
<signal name="Closed"/>
|
||||
</interface>
|
||||
</node>
|
10
data/dbus-interfaces/org.gnome.SessionManager.Inhibitor.xml
Normal file
10
data/dbus-interfaces/org.gnome.SessionManager.Inhibitor.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<node>
|
||||
<interface name="org.gnome.SessionManager.Inhibitor">
|
||||
<method name="GetAppId">
|
||||
<arg type="s" direction="out"/>
|
||||
</method>
|
||||
<method name="GetReason">
|
||||
<arg type="s" direction="out"/>
|
||||
</method>
|
||||
</interface>
|
||||
</node>
|
11
data/dbus-interfaces/org.gnome.SessionManager.Presence.xml
Normal file
11
data/dbus-interfaces/org.gnome.SessionManager.Presence.xml
Normal file
@@ -0,0 +1,11 @@
|
||||
<node>
|
||||
<interface name="org.gnome.SessionManager.Presence">
|
||||
<method name="SetStatus">
|
||||
<arg type="u" direction="in"/>
|
||||
</method>
|
||||
<property name="status" type="u" access="readwrite"/>
|
||||
<signal name="StatusChanged">
|
||||
<arg type="u" direction="out"/>
|
||||
</signal>
|
||||
</interface>
|
||||
</node>
|
23
data/dbus-interfaces/org.gnome.SessionManager.xml
Normal file
23
data/dbus-interfaces/org.gnome.SessionManager.xml
Normal file
@@ -0,0 +1,23 @@
|
||||
<node>
|
||||
<interface name="org.gnome.SessionManager">
|
||||
<method name="Logout">
|
||||
<arg type="u" direction="in"/>
|
||||
</method>
|
||||
<method name="Shutdown"/>
|
||||
<method name="Reboot"/>
|
||||
<method name="CanShutdown">
|
||||
<arg type="b" direction="out"/>
|
||||
</method>
|
||||
<method name="IsInhibited">
|
||||
<arg type="u" direction="in"/>
|
||||
<arg type="b" direction="out"/>
|
||||
</method>
|
||||
<property name="SessionIsActive" type="b" access="read"/>
|
||||
<signal name="InhibitorAdded">
|
||||
<arg type="o" direction="out"/>
|
||||
</signal>
|
||||
<signal name="InhibitorRemoved">
|
||||
<arg type="o" direction="out"/>
|
||||
</signal>
|
||||
</interface>
|
||||
</node>
|
6
data/dbus-interfaces/org.gnome.SettingsDaemon.Color.xml
Normal file
6
data/dbus-interfaces/org.gnome.SettingsDaemon.Color.xml
Normal file
@@ -0,0 +1,6 @@
|
||||
<node>
|
||||
<interface name="org.gnome.SettingsDaemon.Color">
|
||||
<property name="DisabledUntilTomorrow" type="b" access="readwrite"/>
|
||||
<property name="NightLightActive" type="b" access="read"/>
|
||||
</interface>
|
||||
</node>
|
@@ -0,0 +1,5 @@
|
||||
<node>
|
||||
<interface name="org.gnome.SettingsDaemon.Power.Screen">
|
||||
<property name="Brightness" type="i" access="readwrite"/>
|
||||
</interface>
|
||||
</node>
|
10
data/dbus-interfaces/org.gnome.SettingsDaemon.Rfkill.xml
Normal file
10
data/dbus-interfaces/org.gnome.SettingsDaemon.Rfkill.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<node>
|
||||
<interface name="org.gnome.SettingsDaemon.Rfkill">
|
||||
<property name="AirplaneMode" type="b" access="readwrite"/>
|
||||
<property name="HardwareAirplaneMode" type="b" access="read"/>
|
||||
<property name="BluetoothAirplaneMode" type="b" access="readwrite"/>
|
||||
<property name="BluetoothHasAirplaneMode" type="b" access="read"/>
|
||||
<property name="BluetoothHardwareAirplaneMode" type="b" access="readwrite"/>
|
||||
<property name="ShouldShowAirplaneMode" type="b" access="read"/>
|
||||
</interface>
|
||||
</node>
|
13
data/dbus-interfaces/org.gnome.SettingsDaemon.Wacom.xml
Normal file
13
data/dbus-interfaces/org.gnome.SettingsDaemon.Wacom.xml
Normal file
@@ -0,0 +1,13 @@
|
||||
<node>
|
||||
<interface name="org.gnome.SettingsDaemon.Wacom">
|
||||
<method name="SetGroupModeLED">
|
||||
<arg name="device_path" direction="in" type="s"/>
|
||||
<arg name="group" direction="in" type="u"/>
|
||||
<arg name="mode" direction="in" type="u"/>
|
||||
</method>
|
||||
<method name="SetOLEDLabels">
|
||||
<arg name="device_path" direction="in" type="s"/>
|
||||
<arg name="labels" direction="in" type="as"/>
|
||||
</method>
|
||||
</interface>
|
||||
</node>
|
@@ -0,0 +1,12 @@
|
||||
<node>
|
||||
<interface name="org.gnome.Shell.AudioDeviceSelection">
|
||||
<method name="Open">
|
||||
<arg name="devices" direction="in" type="as"/>
|
||||
</method>
|
||||
<method name="Close">
|
||||
</method>
|
||||
<signal name="DeviceSelected">
|
||||
<arg name="device" type="s"/>
|
||||
</signal>
|
||||
</interface>
|
||||
</node>
|
205
data/dbus-interfaces/org.gnome.Shell.Extensions.xml
Normal file
205
data/dbus-interfaces/org.gnome.Shell.Extensions.xml
Normal file
@@ -0,0 +1,205 @@
|
||||
<!DOCTYPE node PUBLIC
|
||||
'-//freedesktop//DTD D-BUS Object Introspection 1.0//EN'
|
||||
'http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd'>
|
||||
<node>
|
||||
|
||||
<!--
|
||||
org.gnome.Shell.Extensions:
|
||||
@short_description: Extensions interface
|
||||
|
||||
The interface used to query and manage extensions.
|
||||
-->
|
||||
<interface name="org.gnome.Shell.Extensions">
|
||||
|
||||
<!--
|
||||
ListExtensions:
|
||||
@extensions: A dictionary of extension infos
|
||||
|
||||
Get a list of installed extensions. The returned @extensions
|
||||
dictionary maps extension UUIDs to info vardicts. See
|
||||
GetExtensionInfo() for documentation on possible keys.
|
||||
-->
|
||||
<method name="ListExtensions">
|
||||
<arg type="a{sa{sv}}" direction="out" name="extensions"/>
|
||||
</method>
|
||||
|
||||
<!--
|
||||
GetExtensionInfo:
|
||||
@uuid: The UUID of the extension
|
||||
@info: The returned extension info
|
||||
|
||||
The information returned in the @info vardict depends on the
|
||||
metadata the extension provides, however it is guaranteed to
|
||||
contain the following keys:
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>uuid s</term>
|
||||
<listitem><para>The UUID of the extension</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>name s</term>
|
||||
<listitem><para>The name of the extension</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>description s</term>
|
||||
<listitem><para>
|
||||
A short summary that describes what the extension does
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>shell-version as</term>
|
||||
<listitem><para>An array of support shell versions</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>type d</term>
|
||||
<listitem><para>
|
||||
The type of extension:
|
||||
<simplelist>
|
||||
<member>1: SYSTEM</member>
|
||||
<member>2: PER_USER</member>
|
||||
</simplelist>
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>state d</term>
|
||||
<listitem><para>
|
||||
The state the extension is in:
|
||||
<simplelist>
|
||||
<member>1: ENABLED</member>
|
||||
<member>2: DISABLED</member>
|
||||
<member>3: ERROR</member>
|
||||
<member>4: OUT_OF_DATE</member>
|
||||
<member>5: DOWNLOADING</member>
|
||||
<member>6: INITIALIZED</member>
|
||||
<member>99: UNINSTALLED</member>
|
||||
</simplelist>
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>path s</term>
|
||||
<listitem><para>The extension directory</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>error s</term>
|
||||
<listitem><para>The most recent error caught in init(), enable() or disable()</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>hasPrefs b</term>
|
||||
<listitem><para>Whether the extension includes preference UI</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
By convention, many extensions will also include the following keys:
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>version d</term>
|
||||
<listitem><para>The extension version</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>url s</term>
|
||||
<listitem><para>The URL to the extension homepage or repository</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>settings-schema s</term>
|
||||
<listitem><para>The ID of a bundled GSettings schema</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>gettext-domain s</term>
|
||||
<listitem><para>The domain used for translations</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
-->
|
||||
<method name="GetExtensionInfo">
|
||||
<arg type="s" direction="in" name="uuid"/>
|
||||
<arg type="a{sv}" direction="out" name="info"/>
|
||||
</method>
|
||||
|
||||
<!--
|
||||
GetExtensionErrors:
|
||||
@uuid: The UUID of the extension
|
||||
@errors: The returned errors
|
||||
|
||||
Get the list of errors that caused the extension
|
||||
to be in ERROR state.
|
||||
-->
|
||||
<method name="GetExtensionErrors">
|
||||
<arg type="s" direction="in" name="uuid"/>
|
||||
<arg type="as" direction="out" name="errors"/>
|
||||
</method>
|
||||
|
||||
<!--
|
||||
InstallRemoteExtension:
|
||||
@uuid: The UUID of the extension
|
||||
@result: The result of the operation
|
||||
|
||||
Download and install an extension.
|
||||
-->
|
||||
<method name="InstallRemoteExtension">
|
||||
<arg type="s" direction="in" name="uuid"/>
|
||||
<arg type="s" direction="out" name="result"/>
|
||||
</method>
|
||||
|
||||
<!--
|
||||
UninstallExtension:
|
||||
@uuid: The UUID of the extension
|
||||
@success: Whether the operation was successful
|
||||
|
||||
Uninstall an extension.
|
||||
-->
|
||||
<method name="UninstallExtension">
|
||||
<arg type="s" direction="in" name="uuid"/>
|
||||
<arg type="b" direction="out" name="success"/>
|
||||
</method>
|
||||
|
||||
<!--
|
||||
ReloadExtension:
|
||||
@uuid: The UUID of the extension
|
||||
|
||||
Reload an extension.
|
||||
-->
|
||||
<method name="ReloadExtension">
|
||||
<arg type="s" direction="in" name="uuid"/>
|
||||
</method>
|
||||
|
||||
<!--
|
||||
LaunchExtensionPrefs:
|
||||
@uuid: The UUID of the extension
|
||||
|
||||
Launch preferences of an extension.
|
||||
-->
|
||||
<method name="LaunchExtensionPrefs">
|
||||
<arg type="s" direction="in" name="uuid"/>
|
||||
</method>
|
||||
|
||||
<!--
|
||||
CheckForUpdates:
|
||||
Update all extensions for which updates are available
|
||||
-->
|
||||
<method name="CheckForUpdates"/>
|
||||
|
||||
<signal name="ExtensionStatusChanged">
|
||||
<arg type="s" name="uuid"/>
|
||||
<arg type="i" name="state"/>
|
||||
<arg type="s" name="error"/>
|
||||
</signal>
|
||||
|
||||
<!--
|
||||
ShellVersion:
|
||||
The GNOME Shell version
|
||||
-->
|
||||
<property name="ShellVersion" type="s" access="read"/>
|
||||
|
||||
</interface>
|
||||
</node>
|
8
data/dbus-interfaces/org.gnome.Shell.HotplugSniffer.xml
Normal file
8
data/dbus-interfaces/org.gnome.Shell.HotplugSniffer.xml
Normal file
@@ -0,0 +1,8 @@
|
||||
<node>
|
||||
<interface name="org.gnome.Shell.HotplugSniffer">
|
||||
<method name="SniffURI">
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="as" direction="out"/>
|
||||
</method>
|
||||
</interface>
|
||||
</node>
|
13
data/dbus-interfaces/org.gnome.Shell.PerfHelper.xml
Normal file
13
data/dbus-interfaces/org.gnome.Shell.PerfHelper.xml
Normal file
@@ -0,0 +1,13 @@
|
||||
<node>
|
||||
<interface name="org.gnome.Shell.PerfHelper">
|
||||
<method name="CreateWindow">
|
||||
<arg type="i" direction="in"/>
|
||||
<arg type="i" direction="in"/>
|
||||
<arg type="b" direction="in"/>
|
||||
<arg type="b" direction="in"/>
|
||||
<arg type="b" direction="in"/>
|
||||
</method>
|
||||
<method name="WaitWindows"/>
|
||||
<method name="DestroyWindows"/>
|
||||
</interface>
|
||||
</node>
|
19
data/dbus-interfaces/org.gnome.Shell.PortalHelper.xml
Normal file
19
data/dbus-interfaces/org.gnome.Shell.PortalHelper.xml
Normal file
@@ -0,0 +1,19 @@
|
||||
<node>
|
||||
<interface name="org.gnome.Shell.PortalHelper">
|
||||
<method name="Authenticate">
|
||||
<arg name="connection" type="o" direction="in"/>
|
||||
<arg name="url" type="s" direction="in"/>
|
||||
<arg name="timestamp" type="u" direction="in"/>
|
||||
</method>
|
||||
<method name="Close">
|
||||
<arg name="connection" type="o" direction="in"/>
|
||||
</method>
|
||||
<method name="Refresh">
|
||||
<arg name="connection" type="o" direction="in"/>
|
||||
</method>
|
||||
<signal name="Done">
|
||||
<arg type="o" name="connection"/>
|
||||
<arg type="u" name="result"/>
|
||||
</signal>
|
||||
</interface>
|
||||
</node>
|
8
data/dbus-interfaces/org.gnome.Shell.Wacom.PadOsd.xml
Normal file
8
data/dbus-interfaces/org.gnome.Shell.Wacom.PadOsd.xml
Normal file
@@ -0,0 +1,8 @@
|
||||
<node>
|
||||
<interface name="org.gnome.Shell.Wacom.PadOsd">
|
||||
<method name="Show">
|
||||
<arg name="device_node" direction="in" type="o"/>
|
||||
<arg name="edition_mode" direction="in" type="b"/>
|
||||
</method>
|
||||
</interface>
|
||||
</node>
|
44
data/dbus-interfaces/org.gnome.Shell.xml
Normal file
44
data/dbus-interfaces/org.gnome.Shell.xml
Normal file
@@ -0,0 +1,44 @@
|
||||
<node>
|
||||
<interface name="org.gnome.Shell">
|
||||
<method name="Eval">
|
||||
<arg type="s" direction="in" name="script"/>
|
||||
<arg type="b" direction="out" name="success"/>
|
||||
<arg type="s" direction="out" name="result"/>
|
||||
</method>
|
||||
<method name="FocusSearch"/>
|
||||
<method name="ShowOSD">
|
||||
<arg type="a{sv}" direction="in" name="params"/>
|
||||
</method>
|
||||
<method name="ShowMonitorLabels">
|
||||
<arg type="a{uv}" direction="in" name="params"/>
|
||||
</method>
|
||||
<method name="ShowMonitorLabels2">
|
||||
<arg type="a{sv}" direction="in" name="params"/>
|
||||
</method>
|
||||
<method name="HideMonitorLabels"/>
|
||||
<method name="FocusApp">
|
||||
<arg type="s" direction="in" name="id"/>
|
||||
</method>
|
||||
<method name="ShowApplications"/>
|
||||
<method name="GrabAccelerator">
|
||||
<arg type="s" direction="in" name="accelerator"/>
|
||||
<arg type="u" direction="in" name="flags"/>
|
||||
<arg type="u" direction="out" name="action"/>
|
||||
</method>
|
||||
<method name="GrabAccelerators">
|
||||
<arg type="a(su)" direction="in" name="accelerators"/>
|
||||
<arg type="au" direction="out" name="actions"/>
|
||||
</method>
|
||||
<method name="UngrabAccelerator">
|
||||
<arg type="u" direction="in" name="action"/>
|
||||
<arg type="b" direction="out" name="success"/>
|
||||
</method>
|
||||
<signal name="AcceleratorActivated">
|
||||
<arg name="action" type="u"/>
|
||||
<arg name="parameters" type="a{sv}"/>
|
||||
</signal>
|
||||
<property name="Mode" type="s" access="read"/>
|
||||
<property name="OverviewActive" type="b" access="readwrite"/>
|
||||
<property name="ShellVersion" type="s" access="read"/>
|
||||
</interface>
|
||||
</node>
|
13
data/dbus-interfaces/org.gtk.Notifications.xml
Normal file
13
data/dbus-interfaces/org.gtk.Notifications.xml
Normal file
@@ -0,0 +1,13 @@
|
||||
<node>
|
||||
<interface name="org.gtk.Notifications">
|
||||
<method name="AddNotification">
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="a{sv}" direction="in"/>
|
||||
</method>
|
||||
<method name="RemoveNotification">
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="s" direction="in"/>
|
||||
</method>
|
||||
</interface>
|
||||
</node>
|
12
data/dbus-interfaces/org.mpris.MediaPlayer2.Player.xml
Normal file
12
data/dbus-interfaces/org.mpris.MediaPlayer2.Player.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<node>
|
||||
<interface name="org.mpris.MediaPlayer2.Player">
|
||||
<method name="PlayPause"/>
|
||||
<method name="Next"/>
|
||||
<method name="Previous"/>
|
||||
<property name="CanGoNext" type="b" access="read"/>
|
||||
<property name="CanGoPrevious" type="b" access="read"/>
|
||||
<property name="CanPlay" type="b" access="read"/>
|
||||
<property name="Metadata" type="a{sv}" access="read"/>
|
||||
<property name="PlaybackStatus" type="s" access="read"/>
|
||||
</interface>
|
||||
</node>
|
7
data/dbus-interfaces/org.mpris.MediaPlayer2.xml
Normal file
7
data/dbus-interfaces/org.mpris.MediaPlayer2.xml
Normal file
@@ -0,0 +1,7 @@
|
||||
<node>
|
||||
<interface name="org.mpris.MediaPlayer2">
|
||||
<method name="Raise"/>
|
||||
<property name="CanRaise" type="b" access="read"/>
|
||||
<property name="DesktopEntry" type="s" access="read"/>
|
||||
</interface>
|
||||
</node>
|
55
data/gnome-shell-dbus-interfaces.gresource.xml
Normal file
55
data/gnome-shell-dbus-interfaces.gresource.xml
Normal file
@@ -0,0 +1,55 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<gresources>
|
||||
<gresource prefix="/org/gnome/shell/dbus-interfaces">
|
||||
<file preprocess="xml-stripblanks">net.hadess.SensorProxy.xml</file>
|
||||
<file preprocess="xml-stripblanks">net.hadess.SwitcherooControl.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.Application.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.bolt1.Device.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.bolt1.Manager.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.DBus.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.GeoClue2.Agent.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.GeoClue2.Manager.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.impl.portal.Access.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.impl.portal.PermissionStore.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.impl.portal.Request.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.login1.Manager.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.login1.Session.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.login1.User.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.ModemManager1.Modem.Modem3gpp.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.ModemManager1.Modem.ModemCdma.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.ModemManager1.Modem.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.ModemManager.Modem.Cdma.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.ModemManager.Modem.Gsm.Network.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.Notifications.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.PackageKit.Offline.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.realmd.Provider.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.realmd.Realm.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.realmd.Service.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.UPower.Device.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.UPower.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.Magnifier.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.Magnifier.ZoomRegion.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.ScreenSaver.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.SessionManager.EndSessionDialog.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.SessionManager.Inhibitor.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.SessionManager.Presence.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.SessionManager.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.SettingsDaemon.Color.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.SettingsDaemon.Power.Screen.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.SettingsDaemon.Rfkill.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.SettingsDaemon.Wacom.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.Shell.AudioDeviceSelection.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.Shell.Extensions.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.Shell.HotplugSniffer.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.Shell.PerfHelper.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.Shell.PortalHelper.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.Shell.Screencast.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.Shell.Screenshot.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.Shell.Wacom.PadOsd.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.Shell.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.Gtk.MountOperationHandler.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gtk.Notifications.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.mpris.MediaPlayer2.Player.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.mpris.MediaPlayer2.xml</file>
|
||||
</gresource>
|
||||
</gresources>
|
@@ -6,6 +6,7 @@
|
||||
<file>be.json</file>
|
||||
<file>bg.json</file>
|
||||
<file>by.json</file>
|
||||
<file>ca.json</file>
|
||||
<file>cz.json</file>
|
||||
<file>de.json</file>
|
||||
<file>dk.json</file>
|
||||
|
@@ -41,34 +41,25 @@ foreach service_file : service_files
|
||||
endforeach
|
||||
|
||||
|
||||
dbus_interfaces = [
|
||||
'org.gnome.Shell.PadOsd.xml',
|
||||
'org.gnome.Shell.Screencast.xml',
|
||||
'org.gnome.Shell.Screenshot.xml',
|
||||
'org.gnome.ShellSearchProvider.xml',
|
||||
'org.gnome.ShellSearchProvider2.xml'
|
||||
]
|
||||
install_data(dbus_interfaces, install_dir: ifacedir)
|
||||
|
||||
|
||||
subdir('dbus-interfaces')
|
||||
subdir('theme')
|
||||
|
||||
theme_resources = gnome.compile_resources(
|
||||
'gnome-shell-theme', 'gnome-shell-theme.gresource.xml',
|
||||
source_dir: 'theme',
|
||||
dependencies: theme_deps,
|
||||
gresource_bundle: true,
|
||||
install: true,
|
||||
install_dir: pkgdatadir
|
||||
)
|
||||
|
||||
osk_layout_resources = gnome.compile_resources(
|
||||
'gnome-shell-osk-layouts', 'gnome-shell-osk-layouts.gresource.xml',
|
||||
source_dir: 'osk-layouts',
|
||||
gresource_bundle: true,
|
||||
install: true,
|
||||
install_dir: pkgdatadir
|
||||
)
|
||||
data_resources = [
|
||||
['dbus-interfaces', []],
|
||||
['osk-layouts', []],
|
||||
['theme', theme_deps]
|
||||
]
|
||||
foreach resource : data_resources
|
||||
gnome.compile_resources(
|
||||
'gnome-shell-' + resource[0],
|
||||
'gnome-shell-@0@.gresource.xml'.format(resource[0]),
|
||||
source_dir: resource[0],
|
||||
dependencies: resource[1],
|
||||
gresource_bundle: true,
|
||||
install: true,
|
||||
install_dir: pkgdatadir
|
||||
)
|
||||
endforeach
|
||||
|
||||
perfconf = configuration_data()
|
||||
perfconf.set('datadir', datadir)
|
||||
|
599
data/osk-layouts/ca.json
Normal file
599
data/osk-layouts/ca.json
Normal file
@@ -0,0 +1,599 @@
|
||||
{
|
||||
"levels": [
|
||||
{
|
||||
"level": "",
|
||||
"mode": "default",
|
||||
"rows": [
|
||||
[
|
||||
[
|
||||
"q"
|
||||
],
|
||||
[
|
||||
"w"
|
||||
],
|
||||
[
|
||||
"e",
|
||||
"é",
|
||||
"è",
|
||||
"ê",
|
||||
"ë",
|
||||
"%",
|
||||
"ę",
|
||||
"ė",
|
||||
"ē"
|
||||
],
|
||||
[
|
||||
"r"
|
||||
],
|
||||
[
|
||||
"t"
|
||||
],
|
||||
[
|
||||
"y",
|
||||
"%",
|
||||
"ÿ"
|
||||
],
|
||||
[
|
||||
"u",
|
||||
"ù",
|
||||
"û",
|
||||
"%",
|
||||
"ü",
|
||||
"ú",
|
||||
"ū"
|
||||
],
|
||||
[
|
||||
"i",
|
||||
"î",
|
||||
"%",
|
||||
"ï",
|
||||
"ì",
|
||||
"í",
|
||||
"į",
|
||||
"ī"
|
||||
],
|
||||
[
|
||||
"o",
|
||||
"ô",
|
||||
"œ",
|
||||
"%",
|
||||
"ö",
|
||||
"ò",
|
||||
"ó",
|
||||
"õ",
|
||||
"ø",
|
||||
"ō",
|
||||
"º"
|
||||
],
|
||||
[
|
||||
"p"
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
"a",
|
||||
"à",
|
||||
"â",
|
||||
"%",
|
||||
"æ",
|
||||
"á",
|
||||
"ä",
|
||||
"ã",
|
||||
"å",
|
||||
"ā",
|
||||
"ª"
|
||||
],
|
||||
[
|
||||
"s"
|
||||
],
|
||||
[
|
||||
"d"
|
||||
],
|
||||
[
|
||||
"f"
|
||||
],
|
||||
[
|
||||
"g"
|
||||
],
|
||||
[
|
||||
"h"
|
||||
],
|
||||
[
|
||||
"j"
|
||||
],
|
||||
[
|
||||
"k"
|
||||
],
|
||||
[
|
||||
"l"
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
"z"
|
||||
],
|
||||
[
|
||||
"x"
|
||||
],
|
||||
[
|
||||
"c",
|
||||
"ç",
|
||||
"ć",
|
||||
"č"
|
||||
],
|
||||
[
|
||||
"v"
|
||||
],
|
||||
[
|
||||
"b"
|
||||
],
|
||||
[
|
||||
"n"
|
||||
],
|
||||
[
|
||||
"m"
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
","
|
||||
],
|
||||
[
|
||||
" "
|
||||
],
|
||||
[
|
||||
".",
|
||||
"#",
|
||||
"!",
|
||||
",",
|
||||
"?",
|
||||
"-",
|
||||
":",
|
||||
"'",
|
||||
"@"
|
||||
]
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"level": "shift",
|
||||
"mode": "latched",
|
||||
"rows": [
|
||||
[
|
||||
[
|
||||
"Q"
|
||||
],
|
||||
[
|
||||
"W"
|
||||
],
|
||||
[
|
||||
"E",
|
||||
"É",
|
||||
"È",
|
||||
"Ê",
|
||||
"Ë",
|
||||
"%",
|
||||
"Ę",
|
||||
"Ė",
|
||||
"Ē"
|
||||
],
|
||||
[
|
||||
"R"
|
||||
],
|
||||
[
|
||||
"T"
|
||||
],
|
||||
[
|
||||
"Y",
|
||||
"%",
|
||||
"Ÿ"
|
||||
],
|
||||
[
|
||||
"U",
|
||||
"Ù",
|
||||
"Û",
|
||||
"%",
|
||||
"Ü",
|
||||
"Ú",
|
||||
"Ū"
|
||||
],
|
||||
[
|
||||
"I",
|
||||
"Î",
|
||||
"%",
|
||||
"Ï",
|
||||
"Ì",
|
||||
"Í",
|
||||
"Į",
|
||||
"Ī"
|
||||
],
|
||||
[
|
||||
"O",
|
||||
"Ô",
|
||||
"Œ",
|
||||
"%",
|
||||
"Ö",
|
||||
"Ò",
|
||||
"Ó",
|
||||
"Õ",
|
||||
"Ø",
|
||||
"Ō",
|
||||
"º"
|
||||
],
|
||||
[
|
||||
"P"
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
"A",
|
||||
"À",
|
||||
"Â",
|
||||
"%",
|
||||
"Æ",
|
||||
"Á",
|
||||
"Ä",
|
||||
"Ã",
|
||||
"Å",
|
||||
"Ā",
|
||||
"ª"
|
||||
],
|
||||
[
|
||||
"S"
|
||||
],
|
||||
[
|
||||
"D"
|
||||
],
|
||||
[
|
||||
"F"
|
||||
],
|
||||
[
|
||||
"G"
|
||||
],
|
||||
[
|
||||
"H"
|
||||
],
|
||||
[
|
||||
"J"
|
||||
],
|
||||
[
|
||||
"K"
|
||||
],
|
||||
[
|
||||
"L"
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
"Z"
|
||||
],
|
||||
[
|
||||
"X"
|
||||
],
|
||||
[
|
||||
"C",
|
||||
"Ç",
|
||||
"Ć",
|
||||
"Č"
|
||||
],
|
||||
[
|
||||
"V"
|
||||
],
|
||||
[
|
||||
"B"
|
||||
],
|
||||
[
|
||||
"N"
|
||||
],
|
||||
[
|
||||
"M"
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
","
|
||||
],
|
||||
[
|
||||
" "
|
||||
],
|
||||
[
|
||||
".",
|
||||
"#",
|
||||
"!",
|
||||
",",
|
||||
"?",
|
||||
"-",
|
||||
":",
|
||||
"'",
|
||||
"@"
|
||||
]
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"level": "opt",
|
||||
"mode": "locked",
|
||||
"rows": [
|
||||
[
|
||||
[
|
||||
"1",
|
||||
"¹",
|
||||
"½",
|
||||
"⅓",
|
||||
"¼",
|
||||
"⅛"
|
||||
],
|
||||
[
|
||||
"2",
|
||||
"²",
|
||||
"⅔"
|
||||
],
|
||||
[
|
||||
"3",
|
||||
"³",
|
||||
"¾",
|
||||
"⅜"
|
||||
],
|
||||
[
|
||||
"4",
|
||||
"⁴"
|
||||
],
|
||||
[
|
||||
"5",
|
||||
"⅝"
|
||||
],
|
||||
[
|
||||
"6"
|
||||
],
|
||||
[
|
||||
"7",
|
||||
"⅞"
|
||||
],
|
||||
[
|
||||
"8"
|
||||
],
|
||||
[
|
||||
"9"
|
||||
],
|
||||
[
|
||||
"0",
|
||||
"ⁿ",
|
||||
"∅"
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
"@"
|
||||
],
|
||||
[
|
||||
"#"
|
||||
],
|
||||
[
|
||||
"$",
|
||||
"¢",
|
||||
"£",
|
||||
"€",
|
||||
"¥",
|
||||
"₱"
|
||||
],
|
||||
[
|
||||
"%",
|
||||
"‰"
|
||||
],
|
||||
[
|
||||
"&"
|
||||
],
|
||||
[
|
||||
"-",
|
||||
"_",
|
||||
"–",
|
||||
"—",
|
||||
"·"
|
||||
],
|
||||
[
|
||||
"+",
|
||||
"±"
|
||||
],
|
||||
[
|
||||
"(",
|
||||
"<",
|
||||
"{",
|
||||
"["
|
||||
],
|
||||
[
|
||||
")",
|
||||
">",
|
||||
"}",
|
||||
"]"
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
"*",
|
||||
"†",
|
||||
"‡",
|
||||
"★"
|
||||
],
|
||||
[
|
||||
"\"",
|
||||
"“",
|
||||
"”",
|
||||
"«",
|
||||
"»"
|
||||
],
|
||||
[
|
||||
"'",
|
||||
"‘",
|
||||
"’",
|
||||
"‹",
|
||||
"›"
|
||||
],
|
||||
[
|
||||
":"
|
||||
],
|
||||
[
|
||||
";"
|
||||
],
|
||||
[
|
||||
"!",
|
||||
"¡"
|
||||
],
|
||||
[
|
||||
"?",
|
||||
"¿"
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
"_"
|
||||
],
|
||||
[
|
||||
"/"
|
||||
],
|
||||
[
|
||||
" "
|
||||
],
|
||||
[
|
||||
","
|
||||
],
|
||||
[
|
||||
".",
|
||||
"…"
|
||||
]
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"level": "opt+shift",
|
||||
"mode": "locked",
|
||||
"rows": [
|
||||
[
|
||||
[
|
||||
"~"
|
||||
],
|
||||
[
|
||||
"`"
|
||||
],
|
||||
[
|
||||
"|"
|
||||
],
|
||||
[
|
||||
"•",
|
||||
"♪",
|
||||
"♥",
|
||||
"♠",
|
||||
"♦",
|
||||
"♣"
|
||||
],
|
||||
[
|
||||
"√"
|
||||
],
|
||||
[
|
||||
"Π",
|
||||
"π"
|
||||
],
|
||||
[
|
||||
"÷"
|
||||
],
|
||||
[
|
||||
"×"
|
||||
],
|
||||
[
|
||||
"¶",
|
||||
"§"
|
||||
],
|
||||
[
|
||||
"∆"
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
"£"
|
||||
],
|
||||
[
|
||||
"¢"
|
||||
],
|
||||
[
|
||||
"€"
|
||||
],
|
||||
[
|
||||
"¥"
|
||||
],
|
||||
[
|
||||
"^",
|
||||
"↑",
|
||||
"↓",
|
||||
"←",
|
||||
"→"
|
||||
],
|
||||
[
|
||||
"°",
|
||||
"′",
|
||||
"″"
|
||||
],
|
||||
[
|
||||
"=",
|
||||
"≠",
|
||||
"≈",
|
||||
"∞"
|
||||
],
|
||||
[
|
||||
"{"
|
||||
],
|
||||
[
|
||||
"}"
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
"\\"
|
||||
],
|
||||
[
|
||||
"©"
|
||||
],
|
||||
[
|
||||
"®"
|
||||
],
|
||||
[
|
||||
"™"
|
||||
],
|
||||
[
|
||||
"℅"
|
||||
],
|
||||
[
|
||||
"["
|
||||
],
|
||||
[
|
||||
"]"
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
"<",
|
||||
"‹",
|
||||
"≤",
|
||||
"«"
|
||||
],
|
||||
[
|
||||
">",
|
||||
"›",
|
||||
"≥",
|
||||
"»"
|
||||
],
|
||||
[
|
||||
" "
|
||||
],
|
||||
[
|
||||
","
|
||||
],
|
||||
[
|
||||
".",
|
||||
"…"
|
||||
]
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
"locale": "fr-CA",
|
||||
"name": "French Canada"
|
||||
}
|
@@ -6,10 +6,20 @@
|
||||
"rows": [
|
||||
[
|
||||
[
|
||||
"q"
|
||||
"a",
|
||||
"à",
|
||||
"â",
|
||||
"%",
|
||||
"æ",
|
||||
"á",
|
||||
"ä",
|
||||
"ã",
|
||||
"å",
|
||||
"ā",
|
||||
"ª"
|
||||
],
|
||||
[
|
||||
"w"
|
||||
"z"
|
||||
],
|
||||
[
|
||||
"e",
|
||||
@@ -71,17 +81,7 @@
|
||||
],
|
||||
[
|
||||
[
|
||||
"a",
|
||||
"à",
|
||||
"â",
|
||||
"%",
|
||||
"æ",
|
||||
"á",
|
||||
"ä",
|
||||
"ã",
|
||||
"å",
|
||||
"ā",
|
||||
"ª"
|
||||
"q"
|
||||
],
|
||||
[
|
||||
"s"
|
||||
@@ -106,11 +106,14 @@
|
||||
],
|
||||
[
|
||||
"l"
|
||||
],
|
||||
[
|
||||
"m"
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
"z"
|
||||
"w"
|
||||
],
|
||||
[
|
||||
"x"
|
||||
@@ -131,7 +134,11 @@
|
||||
"n"
|
||||
],
|
||||
[
|
||||
"m"
|
||||
"'",
|
||||
"‘",
|
||||
"’",
|
||||
"‹",
|
||||
"›"
|
||||
]
|
||||
],
|
||||
[
|
||||
@@ -161,10 +168,20 @@
|
||||
"rows": [
|
||||
[
|
||||
[
|
||||
"Q"
|
||||
"A",
|
||||
"À",
|
||||
"Â",
|
||||
"%",
|
||||
"Æ",
|
||||
"Á",
|
||||
"Ä",
|
||||
"Ã",
|
||||
"Å",
|
||||
"Ā",
|
||||
"ª"
|
||||
],
|
||||
[
|
||||
"W"
|
||||
"Z"
|
||||
],
|
||||
[
|
||||
"E",
|
||||
@@ -226,17 +243,7 @@
|
||||
],
|
||||
[
|
||||
[
|
||||
"A",
|
||||
"À",
|
||||
"Â",
|
||||
"%",
|
||||
"Æ",
|
||||
"Á",
|
||||
"Ä",
|
||||
"Ã",
|
||||
"Å",
|
||||
"Ā",
|
||||
"ª"
|
||||
"Q"
|
||||
],
|
||||
[
|
||||
"S"
|
||||
@@ -261,11 +268,14 @@
|
||||
],
|
||||
[
|
||||
"L"
|
||||
],
|
||||
[
|
||||
"M"
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
"Z"
|
||||
"W"
|
||||
],
|
||||
[
|
||||
"X"
|
||||
@@ -286,7 +296,11 @@
|
||||
"N"
|
||||
],
|
||||
[
|
||||
"M"
|
||||
"'",
|
||||
"‘",
|
||||
"’",
|
||||
"‹",
|
||||
"›"
|
||||
]
|
||||
],
|
||||
[
|
||||
@@ -369,10 +383,10 @@
|
||||
"#"
|
||||
],
|
||||
[
|
||||
"$",
|
||||
"€",
|
||||
"¢",
|
||||
"£",
|
||||
"€",
|
||||
"$",
|
||||
"¥",
|
||||
"₱"
|
||||
],
|
||||
@@ -511,13 +525,14 @@
|
||||
"£"
|
||||
],
|
||||
[
|
||||
"¥"
|
||||
],
|
||||
[
|
||||
"$",
|
||||
"¢"
|
||||
],
|
||||
[
|
||||
"€"
|
||||
],
|
||||
[
|
||||
"¥"
|
||||
"¢"
|
||||
],
|
||||
[
|
||||
"^",
|
||||
@@ -594,6 +609,6 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"locale": "fr-CA",
|
||||
"name": "French Canada"
|
||||
"locale": "fr",
|
||||
"name": "French"
|
||||
}
|
@@ -24,7 +24,7 @@ ifaces = [
|
||||
]
|
||||
foreach iface : ifaces
|
||||
custom_target(iface[0] + ' docs',
|
||||
input: '../../../data/@0@.xml'.format(iface[0]),
|
||||
input: '../../../data/dbus-interfaces/@0@.xml'.format(iface[0]),
|
||||
output: 'doc-gen-' + iface[1],
|
||||
command: [
|
||||
'gdbus-codegen',
|
||||
|
@@ -13,18 +13,9 @@ const _ = Gettext.gettext;
|
||||
|
||||
const Config = imports.misc.config;
|
||||
const ExtensionUtils = imports.misc.extensionUtils;
|
||||
const { loadInterfaceXML } = imports.misc.fileUtils;
|
||||
|
||||
const GnomeShellIface = `
|
||||
<node>
|
||||
<interface name="org.gnome.Shell.Extensions">
|
||||
<signal name="ExtensionStatusChanged">
|
||||
<arg type="s" name="uuid"/>
|
||||
<arg type="i" name="state"/>
|
||||
<arg type="s" name="error"/>
|
||||
</signal>
|
||||
</interface>
|
||||
</node>`;
|
||||
|
||||
const GnomeShellIface = loadInterfaceXML('org.gnome.Shell.Extensions');
|
||||
const GnomeShellProxy = Gio.DBusProxy.makeProxyWrapper(GnomeShellIface);
|
||||
|
||||
function stripPrefix(string, prefix) {
|
||||
|
@@ -11,6 +11,7 @@ const Animation = imports.ui.animation;
|
||||
const Batch = imports.gdm.batch;
|
||||
const GdmUtil = imports.gdm.util;
|
||||
const Params = imports.misc.params;
|
||||
const Shell = imports.gi.Shell;
|
||||
const ShellEntry = imports.ui.shellEntry;
|
||||
const Tweener = imports.ui.tweener;
|
||||
const UserWidget = imports.ui.userWidget;
|
||||
@@ -99,7 +100,7 @@ var AuthPrompt = new Lang.Class({
|
||||
x_align: St.Align.START });
|
||||
this._entry = new St.Entry({ style_class: 'login-dialog-prompt-entry',
|
||||
can_focus: true });
|
||||
ShellEntry.addContextMenu(this._entry, { isPassword: true });
|
||||
ShellEntry.addContextMenu(this._entry, { isPassword: true, actionMode: Shell.ActionMode.NONE });
|
||||
|
||||
this.actor.add(this._entry,
|
||||
{ expand: true,
|
||||
|
@@ -342,7 +342,8 @@ var SessionMenuButton = new Lang.Class({
|
||||
this._button.remove_style_pseudo_class('active');
|
||||
});
|
||||
|
||||
this._manager = new PopupMenu.PopupMenuManager({ actor: this._button });
|
||||
this._manager = new PopupMenu.PopupMenuManager({ actor: this._button },
|
||||
{ actionMode: Shell.ActionMode.NONE });
|
||||
this._manager.addMenu(this._menu);
|
||||
|
||||
this._button.connect('clicked', () => { this._menu.toggle(); });
|
||||
|
@@ -5,61 +5,15 @@ const Lang = imports.lang;
|
||||
const Shell = imports.gi.Shell;
|
||||
const Signals = imports.signals;
|
||||
|
||||
const ProviderIface = `
|
||||
<node>
|
||||
<interface name="org.freedesktop.realmd.Provider">
|
||||
<property name="Name" type="s" access="read"/>
|
||||
<property name="Version" type="s" access="read"/>
|
||||
<property name="Realms" type="ao" access="read"/>
|
||||
<method name="Discover">
|
||||
<arg name="string" type="s" direction="in"/>
|
||||
<arg name="options" type="a{sv}" direction="in"/>
|
||||
<arg name="relevance" type="i" direction="out"/>
|
||||
<arg name="realm" type="ao" direction="out"/>
|
||||
</method>
|
||||
</interface>
|
||||
</node>`;
|
||||
const { loadInterfaceXML } = imports.misc.fileUtils;
|
||||
|
||||
const ProviderIface = loadInterfaceXML("org.freedesktop.realmd.Provider");
|
||||
const Provider = Gio.DBusProxy.makeProxyWrapper(ProviderIface);
|
||||
|
||||
const ServiceIface = `
|
||||
<node>
|
||||
<interface name="org.freedesktop.realmd.Service">
|
||||
<method name="Cancel">
|
||||
<arg name="operation" type="s" direction="in"/>
|
||||
</method>
|
||||
<method name="Release" />
|
||||
<method name="SetLocale">
|
||||
<arg name="locale" type="s" direction="in"/>
|
||||
</method>
|
||||
<signal name="Diagnostics">
|
||||
<arg name="data" type="s"/>
|
||||
<arg name="operation" type="s"/>
|
||||
</signal>
|
||||
</interface>
|
||||
</node>`;
|
||||
const ServiceIface = loadInterfaceXML("org.freedesktop.realmd.Service");
|
||||
const Service = Gio.DBusProxy.makeProxyWrapper(ServiceIface);
|
||||
|
||||
const RealmIface = `
|
||||
<node>
|
||||
<interface name="org.freedesktop.realmd.Realm">
|
||||
<property name="Name" type="s" access="read"/>
|
||||
<property name="Configured" type="s" access="read"/>
|
||||
<property name="Details" type="a(ss)" access="read"/>
|
||||
<property name="LoginFormats" type="as" access="read"/>
|
||||
<property name="LoginPolicy" type="s" access="read"/>
|
||||
<property name="PermittedLogins" type="as" access="read"/>
|
||||
<property name="SupportedInterfaces" type="as" access="read"/>
|
||||
<method name="ChangeLoginPolicy">
|
||||
<arg name="login_policy" type="s" direction="in"/>
|
||||
<arg name="permitted_add" type="as" direction="in"/>
|
||||
<arg name="permitted_remove" type="as" direction="in"/>
|
||||
<arg name="options" type="a{sv}" direction="in"/>
|
||||
</method>
|
||||
<method name="Deconfigure">
|
||||
<arg name="options" type="a{sv}" direction="in"/>
|
||||
</method>
|
||||
</interface>
|
||||
</node>`;
|
||||
const RealmIface = loadInterfaceXML("org.freedesktop.realmd.Realm");
|
||||
const Realm = Gio.DBusProxy.makeProxyWrapper(RealmIface);
|
||||
|
||||
var Manager = new Lang.Class({
|
||||
|
@@ -14,6 +14,7 @@ var GETTEXT_PACKAGE = '@GETTEXT_PACKAGE@';
|
||||
var LOCALEDIR = '@datadir@/locale';
|
||||
/* other standard directories */
|
||||
var LIBEXECDIR = '@libexecdir@';
|
||||
var PKGDATADIR = '@datadir@/@PACKAGE_NAME@';
|
||||
var VPNDIR = '@vpndir@';
|
||||
/* g-i package versions */
|
||||
var LIBMUTTER_API_VERSION = '@LIBMUTTER_API_VERSION@'
|
||||
|
@@ -3,6 +3,7 @@
|
||||
const Gio = imports.gi.Gio;
|
||||
const GLib = imports.gi.GLib;
|
||||
const Lang = imports.lang;
|
||||
const Config = imports.misc.config;
|
||||
const Params = imports.misc.params;
|
||||
|
||||
function collectFromDatadirs(subdir, includeUserDir, processFile) {
|
||||
@@ -70,3 +71,30 @@ function recursivelyMoveDir(srcDir, destDir) {
|
||||
recursivelyMoveDir(srcChild, destChild);
|
||||
}
|
||||
}
|
||||
|
||||
let _ifaceResource = null;
|
||||
function loadInterfaceXML(iface) {
|
||||
if (!_ifaceResource) {
|
||||
// don't use global.datadir so the method is usable from tests/tools
|
||||
let dir = GLib.getenv ('GNOME_SHELL_DATADIR') || Config.PKGDATADIR;
|
||||
let path = dir + '/gnome-shell-dbus-interfaces.gresource';
|
||||
_ifaceResource = Gio.Resource.load(path);
|
||||
_ifaceResource._register();
|
||||
}
|
||||
|
||||
let xml = null;
|
||||
let uri = 'resource:///org/gnome/shell/dbus-interfaces/' + iface + '.xml';
|
||||
let f = Gio.File.new_for_uri(uri);
|
||||
|
||||
try {
|
||||
let [ok, bytes] = f.load_contents(null);
|
||||
if (bytes instanceof Uint8Array)
|
||||
xml = imports.byteArray.toString(bytes)
|
||||
else
|
||||
xml = bytes.toString();
|
||||
} catch (e) {
|
||||
log('Failed to load D-Bus interface ' + iface);
|
||||
}
|
||||
|
||||
return xml;
|
||||
}
|
||||
|
@@ -4,18 +4,9 @@ const Gio = imports.gi.Gio;
|
||||
const Lang = imports.lang;
|
||||
const Signals = imports.signals;
|
||||
|
||||
const PresenceIface = `
|
||||
<node>
|
||||
<interface name="org.gnome.SessionManager.Presence">
|
||||
<method name="SetStatus">
|
||||
<arg type="u" direction="in"/>
|
||||
</method>
|
||||
<property name="status" type="u" access="readwrite"/>
|
||||
<signal name="StatusChanged">
|
||||
<arg type="u" direction="out"/>
|
||||
</signal>
|
||||
</interface>
|
||||
</node>`;
|
||||
const { loadInterfaceXML } = imports.misc.fileUtils;
|
||||
|
||||
const PresenceIface = loadInterfaceXML('org.gnome.SessionManager.Presence');
|
||||
|
||||
var PresenceStatus = {
|
||||
AVAILABLE: 0,
|
||||
@@ -33,49 +24,14 @@ function Presence(initCallback, cancellable) {
|
||||
// Note inhibitors are immutable objects, so they don't
|
||||
// change at runtime (changes always come in the form
|
||||
// of new inhibitors)
|
||||
const InhibitorIface = `
|
||||
<node>
|
||||
<interface name="org.gnome.SessionManager.Inhibitor">
|
||||
<method name="GetAppId">
|
||||
<arg type="s" direction="out" />
|
||||
</method>
|
||||
<method name="GetReason">
|
||||
<arg type="s" direction="out" />
|
||||
</method>
|
||||
</interface>
|
||||
</node>`;
|
||||
|
||||
const InhibitorIface = loadInterfaceXML('org.gnome.SessionManager.Inhibitor');
|
||||
var InhibitorProxy = Gio.DBusProxy.makeProxyWrapper(InhibitorIface);
|
||||
function Inhibitor(objectPath, initCallback, cancellable) {
|
||||
return new InhibitorProxy(Gio.DBus.session, 'org.gnome.SessionManager', objectPath, initCallback, cancellable);
|
||||
}
|
||||
|
||||
// Not the full interface, only the methods we use
|
||||
const SessionManagerIface = `
|
||||
<node>
|
||||
<interface name="org.gnome.SessionManager">
|
||||
<method name="Logout">
|
||||
<arg type="u" direction="in" />
|
||||
</method>
|
||||
<method name="Shutdown" />
|
||||
<method name="Reboot" />
|
||||
<method name="CanShutdown">
|
||||
<arg type="b" direction="out" />
|
||||
</method>
|
||||
<method name="IsInhibited">
|
||||
<arg type="u" direction="in" />
|
||||
<arg type="b" direction="out" />
|
||||
</method>
|
||||
<property name="SessionIsActive" type="b" access="read"/>
|
||||
<signal name="InhibitorAdded">
|
||||
<arg type="o" direction="out"/>
|
||||
</signal>
|
||||
<signal name="InhibitorRemoved">
|
||||
<arg type="o" direction="out"/>
|
||||
</signal>
|
||||
</interface>
|
||||
</node>`;
|
||||
|
||||
const SessionManagerIface = loadInterfaceXML('org.gnome.SessionManager');
|
||||
var SessionManagerProxy = Gio.DBusProxy.makeProxyWrapper(SessionManagerIface);
|
||||
function SessionManager(initCallback, cancellable) {
|
||||
return new SessionManagerProxy(Gio.DBus.session, 'org.gnome.SessionManager', '/org/gnome/SessionManager', initCallback, cancellable);
|
||||
|
@@ -76,6 +76,7 @@ var HistoryManager = new Lang.Class({
|
||||
if (this._history.length == 0 ||
|
||||
this._history[this._history.length - 1] != input) {
|
||||
|
||||
this._history = this._history.filter(entry => entry != input);
|
||||
this._history.push(input);
|
||||
this._save();
|
||||
}
|
||||
|
@@ -119,6 +119,11 @@ var IBusManager = new Lang.Class({
|
||||
let cursorLocation = { x, y, width: w, height: h };
|
||||
this.emit('set-cursor-location', cursorLocation);
|
||||
});
|
||||
this._panelService.connect('focus-in', (panel, path) => {
|
||||
if (!GLib.str_has_suffix(path, '/InputContext_1'))
|
||||
this.emit ('focus-in');
|
||||
});
|
||||
this._panelService.connect('focus-out', () => { this.emit('focus-out'); });
|
||||
|
||||
try {
|
||||
// IBus versions older than 1.5.10 have a bug which
|
||||
@@ -205,7 +210,7 @@ var IBusManager = new Lang.Class({
|
||||
}
|
||||
|
||||
this._ibus.set_global_engine_async(id, this._MAX_INPUT_SOURCE_ACTIVATION_TIME,
|
||||
null, callback);
|
||||
null, callback || null);
|
||||
},
|
||||
|
||||
preloadEngines(ids) {
|
||||
|
@@ -15,10 +15,9 @@ var InputMethod = new Lang.Class({
|
||||
this._purpose = 0;
|
||||
this._enabled = true;
|
||||
this._currentFocus = null;
|
||||
this._currentEvent = null;
|
||||
this._doForwardEvent = false;
|
||||
this._preeditStr = '';
|
||||
this._preeditPos = 0;
|
||||
this._preeditVisible = false;
|
||||
this._ibus = IBus.Bus.new_async();
|
||||
this._ibus.connect('connected', this._onConnected.bind(this));
|
||||
this._ibus.connect('disconnected', this._clear.bind(this));
|
||||
@@ -29,9 +28,6 @@ var InputMethod = new Lang.Class({
|
||||
this._onSourceChanged.bind(this));
|
||||
this._currentSource = this._inputSourceManager.currentSource;
|
||||
|
||||
let deviceManager = Clutter.DeviceManager.get_default();
|
||||
this._virtualDevice = deviceManager.create_virtual_device(Clutter.InputDeviceType.KEYBOARD_DEVICE);
|
||||
|
||||
if (this._ibus.is_connected())
|
||||
this._onConnected();
|
||||
},
|
||||
@@ -85,6 +81,7 @@ var InputMethod = new Lang.Class({
|
||||
this._enabled = false;
|
||||
this._preeditStr = ''
|
||||
this._preeditPos = 0;
|
||||
this._preeditVisible = false;
|
||||
},
|
||||
|
||||
_emitRequestSurrounding() {
|
||||
@@ -103,38 +100,41 @@ var InputMethod = new Lang.Class({
|
||||
_onUpdatePreeditText(context, text, pos, visible) {
|
||||
if (text == null)
|
||||
return;
|
||||
this._preeditStr = text.get_text();
|
||||
this._preeditPos = pos;
|
||||
|
||||
let preedit = text.get_text();
|
||||
|
||||
if (visible)
|
||||
this.set_preedit_text(this._preeditStr, pos);
|
||||
else
|
||||
this.set_preedit_text(preedit, pos);
|
||||
else if (this._preeditVisible)
|
||||
this.set_preedit_text(null, pos);
|
||||
|
||||
this._preeditStr = preedit;
|
||||
this._preeditPos = pos;
|
||||
this._preeditVisible = visible;
|
||||
},
|
||||
|
||||
_onShowPreeditText(context) {
|
||||
this._preeditVisible = true;
|
||||
this.set_preedit_text(this._preeditStr, this._preeditPos);
|
||||
},
|
||||
|
||||
_onHidePreeditText(context) {
|
||||
this.set_preedit_text(null, this._preeditPos);
|
||||
this._preeditVisible = false;
|
||||
},
|
||||
|
||||
_onForwardKeyEvent(context, keyval, keycode, state) {
|
||||
let press = (state & IBus.ModifierType.RELEASE_MASK) == 0;
|
||||
state &= ~(IBus.ModifierType.RELEASE_MASK);
|
||||
|
||||
if (this._currentEvent) {
|
||||
// If we are handling this same event in filter_key_press(),
|
||||
// just let it go through, sending the same event again will
|
||||
// be silenced away because the key counts as pressed.
|
||||
if (this._currentEvent.get_key_symbol() == keyval &&
|
||||
(this._currentEvent.type() == Clutter.EventType.KEY_PRESS) == press) {
|
||||
this._doForwardEvent = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
let curEvent = Clutter.get_current_event();
|
||||
let time;
|
||||
if (curEvent)
|
||||
time = curEvent.get_time();
|
||||
else
|
||||
time = global.display.get_current_time_roundtrip();
|
||||
|
||||
this._virtualDevice.notify_key(Clutter.get_current_event_time(), keycode,
|
||||
press ? Clutter.KeyState.PRESSED : Clutter.KeyState.RELEASED);
|
||||
this.forward_key(keyval, keycode + 8, state & Clutter.ModifierType.MODIFIER_MASK, time, press);
|
||||
},
|
||||
|
||||
vfunc_focus_in(focus) {
|
||||
@@ -153,8 +153,11 @@ var InputMethod = new Lang.Class({
|
||||
this._updateCapabilities();
|
||||
}
|
||||
|
||||
// Unset any preedit text
|
||||
this.set_preedit_text(null, 0);
|
||||
if (this._preeditStr) {
|
||||
// Unset any preedit text
|
||||
this.set_preedit_text(null, 0);
|
||||
this._preeditStr = null;
|
||||
}
|
||||
},
|
||||
|
||||
vfunc_reset() {
|
||||
@@ -163,8 +166,11 @@ var InputMethod = new Lang.Class({
|
||||
this._emitRequestSurrounding();
|
||||
}
|
||||
|
||||
// Unset any preedit text
|
||||
this.set_preedit_text(null, 0);
|
||||
if (this._preeditStr) {
|
||||
// Unset any preedit text
|
||||
this.set_preedit_text(null, 0);
|
||||
this._preeditStr = null;
|
||||
}
|
||||
},
|
||||
|
||||
vfunc_set_cursor_location(rect) {
|
||||
@@ -176,8 +182,11 @@ var InputMethod = new Lang.Class({
|
||||
},
|
||||
|
||||
vfunc_set_surrounding(text, cursor, anchor) {
|
||||
if (this._context)
|
||||
this._context.set_surrounding_text(text, cursor, anchor);
|
||||
if (!this._context || !text)
|
||||
return;
|
||||
|
||||
let ibusText = IBus.Text.new_from_string(text);
|
||||
this._context.set_surrounding_text(ibusText, cursor, anchor);
|
||||
},
|
||||
|
||||
vfunc_update_content_hints(hints) {
|
||||
@@ -239,22 +248,13 @@ var InputMethod = new Lang.Class({
|
||||
if (event.type() == Clutter.EventType.KEY_RELEASE)
|
||||
state |= IBus.ModifierType.RELEASE_MASK;
|
||||
|
||||
this._currentEvent = event;
|
||||
this._doForwardEvent = false;
|
||||
|
||||
this._context.process_key_event_async(event.get_key_symbol(),
|
||||
event.get_key_code() - 8, // Convert XKB keycodes to evcodes
|
||||
state, -1, null,
|
||||
(context, res) => {
|
||||
try {
|
||||
let retval = context.process_key_event_async_finish(res);
|
||||
|
||||
if (this._doForwardEvent)
|
||||
retval = false;
|
||||
|
||||
this.notify_key_event(event, retval);
|
||||
this._doForwardEvent = false;
|
||||
this._currentEvent = null;
|
||||
} catch (e) {
|
||||
log('Error processing key on IM: ' + e.message);
|
||||
}
|
||||
|
@@ -52,11 +52,20 @@ var KeyboardManager = new Lang.Class({
|
||||
this._current = null;
|
||||
this._localeLayoutInfo = this._getLocaleLayout();
|
||||
this._layoutInfos = {};
|
||||
this._currentKeymap = null;
|
||||
},
|
||||
|
||||
_applyLayoutGroup(group) {
|
||||
let options = this._buildOptionsString();
|
||||
let [layouts, variants] = this._buildGroupStrings(group);
|
||||
|
||||
if (this._currentKeymap &&
|
||||
this._currentKeymap.layouts == layouts &&
|
||||
this._currentKeymap.variants == variants &&
|
||||
this._currentKeymap.options == options)
|
||||
return;
|
||||
|
||||
this._currentKeymap = {layouts, variants, options};
|
||||
Meta.get_backend().set_keymap(layouts, variants, options);
|
||||
},
|
||||
|
||||
@@ -89,8 +98,6 @@ var KeyboardManager = new Lang.Class({
|
||||
},
|
||||
|
||||
setUserLayouts(ids) {
|
||||
let currentId = this._current ? this._current.id : null;
|
||||
let currentGroupIndex = this._current ? this._current.groupIndex : null;
|
||||
this._current = null;
|
||||
this._layoutInfos = {};
|
||||
|
||||
@@ -117,9 +124,6 @@ var KeyboardManager = new Lang.Class({
|
||||
info.group = group;
|
||||
info.groupIndex = groupIndex;
|
||||
|
||||
if (currentId == id && currentGroupIndex == groupIndex)
|
||||
this._current = info;
|
||||
|
||||
i += 1;
|
||||
}
|
||||
},
|
||||
|
@@ -7,56 +7,11 @@ const Mainloop = imports.mainloop;
|
||||
const Shell = imports.gi.Shell;
|
||||
const Signals = imports.signals;
|
||||
|
||||
const SystemdLoginManagerIface = `
|
||||
<node>
|
||||
<interface name="org.freedesktop.login1.Manager">
|
||||
<method name="Suspend">
|
||||
<arg type="b" direction="in"/>
|
||||
</method>
|
||||
<method name="CanSuspend">
|
||||
<arg type="s" direction="out"/>
|
||||
</method>
|
||||
<method name="Inhibit">
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="h" direction="out"/>
|
||||
</method>
|
||||
<method name="GetSession">
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="o" direction="out"/>
|
||||
</method>
|
||||
<method name="ListSessions">
|
||||
<arg name="sessions" type="a(susso)" direction="out"/>
|
||||
</method>
|
||||
<signal name="PrepareForSleep">
|
||||
<arg type="b" direction="out"/>
|
||||
</signal>
|
||||
</interface>
|
||||
</node>`;
|
||||
const { loadInterfaceXML } = imports.misc.fileUtils;
|
||||
|
||||
const SystemdLoginSessionIface = `
|
||||
<node>
|
||||
<interface name="org.freedesktop.login1.Session">
|
||||
<signal name="Lock" />
|
||||
<signal name="Unlock" />
|
||||
<property name="Active" type="b" access="read" />
|
||||
<property name="Class" type="s" access="read" />
|
||||
<property name="Id" type="s" access="read" />
|
||||
<method name="SetLockedHint">
|
||||
<arg type="b" direction="in"/>
|
||||
</method>
|
||||
</interface>
|
||||
</node>`;
|
||||
|
||||
const SystemdLoginUserIface = `
|
||||
<node>
|
||||
<interface name="org.freedesktop.login1.User">
|
||||
<property name="Display" type="(so)" access="read" />
|
||||
<property name="Sessions" type="a(so)" access="read" />
|
||||
</interface>
|
||||
</node>`;
|
||||
const SystemdLoginManagerIface = loadInterfaceXML('org.freedesktop.login1.Manager');
|
||||
const SystemdLoginSessionIface = loadInterfaceXML('org.freedesktop.login1.Session');
|
||||
const SystemdLoginUserIface = loadInterfaceXML('org.freedesktop.login1.User');
|
||||
|
||||
const SystemdLoginManager = Gio.DBusProxy.makeProxyWrapper(SystemdLoginManagerIface);
|
||||
const SystemdLoginSession = Gio.DBusProxy.makeProxyWrapper(SystemdLoginSessionIface);
|
||||
|
@@ -5,6 +5,8 @@ const Lang = imports.lang;
|
||||
const NMA = imports.gi.NMA;
|
||||
const Signals = imports.signals;
|
||||
|
||||
const { loadInterfaceXML } = imports.misc.fileUtils;
|
||||
|
||||
// _getMobileProvidersDatabase:
|
||||
//
|
||||
// Gets the database of mobile providers, with references between MCCMNC/SID and
|
||||
@@ -92,44 +94,10 @@ function _findProviderForSid(sid) {
|
||||
// The following are not the complete interfaces, just the methods we need
|
||||
// (or may need in the future)
|
||||
|
||||
const ModemGsmNetworkInterface = `
|
||||
<node>
|
||||
<interface name="org.freedesktop.ModemManager.Modem.Gsm.Network">
|
||||
<method name="GetRegistrationInfo">
|
||||
<arg type="(uss)" direction="out" />
|
||||
</method>
|
||||
<method name="GetSignalQuality">
|
||||
<arg type="u" direction="out" />
|
||||
</method>
|
||||
<property name="AccessTechnology" type="u" access="read" />
|
||||
<signal name="SignalQuality">
|
||||
<arg type="u" direction="out" />
|
||||
</signal>
|
||||
<signal name="RegistrationInfo">
|
||||
<arg type="u" direction="out" />
|
||||
<arg type="s" direction="out" />
|
||||
<arg type="s" direction="out" />
|
||||
</signal>
|
||||
</interface>
|
||||
</node>`;
|
||||
|
||||
const ModemGsmNetworkInterface = loadInterfaceXML('org.freedesktop.ModemManager.Modem.Gsm.Network');
|
||||
const ModemGsmNetworkProxy = Gio.DBusProxy.makeProxyWrapper(ModemGsmNetworkInterface);
|
||||
|
||||
const ModemCdmaInterface = `
|
||||
<node>
|
||||
<interface name="org.freedesktop.ModemManager.Modem.Cdma">
|
||||
<method name="GetSignalQuality">
|
||||
<arg type="u" direction="out" />
|
||||
</method>
|
||||
<method name="GetServingSystem">
|
||||
<arg type="(usu)" direction="out" />
|
||||
</method>
|
||||
<signal name="SignalQuality">
|
||||
<arg type="u" direction="out" />
|
||||
</signal>
|
||||
</interface>
|
||||
</node>`;
|
||||
|
||||
const ModemCdmaInterface = loadInterfaceXML('org.freedesktop.ModemManager.Modem.Cdma');
|
||||
const ModemCdmaProxy = Gio.DBusProxy.makeProxyWrapper(ModemCdmaInterface);
|
||||
|
||||
var ModemGsm = new Lang.Class({
|
||||
@@ -224,29 +192,13 @@ Signals.addSignalMethods(ModemCdma.prototype);
|
||||
// Support for the new ModemManager1 interface (MM >= 0.7)
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
const BroadbandModemInterface = `
|
||||
<node>
|
||||
<interface name="org.freedesktop.ModemManager1.Modem">
|
||||
<property name="SignalQuality" type="(ub)" access="read" />
|
||||
</interface>
|
||||
</node>`;
|
||||
const BroadbandModemInterface = loadInterfaceXML('org.freedesktop.ModemManager1.Modem');
|
||||
const BroadbandModemProxy = Gio.DBusProxy.makeProxyWrapper(BroadbandModemInterface);
|
||||
|
||||
const BroadbandModem3gppInterface = `
|
||||
<node>
|
||||
<interface name="org.freedesktop.ModemManager1.Modem.Modem3gpp">
|
||||
<property name="OperatorCode" type="s" access="read" />
|
||||
<property name="OperatorName" type="s" access="read" />
|
||||
</interface>
|
||||
</node>`;
|
||||
const BroadbandModem3gppInterface = loadInterfaceXML('org.freedesktop.ModemManager1.Modem.Modem3gpp');
|
||||
const BroadbandModem3gppProxy = Gio.DBusProxy.makeProxyWrapper(BroadbandModem3gppInterface);
|
||||
|
||||
const BroadbandModemCdmaInterface = `
|
||||
<node>
|
||||
<interface name="org.freedesktop.ModemManager1.Modem.ModemCdma">
|
||||
<property name="Sid" type="u" access="read" />
|
||||
</interface>
|
||||
</node>`;
|
||||
const BroadbandModemCdmaInterface = loadInterfaceXML('org.freedesktop.ModemManager1.Modem.ModemCdma');
|
||||
const BroadbandModemCdmaProxy = Gio.DBusProxy.makeProxyWrapper(BroadbandModemCdmaInterface);
|
||||
|
||||
var BroadbandModem = new Lang.Class({
|
||||
|
@@ -2,32 +2,9 @@
|
||||
|
||||
const Gio = imports.gi.Gio;
|
||||
|
||||
const PermissionStoreIface = `
|
||||
<node>
|
||||
<interface name="org.freedesktop.impl.portal.PermissionStore">
|
||||
<method name="Lookup">
|
||||
<arg name="table" type="s" direction="in"/>
|
||||
<arg name="id" type="s" direction="in"/>
|
||||
<arg name="permissions" type="a{sas}" direction="out"/>
|
||||
<arg name="data" type="v" direction="out"/>
|
||||
</method>
|
||||
<method name="Set">
|
||||
<arg name="table" type="s" direction="in"/>
|
||||
<arg name="create" type="b" direction="in"/>
|
||||
<arg name="id" type="s" direction="in"/>
|
||||
<arg name="app_permissions" type="a{sas}" direction="in"/>
|
||||
<arg name="data" type="v" direction="in"/>
|
||||
</method>
|
||||
<signal name="Changed">
|
||||
<arg name="table" type="s" direction="out"/>
|
||||
<arg name="id" type="s" direction="out"/>
|
||||
<arg name="deleted" type="b" direction="out"/>
|
||||
<arg name="data" type="v" direction="out"/>
|
||||
<arg name="permissions" type="a{sas}" direction="out"/>
|
||||
</signal>
|
||||
</interface>
|
||||
</node>`;
|
||||
const { loadInterfaceXML } = imports.misc.fileUtils;
|
||||
|
||||
const PermissionStoreIface = loadInterfaceXML('org.freedesktop.impl.portal.PermissionStore');
|
||||
const PermissionStoreProxy = Gio.DBusProxy.makeProxyWrapper(PermissionStoreIface);
|
||||
|
||||
function PermissionStore(initCallback, cancellable) {
|
||||
|
@@ -11,6 +11,8 @@ const GnomeSession = imports.misc.gnomeSession;
|
||||
const LoginManager = imports.misc.loginManager;
|
||||
const Main = imports.ui.main;
|
||||
|
||||
const { loadInterfaceXML } = imports.misc.fileUtils;
|
||||
|
||||
const LOCKDOWN_SCHEMA = 'org.gnome.desktop.lockdown';
|
||||
const LOGIN_SCREEN_SCHEMA = 'org.gnome.login-screen';
|
||||
const DISABLE_USER_SWITCH_KEY = 'disable-user-switching';
|
||||
@@ -22,12 +24,7 @@ const ALWAYS_SHOW_LOG_OUT_KEY = 'always-show-log-out';
|
||||
const SENSOR_BUS_NAME = 'net.hadess.SensorProxy';
|
||||
const SENSOR_OBJECT_PATH = '/net/hadess/SensorProxy';
|
||||
|
||||
const SensorProxyInterface = `
|
||||
<node>
|
||||
<interface name="net.hadess.SensorProxy">
|
||||
<property name="HasAccelerometer" type="b" access="read"/>
|
||||
</interface>
|
||||
</node>`;
|
||||
const SensorProxyInterface = loadInterfaceXML('net.hadess.SensorProxy');
|
||||
|
||||
const POWER_OFF_ACTION_ID = 'power-off';
|
||||
const LOCK_SCREEN_ACTION_ID = 'lock-screen';
|
||||
|
@@ -1,7 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<gresources>
|
||||
<gresource prefix="/org/gnome/shell">
|
||||
<file>misc/config.js</file>
|
||||
<file>portalHelper/main.js</file>
|
||||
|
||||
<file>misc/config.js</file>
|
||||
<file>misc/fileUtils.js</file>
|
||||
<file>misc/params.js</file>
|
||||
</gresource>
|
||||
</gresources>
|
||||
|
@@ -12,6 +12,7 @@ const WebKit = imports.gi.WebKit2;
|
||||
const _ = Gettext.gettext;
|
||||
|
||||
const Config = imports.misc.config;
|
||||
const { loadInterfaceXML } = imports.misc.fileUtils;
|
||||
|
||||
const PortalHelperResult = {
|
||||
CANCELLED: 0,
|
||||
@@ -30,26 +31,7 @@ const CONNECTIVITY_CHECK_HOST = 'nmcheck.gnome.org';
|
||||
const CONNECTIVITY_CHECK_URI = 'http://' + CONNECTIVITY_CHECK_HOST;
|
||||
const CONNECTIVITY_RECHECK_RATELIMIT_TIMEOUT = 30 * GLib.USEC_PER_SEC;
|
||||
|
||||
const HelperDBusInterface = `
|
||||
<node>
|
||||
<interface name="org.gnome.Shell.PortalHelper">
|
||||
<method name="Authenticate">
|
||||
<arg type="o" direction="in" name="connection" />
|
||||
<arg type="s" direction="in" name="url" />
|
||||
<arg type="u" direction="in" name="timestamp" />
|
||||
</method>
|
||||
<method name="Close">
|
||||
<arg type="o" direction="in" name="connection" />
|
||||
</method>
|
||||
<method name="Refresh">
|
||||
<arg type="o" direction="in" name="connection" />
|
||||
</method>
|
||||
<signal name="Done">
|
||||
<arg type="o" name="connection" />
|
||||
<arg type="u" name="result" />
|
||||
</signal>
|
||||
</interface>
|
||||
</node>`;
|
||||
const HelperDBusInterface = loadInterfaceXML('org.gnome.Shell.PortalHelper');
|
||||
|
||||
var PortalHeaderBar = new Lang.Class({
|
||||
Name: 'PortalHeaderBar',
|
||||
|
@@ -10,29 +10,10 @@ const CheckBox = imports.ui.checkBox;
|
||||
const Dialog = imports.ui.dialog;
|
||||
const ModalDialog = imports.ui.modalDialog;
|
||||
|
||||
const RequestIface = `
|
||||
<node>
|
||||
<interface name="org.freedesktop.impl.portal.Request">
|
||||
<method name="Close"/>
|
||||
</interface>
|
||||
</node>`;
|
||||
const { loadInterfaceXML } = imports.misc.fileUtils;
|
||||
|
||||
const AccessIface = `
|
||||
<node>
|
||||
<interface name="org.freedesktop.impl.portal.Access">
|
||||
<method name="AccessDialog">
|
||||
<arg type="o" name="handle" direction="in"/>
|
||||
<arg type="s" name="app_id" direction="in"/>
|
||||
<arg type="s" name="parent_window" direction="in"/>
|
||||
<arg type="s" name="title" direction="in"/>
|
||||
<arg type="s" name="subtitle" direction="in"/>
|
||||
<arg type="s" name="body" direction="in"/>
|
||||
<arg type="a{sv}" name="options" direction="in"/>
|
||||
<arg type="u" name="response" direction="out"/>
|
||||
<arg type="a{sv}" name="results" direction="out"/>
|
||||
</method>
|
||||
</interface>
|
||||
</node>`;
|
||||
const RequestIface = loadInterfaceXML('org.freedesktop.impl.portal.Request');
|
||||
const AccessIface = loadInterfaceXML('org.freedesktop.impl.portal.Access');
|
||||
|
||||
var DialogResponse = {
|
||||
OK: 0,
|
||||
|
@@ -30,6 +30,8 @@ const Params = imports.misc.params;
|
||||
const Util = imports.misc.util;
|
||||
const SystemActions = imports.misc.systemActions;
|
||||
|
||||
const { loadInterfaceXML } = imports.misc.fileUtils;
|
||||
|
||||
var MAX_APPLICATION_WORK_MILLIS = 75;
|
||||
var MENU_POPUP_TIMEOUT = 600;
|
||||
var MAX_COLUMNS = 6;
|
||||
@@ -66,13 +68,7 @@ var PAGE_SWITCH_TIME = 0.3;
|
||||
const SWITCHEROO_BUS_NAME = 'net.hadess.SwitcherooControl';
|
||||
const SWITCHEROO_OBJECT_PATH = '/net/hadess/SwitcherooControl';
|
||||
|
||||
const SwitcherooProxyInterface = `
|
||||
<node>
|
||||
<interface name="net.hadess.SwitcherooControl">
|
||||
<property name="HasDualGpu" type="b" access="read"/>
|
||||
</interface>
|
||||
</node>`;
|
||||
|
||||
const SwitcherooProxyInterface = loadInterfaceXML('net.hadess.SwitcherooControl');
|
||||
const SwitcherooProxy = Gio.DBusProxy.makeProxyWrapper(SwitcherooProxyInterface);
|
||||
let discreteGpuAvailable = false;
|
||||
|
||||
@@ -1466,7 +1462,9 @@ var AppFolderPopup = new Lang.Class({
|
||||
global.focus_manager.add_group(this.actor);
|
||||
|
||||
source.actor.connect('destroy', () => { this.actor.destroy(); });
|
||||
this._grabHelper = new GrabHelper.GrabHelper(this.actor);
|
||||
this._grabHelper = new GrabHelper.GrabHelper(this.actor, {
|
||||
actionMode: Shell.ActionMode.POPUP
|
||||
});
|
||||
this._grabHelper.addActor(Main.layoutManager.overviewGroup);
|
||||
this.actor.connect('key-press-event', this._onKeyPress.bind(this));
|
||||
},
|
||||
|
@@ -44,6 +44,7 @@ const RENAMED_DESKTOP_IDS = {
|
||||
'nautilus.desktop': 'org.gnome.Nautilus.desktop',
|
||||
'polari.desktop': 'org.gnome.Polari.desktop',
|
||||
'totem.desktop': 'org.gnome.Totem.desktop',
|
||||
'evince.desktop': 'org.gnome.Evince.desktop',
|
||||
};
|
||||
|
||||
var AppFavorites = new Lang.Class({
|
||||
@@ -127,7 +128,6 @@ var AppFavorites = new Lang.Class({
|
||||
else
|
||||
ids.splice(pos, 0, appId);
|
||||
global.settings.set_strv(this.FAVORITE_APPS_KEY, ids);
|
||||
this._favorites[appId] = app;
|
||||
return true;
|
||||
},
|
||||
|
||||
|
@@ -9,25 +9,15 @@ const St = imports.gi.St;
|
||||
const Main = imports.ui.main;
|
||||
const ModalDialog = imports.ui.modalDialog;
|
||||
|
||||
const { loadInterfaceXML } = imports.misc.fileUtils;
|
||||
|
||||
var AudioDevice = {
|
||||
HEADPHONES: 1 << 0,
|
||||
HEADSET: 1 << 1,
|
||||
MICROPHONE: 1 << 2
|
||||
};
|
||||
|
||||
const AudioDeviceSelectionIface = `
|
||||
<node>
|
||||
<interface name="org.gnome.Shell.AudioDeviceSelection">
|
||||
<method name="Open">
|
||||
<arg name="devices" direction="in" type="as" />
|
||||
</method>
|
||||
<method name="Close">
|
||||
</method>
|
||||
<signal name="DeviceSelected">
|
||||
<arg name="device" type="s" />
|
||||
</signal>
|
||||
</interface>
|
||||
</node>`;
|
||||
const AudioDeviceSelectionIface = loadInterfaceXML('org.gnome.Shell.AudioDeviceSelection');
|
||||
|
||||
var AudioDeviceSelectionDialog = new Lang.Class({
|
||||
Name: 'AudioDeviceSelectionDialog',
|
||||
|
@@ -61,6 +61,15 @@ var BoxPointer = new Lang.Class({
|
||||
this._sourceAlignment = 0.5;
|
||||
this._capturedEventId = 0;
|
||||
this._muteInput();
|
||||
|
||||
this.actor.connect('destroy', this._onDestroy.bind(this));
|
||||
},
|
||||
|
||||
_onDestroy() {
|
||||
if (this._sourceActorDestroyId) {
|
||||
this._sourceActor.disconnect(this._sourceActorDestroyId);
|
||||
delete this._sourceActorDestroyId;
|
||||
}
|
||||
},
|
||||
|
||||
get arrowSide() {
|
||||
@@ -424,9 +433,26 @@ var BoxPointer = new Lang.Class({
|
||||
// so that we can query the correct size.
|
||||
this.actor.show();
|
||||
|
||||
this._sourceActor = sourceActor;
|
||||
if (!this._sourceActor || sourceActor != this._sourceActor) {
|
||||
if (this._sourceActorDestroyId) {
|
||||
this._sourceActor.disconnect(this._sourceActorDestroyId);
|
||||
delete this._sourceActorDestroyId;
|
||||
}
|
||||
|
||||
this._sourceActor = sourceActor;
|
||||
|
||||
if (this._sourceActor) {
|
||||
this._sourceActorDestroyId = this._sourceActor.connect('destroy', () => {
|
||||
this._sourceActor = null;
|
||||
delete this._sourceActorDestroyId;
|
||||
})
|
||||
}
|
||||
}
|
||||
this._arrowAlignment = alignment;
|
||||
|
||||
if (!this._sourceActor)
|
||||
return;
|
||||
|
||||
this._reposition();
|
||||
this._updateFlip();
|
||||
},
|
||||
|
@@ -28,7 +28,10 @@ var CloseDialog = new Lang.Class({
|
||||
this.parent();
|
||||
this._window = window;
|
||||
this._dialog = null;
|
||||
this._tracked = undefined;
|
||||
this._timeoutId = 0;
|
||||
this._windowFocusChangedId = 0;
|
||||
this._keyFocusChangedId = 0;
|
||||
},
|
||||
|
||||
get window() {
|
||||
@@ -96,6 +99,37 @@ var CloseDialog = new Lang.Class({
|
||||
this.response(Meta.CloseDialogResponse.FORCE_CLOSE);
|
||||
},
|
||||
|
||||
_onFocusChanged() {
|
||||
if (Meta.is_wayland_compositor())
|
||||
return;
|
||||
|
||||
let focusWindow = global.display.focus_window;
|
||||
let keyFocus = global.stage.key_focus;
|
||||
|
||||
let shouldTrack;
|
||||
if (focusWindow != null)
|
||||
shouldTrack = focusWindow == this._window;
|
||||
else
|
||||
shouldTrack = keyFocus && this._dialog.contains(keyFocus);
|
||||
|
||||
if (this._tracked === shouldTrack)
|
||||
return;
|
||||
|
||||
if (shouldTrack)
|
||||
Main.layoutManager.trackChrome(this._dialog,
|
||||
{ affectsInputRegion: true });
|
||||
else
|
||||
Main.layoutManager.untrackChrome(this._dialog);
|
||||
|
||||
// The buttons are broken when they aren't added to the input region,
|
||||
// so disable them properly in that case
|
||||
this._dialog.buttonLayout.get_children().forEach(b => {
|
||||
b.reactive = shouldTrack;
|
||||
});
|
||||
|
||||
this._tracked = shouldTrack;
|
||||
},
|
||||
|
||||
vfunc_show() {
|
||||
if (this._dialog != null)
|
||||
return;
|
||||
@@ -108,6 +142,14 @@ var CloseDialog = new Lang.Class({
|
||||
return GLib.SOURCE_CONTINUE;
|
||||
});
|
||||
|
||||
this._windowFocusChangedId =
|
||||
global.display.connect('notify::focus-window',
|
||||
this._onFocusChanged.bind(this));
|
||||
|
||||
this._keyFocusChangedId =
|
||||
global.stage.connect('notify::key-focus',
|
||||
this._onFocusChanged.bind(this));
|
||||
|
||||
this._addWindowEffect();
|
||||
this._initDialog();
|
||||
|
||||
@@ -118,9 +160,7 @@ var CloseDialog = new Lang.Class({
|
||||
{ scale_y: 1,
|
||||
transition: 'linear',
|
||||
time: DIALOG_TRANSITION_TIME,
|
||||
onComplete: () => {
|
||||
Main.layoutManager.trackChrome(this._dialog, { affectsInputRegion: true });
|
||||
}
|
||||
onComplete: this._onFocusChanged.bind(this)
|
||||
});
|
||||
},
|
||||
|
||||
@@ -133,6 +173,12 @@ var CloseDialog = new Lang.Class({
|
||||
GLib.source_remove(this._timeoutId);
|
||||
this._timeoutId = 0;
|
||||
|
||||
global.display.disconnect(this._windowFocusChangedId)
|
||||
this._windowFocusChangedId = 0;
|
||||
|
||||
global.stage.disconnect(this._keyFocusChangedId);
|
||||
this._keyFocusChangedId = 0;
|
||||
|
||||
let dialog = this._dialog;
|
||||
this._dialog = null;
|
||||
this._removeWindowEffect();
|
||||
|
@@ -25,6 +25,7 @@ var AutomountManager = new Lang.Class({
|
||||
_init() {
|
||||
this._settings = new Gio.Settings({ schema_id: SETTINGS_SCHEMA });
|
||||
this._volumeQueue = [];
|
||||
this._activeOperations = new Map();
|
||||
this._session = new GnomeSession.SessionManager();
|
||||
this._session.connectSignal('InhibitorAdded',
|
||||
this._InhibitorsChanged.bind(this));
|
||||
@@ -182,7 +183,7 @@ var AutomountManager = new Lang.Class({
|
||||
this._allowAutorun(volume);
|
||||
|
||||
let mountOp = operation ? operation.mountOp : null;
|
||||
volume._operation = operation;
|
||||
this._activeOperations.set(volume, operation);
|
||||
|
||||
volume.mount(0, mountOp, null,
|
||||
this._onVolumeMounted.bind(this));
|
||||
@@ -219,7 +220,8 @@ var AutomountManager = new Lang.Class({
|
||||
},
|
||||
|
||||
_reaskPassword(volume) {
|
||||
let existingDialog = volume._operation ? volume._operation.borrowDialog() : null;
|
||||
let prevOperation = this._activeOperations.get(volume);
|
||||
let existingDialog = prevOperation ? prevOperation.borrowDialog() : null;
|
||||
let operation =
|
||||
new ShellMountOperation.ShellMountOperation(volume,
|
||||
{ existingDialog: existingDialog });
|
||||
@@ -227,8 +229,11 @@ var AutomountManager = new Lang.Class({
|
||||
},
|
||||
|
||||
_closeOperation(volume) {
|
||||
if (volume._operation)
|
||||
volume._operation.close();
|
||||
let operation = this._activeOperations.get(volume);
|
||||
if (!operation)
|
||||
return;
|
||||
operation.close();
|
||||
this._activeOperations.delete(volume);
|
||||
},
|
||||
|
||||
_allowAutorun(volume) {
|
||||
|
@@ -8,6 +8,8 @@ const GnomeSession = imports.misc.gnomeSession;
|
||||
const Main = imports.ui.main;
|
||||
const MessageTray = imports.ui.messageTray;
|
||||
|
||||
const { loadInterfaceXML } = imports.misc.fileUtils;
|
||||
|
||||
// GSettings keys
|
||||
const SETTINGS_SCHEMA = 'org.gnome.desktop.media-handling';
|
||||
const SETTING_DISABLE_AUTORUN = 'autorun-never';
|
||||
@@ -74,16 +76,7 @@ function startAppForMount(app, mount) {
|
||||
|
||||
/******************************************/
|
||||
|
||||
const HotplugSnifferIface = `
|
||||
<node>
|
||||
<interface name="org.gnome.Shell.HotplugSniffer">
|
||||
<method name="SniffURI">
|
||||
<arg type="s" direction="in" />
|
||||
<arg type="as" direction="out" />
|
||||
</method>
|
||||
</interface>
|
||||
</node>`;
|
||||
|
||||
const HotplugSnifferIface = loadInterfaceXML('org.gnome.Shell.HotplugSniffer');
|
||||
const HotplugSnifferProxy = Gio.DBusProxy.makeProxyWrapper(HotplugSnifferIface);
|
||||
function HotplugSniffer() {
|
||||
return new HotplugSnifferProxy(Gio.DBus.session,
|
||||
|
@@ -198,6 +198,12 @@ var NetworkSecretDialog = new Lang.Class({
|
||||
|
||||
_getWirelessSecrets(secrets, wirelessSetting) {
|
||||
let wirelessSecuritySetting = this._connection.get_setting_wireless_security();
|
||||
|
||||
if (this._settingName == '802-1x') {
|
||||
this._get8021xSecrets(secrets);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (wirelessSecuritySetting.key_mgmt) {
|
||||
// First the easy ones
|
||||
case 'wpa-none':
|
||||
@@ -231,6 +237,20 @@ var NetworkSecretDialog = new Lang.Class({
|
||||
let ieee8021xSetting = this._connection.get_setting_802_1x();
|
||||
let phase2method;
|
||||
|
||||
/* If hints were given we know exactly what we need to ask */
|
||||
if (this._settingName == "802-1x" && this._hints.length) {
|
||||
if (this._hints.includes('identity'))
|
||||
secrets.push({ label: _("Username: "), key: 'identity',
|
||||
value: ieee8021xSetting.identity || '', password: false });
|
||||
if (this._hints.includes('password'))
|
||||
secrets.push({ label: _("Password: "), key: 'password',
|
||||
value: ieee8021xSetting.password || '', password: true });
|
||||
if (this._hints.includes('private-key-password'))
|
||||
secrets.push({ label: _("Private key password: "), key: 'private-key-password',
|
||||
value: ieee8021xSetting.private_key_password || '', password: true });
|
||||
return;
|
||||
}
|
||||
|
||||
switch (ieee8021xSetting.get_eap_method(0)) {
|
||||
case 'md5':
|
||||
case 'leap':
|
||||
|
@@ -52,6 +52,8 @@ var DashItemContainer = new Lang.Class({
|
||||
this.animatingOut = false;
|
||||
|
||||
this.connect('destroy', () => {
|
||||
if (this.child != null)
|
||||
this.child.destroy();
|
||||
this.label.destroy();
|
||||
});
|
||||
},
|
||||
|
@@ -184,7 +184,7 @@ var MessageDialogContent = new Lang.Class({
|
||||
this[`_${prop}`].add_style_class_name(`message-dialog-${prop}`);
|
||||
});
|
||||
|
||||
let textProps = { ellipsize_mode: Pango.EllipsizeMode.NONE,
|
||||
let textProps = { ellipsize: Pango.EllipsizeMode.NONE,
|
||||
line_wrap: true };
|
||||
Object.assign(this._subtitle.clutter_text, textProps);
|
||||
Object.assign(this._body.clutter_text, textProps);
|
||||
|
10
js/ui/dnd.js
10
js/ui/dnd.js
@@ -132,6 +132,16 @@ var _Draggable = new Lang.Class({
|
||||
},
|
||||
|
||||
_onTouchEvent(actor, event) {
|
||||
// We only handle touch events here on wayland. On X11
|
||||
// we do get emulated pointer events, which already works
|
||||
// for single-touch cases. Besides, the X11 passive touch grab
|
||||
// set up by Mutter will make us see first the touch events
|
||||
// and later the pointer events, so it will look like two
|
||||
// unrelated series of events, we want to avoid double handling
|
||||
// in these cases.
|
||||
if (!Meta.is_wayland_compositor())
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
|
||||
if (event.type() != Clutter.EventType.TOUCH_BEGIN ||
|
||||
!global.display.is_pointer_emulating_sequence(event.get_event_sequence()))
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
|
@@ -36,6 +36,8 @@ const ModalDialog = imports.ui.modalDialog;
|
||||
const Tweener = imports.ui.tweener;
|
||||
const UserWidget = imports.ui.userWidget;
|
||||
|
||||
const { loadInterfaceXML } = imports.misc.fileUtils;
|
||||
|
||||
let _endSessionDialog = null;
|
||||
|
||||
const _ITEM_ICON_SIZE = 48;
|
||||
@@ -43,23 +45,7 @@ const _DIALOG_ICON_SIZE = 48;
|
||||
|
||||
var GSM_SESSION_MANAGER_LOGOUT_FORCE = 2;
|
||||
|
||||
const EndSessionDialogIface = `
|
||||
<node>
|
||||
<interface name="org.gnome.SessionManager.EndSessionDialog">
|
||||
<method name="Open">
|
||||
<arg type="u" direction="in" />
|
||||
<arg type="u" direction="in" />
|
||||
<arg type="u" direction="in" />
|
||||
<arg type="ao" direction="in" />
|
||||
</method>
|
||||
<method name="Close" />
|
||||
<signal name="ConfirmedLogout" />
|
||||
<signal name="ConfirmedReboot" />
|
||||
<signal name="ConfirmedShutdown" />
|
||||
<signal name="Canceled" />
|
||||
<signal name="Closed" />
|
||||
</interface>
|
||||
</node>`;
|
||||
const EndSessionDialogIface = loadInterfaceXML('org.gnome.SessionManager.EndSessionDialog');
|
||||
|
||||
const logoutDialogContent = {
|
||||
subjectWithUser: C_("title", "Log Out %s"),
|
||||
@@ -169,43 +155,13 @@ const DialogContent = {
|
||||
|
||||
var MAX_USERS_IN_SESSION_DIALOG = 5;
|
||||
|
||||
const LogindSessionIface = `
|
||||
<node>
|
||||
<interface name="org.freedesktop.login1.Session">
|
||||
<property name="Id" type="s" access="read"/>
|
||||
<property name="Remote" type="b" access="read"/>
|
||||
<property name="Class" type="s" access="read"/>
|
||||
<property name="Type" type="s" access="read"/>
|
||||
<property name="State" type="s" access="read"/>
|
||||
</interface>
|
||||
</node>`;
|
||||
|
||||
const LogindSessionIface = loadInterfaceXML('org.freedesktop.login1.Session');
|
||||
const LogindSession = Gio.DBusProxy.makeProxyWrapper(LogindSessionIface);
|
||||
|
||||
const PkOfflineIface = `
|
||||
<node>
|
||||
<interface name="org.freedesktop.PackageKit.Offline">
|
||||
<property name="UpdatePrepared" type="b" access="read"/>
|
||||
<property name="UpdateTriggered" type="b" access="read"/>
|
||||
<property name="UpgradePrepared" type="b" access="read"/>
|
||||
<property name="UpgradeTriggered" type="b" access="read"/>
|
||||
<property name="PreparedUpgrade" type="a{sv}" access="read"/>
|
||||
<method name="Trigger">
|
||||
<arg type="s" name="action" direction="in"/>
|
||||
</method>
|
||||
<method name="Cancel"/>
|
||||
</interface>
|
||||
</node>`;
|
||||
|
||||
const PkOfflineIface = loadInterfaceXML('org.freedesktop.PackageKit.Offline');
|
||||
const PkOfflineProxy = Gio.DBusProxy.makeProxyWrapper(PkOfflineIface);
|
||||
|
||||
const UPowerIface = `
|
||||
<node>
|
||||
<interface name="org.freedesktop.UPower">
|
||||
<property name="OnBattery" type="b" access="read"/>
|
||||
</interface>
|
||||
</node>`;
|
||||
|
||||
const UPowerIface = loadInterfaceXML('org.freedesktop.UPower');
|
||||
const UPowerProxy = Gio.DBusProxy.makeProxyWrapper(UPowerIface);
|
||||
|
||||
function findAppFromInhibitor(inhibitor) {
|
||||
@@ -771,7 +727,7 @@ var EndSessionDialog = new Lang.Class({
|
||||
let updatePrepared = this._pkOfflineProxy.UpdatePrepared;
|
||||
let updatesAllowed = this._updatesPermission && this._updatesPermission.allowed;
|
||||
|
||||
_setCheckBoxLabel(this._checkBox, dialogContent.checkBoxText);
|
||||
_setCheckBoxLabel(this._checkBox, dialogContent.checkBoxText || '');
|
||||
this._checkBox.actor.visible = (dialogContent.checkBoxText && updatePrepared && updatesAllowed);
|
||||
this._checkBox.actor.checked = (updatePrepared && updateTriggered);
|
||||
|
||||
|
@@ -418,6 +418,11 @@ var IconGrid = new Lang.Class({
|
||||
},
|
||||
|
||||
_animationDone() {
|
||||
this._clonesAnimating.forEach(clone => {
|
||||
clone.source.reactive = true;
|
||||
clone.source.opacity = 255;
|
||||
clone.destroy();
|
||||
});
|
||||
this._clonesAnimating = [];
|
||||
this.emit('animation-done');
|
||||
},
|
||||
@@ -443,7 +448,6 @@ var IconGrid = new Lang.Class({
|
||||
|
||||
for (let index = 0; index < actors.length; index++) {
|
||||
let actor = actors[index];
|
||||
actor.reactive = false;
|
||||
actor.set_scale(0, 0);
|
||||
actor.set_pivot_point(0.5, 0.5);
|
||||
|
||||
@@ -465,7 +469,6 @@ var IconGrid = new Lang.Class({
|
||||
onComplete: () => {
|
||||
if (isLastItem)
|
||||
this._animationDone();
|
||||
actor.reactive = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -538,10 +541,6 @@ var IconGrid = new Lang.Class({
|
||||
onComplete: () => {
|
||||
if (isLastItem)
|
||||
this._animationDone();
|
||||
|
||||
actor.opacity = 255;
|
||||
actor.reactive = true;
|
||||
actorClone.destroy();
|
||||
}};
|
||||
fadeParams = { time: ANIMATION_FADE_IN_TIME_FOR_ITEM,
|
||||
transition: 'easeInOutQuad',
|
||||
@@ -562,12 +561,8 @@ var IconGrid = new Lang.Class({
|
||||
scale_x: scaleX,
|
||||
scale_y: scaleY,
|
||||
onComplete: () => {
|
||||
if (isLastItem) {
|
||||
if (isLastItem)
|
||||
this._animationDone();
|
||||
this._restoreItemsOpacity();
|
||||
}
|
||||
actor.reactive = true;
|
||||
actorClone.destroy();
|
||||
}};
|
||||
fadeParams = { time: ANIMATION_FADE_IN_TIME_FOR_ITEM,
|
||||
transition: 'easeInOutQuad',
|
||||
@@ -581,12 +576,6 @@ var IconGrid = new Lang.Class({
|
||||
}
|
||||
},
|
||||
|
||||
_restoreItemsOpacity() {
|
||||
for (let index = 0; index < this._items.length; index++) {
|
||||
this._items[index].actor.opacity = 255;
|
||||
}
|
||||
},
|
||||
|
||||
_getAllocatedChildSizeAndSpacing(child) {
|
||||
let [,, natWidth, natHeight] = child.get_preferred_size();
|
||||
let width = Math.min(this._getHItemSize(), natWidth);
|
||||
|
@@ -492,6 +492,7 @@ var FocusTracker = new Lang.Class({
|
||||
|
||||
_init() {
|
||||
this._currentWindow = null;
|
||||
this._rect = null;
|
||||
|
||||
global.display.connect('notify::focus-window', () => {
|
||||
this._setCurrentWindow(global.display.focus_window);
|
||||
@@ -518,6 +519,12 @@ var FocusTracker = new Lang.Class({
|
||||
|
||||
this._setCurrentRect(rect);
|
||||
});
|
||||
this._ibusManager.connect('focus-in', () => {
|
||||
this.emit('focus-changed', true);
|
||||
});
|
||||
this._ibusManager.connect('focus-out', () => {
|
||||
this.emit('focus-changed', false);
|
||||
});
|
||||
},
|
||||
|
||||
get currentWindow() {
|
||||
@@ -535,6 +542,13 @@ var FocusTracker = new Lang.Class({
|
||||
rect.y -= frameRect.y;
|
||||
}
|
||||
|
||||
if (this._rect &&
|
||||
this._rect.x == rect.x &&
|
||||
this._rect.y == rect.y &&
|
||||
this._rect.width == rect.width &&
|
||||
this._rect.height == rect.height)
|
||||
return;
|
||||
|
||||
this._rect = rect;
|
||||
this.emit('position-changed');
|
||||
},
|
||||
@@ -582,6 +596,16 @@ var Keyboard = new Lang.Class({
|
||||
this._animFocusedWindow = null;
|
||||
this._oskFocusWindow = null;
|
||||
});
|
||||
this._focusTracker.connect('focus-changed', (tracker, focused) => {
|
||||
// Valid only for X11
|
||||
if (Meta.is_wayland_compositor())
|
||||
return;
|
||||
|
||||
if (focused)
|
||||
this.show(Main.layoutManager.focusIndex);
|
||||
else
|
||||
this.hide();
|
||||
});
|
||||
|
||||
Meta.get_backend().connect('last-device-changed',
|
||||
(backend, deviceId) => {
|
||||
@@ -708,7 +732,6 @@ var Keyboard = new Lang.Class({
|
||||
if (this._focusInExtendedKeys || extendedKeysWereFocused)
|
||||
return;
|
||||
|
||||
let time = global.get_current_time();
|
||||
if (!(focus instanceof Clutter.Text)) {
|
||||
this.hide();
|
||||
return;
|
||||
|
@@ -1059,7 +1059,8 @@ var LayoutManager = new Lang.Class({
|
||||
}
|
||||
}
|
||||
|
||||
global.set_stage_input_region(rects);
|
||||
if (!Meta.is_wayland_compositor())
|
||||
global.set_stage_input_region(rects);
|
||||
this._isPopupWindowVisible = isPopupMenuVisible;
|
||||
|
||||
let workspaceManager = global.workspace_manager;
|
||||
|
@@ -4,96 +4,18 @@ const Gio = imports.gi.Gio;
|
||||
const Lang = imports.lang;
|
||||
const Main = imports.ui.main;
|
||||
|
||||
const { loadInterfaceXML } = imports.misc.fileUtils;
|
||||
|
||||
const MAG_SERVICE_PATH = '/org/gnome/Magnifier';
|
||||
const ZOOM_SERVICE_PATH = '/org/gnome/Magnifier/ZoomRegion';
|
||||
|
||||
// Subset of gnome-mag's Magnifier dbus interface -- to be expanded. See:
|
||||
// http://git.gnome.org/browse/gnome-mag/tree/xml/...Magnifier.xml
|
||||
const MagnifierIface = `
|
||||
<node>
|
||||
<interface name="org.gnome.Magnifier">
|
||||
<method name="setActive">
|
||||
<arg type="b" direction="in" />
|
||||
</method>
|
||||
<method name="isActive">
|
||||
<arg type="b" direction="out" />
|
||||
</method>
|
||||
<method name="showCursor" />
|
||||
<method name="hideCursor" />
|
||||
<method name="createZoomRegion">
|
||||
<arg type="d" direction="in" />
|
||||
<arg type="d" direction="in" />
|
||||
<arg type="ai" direction="in" />
|
||||
<arg type="ai" direction="in" />
|
||||
<arg type="o" direction="out" />
|
||||
</method>
|
||||
<method name="addZoomRegion">
|
||||
<arg type="o" direction="in" />
|
||||
<arg type="b" direction="out" />
|
||||
</method>
|
||||
<method name="getZoomRegions">
|
||||
<arg type="ao" direction="out" />
|
||||
</method>
|
||||
<method name="clearAllZoomRegions" />
|
||||
<method name="fullScreenCapable">
|
||||
<arg type="b" direction="out" />
|
||||
</method>
|
||||
<method name="setCrosswireSize">
|
||||
<arg type="i" direction="in" />
|
||||
</method>
|
||||
<method name="getCrosswireSize">
|
||||
<arg type="i" direction="out" />
|
||||
</method>
|
||||
<method name="setCrosswireLength">
|
||||
<arg type="i" direction="in" />
|
||||
</method>
|
||||
<method name="getCrosswireLength">
|
||||
<arg type="i" direction="out" />
|
||||
</method>
|
||||
<method name="setCrosswireClip">
|
||||
<arg type="b" direction="in" />
|
||||
</method>
|
||||
<method name="getCrosswireClip">
|
||||
<arg type="b" direction="out" />
|
||||
</method>
|
||||
<method name="setCrosswireColor">
|
||||
<arg type="u" direction="in" />
|
||||
</method>
|
||||
<method name="getCrosswireColor">
|
||||
<arg type="u" direction="out" />
|
||||
</method>
|
||||
</interface>
|
||||
</node>`;
|
||||
const MagnifierIface = loadInterfaceXML('org.gnome.Magnifier');
|
||||
|
||||
// Subset of gnome-mag's ZoomRegion dbus interface -- to be expanded. See:
|
||||
// http://git.gnome.org/browse/gnome-mag/tree/xml/...ZoomRegion.xml
|
||||
const ZoomRegionIface = `
|
||||
<node>
|
||||
<interface name="org.gnome.Magnifier.ZoomRegion">
|
||||
<method name="setMagFactor">
|
||||
<arg type="d" direction="in" />
|
||||
<arg type="d" direction="in" />
|
||||
</method>
|
||||
<method name="getMagFactor">
|
||||
<arg type="d" direction="out" />
|
||||
<arg type="d" direction="out" />
|
||||
</method>
|
||||
<method name="setRoi">
|
||||
<arg type="ai" direction="in" />
|
||||
</method>
|
||||
<method name="getRoi">
|
||||
<arg type="ai" direction="out" />
|
||||
</method>
|
||||
<method name="shiftContentsTo">
|
||||
<arg type="i" direction="in" />
|
||||
<arg type="i" direction="in" />
|
||||
<arg type="b" direction="out" />
|
||||
</method>
|
||||
<method name="moveResize">
|
||||
<arg type="ai" direction="in" />
|
||||
</method>
|
||||
</interface>
|
||||
</node>`;
|
||||
const ZoomRegionIface = loadInterfaceXML('org.gnome.Magnifier.ZoomRegion');
|
||||
|
||||
// For making unique ZoomRegion DBus proxy object paths of the form:
|
||||
// '/org/gnome/Magnifier/ZoomRegion/zoomer0',
|
||||
|
@@ -1322,6 +1322,7 @@ var MessageTray = new Lang.Class({
|
||||
this._bannerBin.y = -this._banner.actor.height;
|
||||
this.actor.show();
|
||||
|
||||
Meta.disable_unredirect_for_display(global.display);
|
||||
this._updateShowingNotification();
|
||||
|
||||
let [x, y, mods] = global.get_pointer();
|
||||
@@ -1459,6 +1460,7 @@ var MessageTray = new Lang.Class({
|
||||
|
||||
this._pointerInNotification = false;
|
||||
this._notificationRemoved = false;
|
||||
Meta.enable_unredirect_for_display(global.display);
|
||||
|
||||
this._banner.actor.destroy();
|
||||
this._banner = null;
|
||||
|
@@ -8,44 +8,15 @@ const Calendar = imports.ui.calendar;
|
||||
const Main = imports.ui.main;
|
||||
const MessageList = imports.ui.messageList;
|
||||
|
||||
const DBusIface = `
|
||||
<node>
|
||||
<interface name="org.freedesktop.DBus">
|
||||
<method name="ListNames">
|
||||
<arg type="as" direction="out" name="names" />
|
||||
</method>
|
||||
<signal name="NameOwnerChanged">
|
||||
<arg type="s" direction="out" name="name" />
|
||||
<arg type="s" direction="out" name="oldOwner" />
|
||||
<arg type="s" direction="out" name="newOwner" />
|
||||
</signal>
|
||||
</interface>
|
||||
</node>`;
|
||||
const { loadInterfaceXML } = imports.misc.fileUtils;
|
||||
|
||||
const DBusIface = loadInterfaceXML('org.freedesktop.DBus');
|
||||
const DBusProxy = Gio.DBusProxy.makeProxyWrapper(DBusIface);
|
||||
|
||||
const MprisIface = `
|
||||
<node>
|
||||
<interface name="org.mpris.MediaPlayer2">
|
||||
<method name="Raise" />
|
||||
<property name="CanRaise" type="b" access="read" />
|
||||
<property name="DesktopEntry" type="s" access="read" />
|
||||
</interface>
|
||||
</node>`;
|
||||
const MprisIface = loadInterfaceXML('org.mpris.MediaPlayer2');
|
||||
const MprisProxy = Gio.DBusProxy.makeProxyWrapper(MprisIface);
|
||||
|
||||
const MprisPlayerIface = `
|
||||
<node>
|
||||
<interface name="org.mpris.MediaPlayer2.Player">
|
||||
<method name="PlayPause" />
|
||||
<method name="Next" />
|
||||
<method name="Previous" />
|
||||
<property name="CanGoNext" type="b" access="read" />
|
||||
<property name="CanGoPrevious" type="b" access="read" />
|
||||
<property name="CanPlay" type="b" access="read" />
|
||||
<property name="Metadata" type="a{sv}" access="read" />
|
||||
<property name="PlaybackStatus" type="s" access="read" />
|
||||
</interface>
|
||||
</node>`;
|
||||
const MprisPlayerIface = loadInterfaceXML('org.mpris.MediaPlayer2.Player');
|
||||
const MprisPlayerProxy = Gio.DBusProxy.makeProxyWrapper(MprisPlayerIface);
|
||||
|
||||
const MPRIS_PLAYER_PREFIX = 'org.mpris.MediaPlayer2.';
|
||||
|
@@ -16,58 +16,16 @@ const MessageTray = imports.ui.messageTray;
|
||||
const Params = imports.misc.params;
|
||||
const Util = imports.misc.util;
|
||||
|
||||
// Should really be defined in Gio.js
|
||||
const BusIface = `
|
||||
<node>
|
||||
<interface name="org.freedesktop.DBus">
|
||||
<method name="GetConnectionUnixProcessID">
|
||||
<arg type="s" direction="in" />
|
||||
<arg type="u" direction="out" />
|
||||
</method>
|
||||
</interface>
|
||||
</node>`;
|
||||
const { loadInterfaceXML } = imports.misc.fileUtils;
|
||||
|
||||
// Should really be defined in Gio.js
|
||||
const BusIface = loadInterfaceXML('org.freedesktop.DBus');
|
||||
var BusProxy = Gio.DBusProxy.makeProxyWrapper(BusIface);
|
||||
function Bus() {
|
||||
return new BusProxy(Gio.DBus.session, 'org.freedesktop.DBus', '/org/freedesktop/DBus');
|
||||
}
|
||||
|
||||
const FdoNotificationsIface = `
|
||||
<node>
|
||||
<interface name="org.freedesktop.Notifications">
|
||||
<method name="Notify">
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="u" direction="in"/>
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="as" direction="in"/>
|
||||
<arg type="a{sv}" direction="in"/>
|
||||
<arg type="i" direction="in"/>
|
||||
<arg type="u" direction="out"/>
|
||||
</method>
|
||||
<method name="CloseNotification">
|
||||
<arg type="u" direction="in"/>
|
||||
</method>
|
||||
<method name="GetCapabilities">
|
||||
<arg type="as" direction="out"/>
|
||||
</method>
|
||||
<method name="GetServerInformation">
|
||||
<arg type="s" direction="out"/>
|
||||
<arg type="s" direction="out"/>
|
||||
<arg type="s" direction="out"/>
|
||||
<arg type="s" direction="out"/>
|
||||
</method>
|
||||
<signal name="NotificationClosed">
|
||||
<arg type="u"/>
|
||||
<arg type="u"/>
|
||||
</signal>
|
||||
<signal name="ActionInvoked">
|
||||
<arg type="u"/>
|
||||
<arg type="s"/>
|
||||
</signal>
|
||||
</interface>
|
||||
</node>`;
|
||||
const FdoNotificationsIface = loadInterfaceXML('org.freedesktop.Notifications');
|
||||
|
||||
var NotificationClosedReason = {
|
||||
EXPIRED: 1,
|
||||
@@ -119,10 +77,8 @@ var FdoNotificationDaemon = new Lang.Class({
|
||||
bitsPerSample, nChannels, data] = hints['image-data'];
|
||||
return Shell.util_create_pixbuf_from_data(data, GdkPixbuf.Colorspace.RGB, hasAlpha,
|
||||
bitsPerSample, width, height, rowStride);
|
||||
} else if (hints['image-path']) {
|
||||
return new Gio.FileIcon({ file: Gio.File.new_for_path(hints['image-path']) });
|
||||
}
|
||||
return null;
|
||||
return this._iconForNotificationData(hints['image-path']);
|
||||
},
|
||||
|
||||
_fallbackIconForNotificationData(hints) {
|
||||
@@ -656,19 +612,7 @@ var GtkNotificationDaemonNotification = new Lang.Class({
|
||||
},
|
||||
});
|
||||
|
||||
const FdoApplicationIface = `
|
||||
<node>
|
||||
<interface name="org.freedesktop.Application">
|
||||
<method name="ActivateAction">
|
||||
<arg type="s" direction="in" />
|
||||
<arg type="av" direction="in" />
|
||||
<arg type="a{sv}" direction="in" />
|
||||
</method>
|
||||
<method name="Activate">
|
||||
<arg type="a{sv}" direction="in" />
|
||||
</method>
|
||||
</interface>
|
||||
</node>`;
|
||||
const FdoApplicationIface = loadInterfaceXML('org.freedesktop.Application');
|
||||
const FdoApplicationProxy = Gio.DBusProxy.makeProxyWrapper(FdoApplicationIface);
|
||||
|
||||
function objectPathFromAppId(appId) {
|
||||
@@ -777,20 +721,7 @@ var GtkNotificationDaemonAppSource = new Lang.Class({
|
||||
},
|
||||
});
|
||||
|
||||
const GtkNotificationsIface = `
|
||||
<node>
|
||||
<interface name="org.gtk.Notifications">
|
||||
<method name="AddNotification">
|
||||
<arg type="s" direction="in" />
|
||||
<arg type="s" direction="in" />
|
||||
<arg type="a{sv}" direction="in" />
|
||||
</method>
|
||||
<method name="RemoveNotification">
|
||||
<arg type="s" direction="in" />
|
||||
<arg type="s" direction="in" />
|
||||
</method>
|
||||
</interface>
|
||||
</node>`;
|
||||
const GtkNotificationsIface = loadInterfaceXML('org.gtk.Notifications');
|
||||
|
||||
var GtkNotificationDaemon = new Lang.Class({
|
||||
Name: 'GtkNotificationDaemon',
|
||||
|
@@ -118,15 +118,30 @@ var OsdWindow = new Lang.Class({
|
||||
this._hideTimeoutId = 0;
|
||||
this._reset();
|
||||
|
||||
Main.layoutManager.connect('monitors-changed',
|
||||
this._relayout.bind(this));
|
||||
this.actor.connect('destroy', this._onDestroy.bind(this));
|
||||
|
||||
this._monitorsChangedId =
|
||||
Main.layoutManager.connect('monitors-changed',
|
||||
this._relayout.bind(this));
|
||||
let themeContext = St.ThemeContext.get_for_stage(global.stage);
|
||||
themeContext.connect('notify::scale-factor',
|
||||
this._relayout.bind(this));
|
||||
this._scaleChangedId =
|
||||
themeContext.connect('notify::scale-factor',
|
||||
this._relayout.bind(this));
|
||||
this._relayout();
|
||||
Main.uiGroup.add_child(this.actor);
|
||||
},
|
||||
|
||||
_onDestroy() {
|
||||
if (this._monitorsChangedId)
|
||||
Main.layoutManager.disconnect(this._monitorsChangedId);
|
||||
this._monitorsChangedId = 0;
|
||||
|
||||
let themeContext = St.ThemeContext.get_for_stage(global.stage);
|
||||
if (this._scaleChangedId)
|
||||
themeContext.disconnect(this._scaleChangedId);
|
||||
this._scaleChangedId = 0;
|
||||
},
|
||||
|
||||
setIcon(icon) {
|
||||
this._icon.gicon = icon;
|
||||
},
|
||||
@@ -204,8 +219,8 @@ var OsdWindow = new Lang.Class({
|
||||
_reset() {
|
||||
this.actor.hide();
|
||||
this.setLabel(null);
|
||||
this.setLevel(null);
|
||||
this.setMaxLevel(null);
|
||||
this.setLevel(null);
|
||||
},
|
||||
|
||||
_relayout() {
|
||||
@@ -253,8 +268,8 @@ var OsdWindowManager = new Lang.Class({
|
||||
_showOsdWindow(monitorIndex, icon, label, level, maxLevel) {
|
||||
this._osdWindows[monitorIndex].setIcon(icon);
|
||||
this._osdWindows[monitorIndex].setLabel(label);
|
||||
this._osdWindows[monitorIndex].setLevel(level);
|
||||
this._osdWindows[monitorIndex].setMaxLevel(maxLevel);
|
||||
this._osdWindows[monitorIndex].setLevel(level);
|
||||
this._osdWindows[monitorIndex].show();
|
||||
},
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user