| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
This prevents logout to hang if one of the g-s-d processes refuses to
quit. That should never happen, but it does not hurt to configure
systemd to kill the process already after 5 seconds rather than waiting
up to 1 minute 30 seconds.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using the facility added in the previous commit, we can add systemd user
service files for all plugins and know when they have started up.
This is roughly based on the work previously done by Iain Lane
<iain@orangesquash.org.uk> and Bastien Nocera hadess@hadess.net>.
For each g-s-d process we have a service and a target file. This
separation only exists to contain dependency failures which would cause
an OnFailure action to trigger and is needed so that we can use
OnFailure for the gnome-session fail-whale
(gnome-session-failed.target).
In general, the approach taken is that we start g-s-d processes after
gnome-session-initialized.target and before gnome-session.target.
We want to be able to selectively start the services only when one or
more dependencies are there, or even mask out services under some
conditions. The approach taken is the following:
* To mask a service, use a Conflicts entry. This is e.g. used to not
start certain services in GDM using
Conflicts=gnome-session@gnome-login.target
* To depend on multiple targets to be up and running to start, we set
each of these targets in Requisite/After/PartOf/WantedBy. We always
do this for gnome-session-initialized.target but this method is
extensible to any number of further targets (e.g. bluetooth.target)
|
|
|
|
|
|
| |
This is required for migrating keybindings. In some cases, the old
default is now in a separate settings key, so we want to be able to
reset the setting even if the user had set it explicitly.
|
|
|
|
| |
This will be required to migrate user settings of keybindings.
|
| |
|
|
|
|
|
|
| |
Display mapping is user-settable on opaque tablets, thus it makes sense to
migrate this setting to the new one. For other tablets, heuristics should
apply, which is the behavior expected from the unset key.
|
|
|
|
|
| |
For the remaining things, we can do with poking GdkDevices. This
finally drops the last usage of the GsdDeviceManager abstraction.
|
|
|
|
| |
This functionality is being taken over by mutter.
|
|
|
|
|
| |
Not all plugins that use GDK mandate X11. Leave the allowed GDK
backend (if any) as an individual plugin decision.
|
|
|
|
|
| |
- turns libcommon to a static uninstalled library
- inject RPATH for libgsd in every installed plugin/executable
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Every plugin generate an autostart desktop file, except `common`
and `dummy` that are special cases.
This desktop file generation is duplicated among the different
plugin's build files.
This code has been moved to the build file in the `plugins`
directory, avoiding any code duplication.
The downside of this is that meson is not able to generate files
in a different directory, so all the files will be generated in
the `plugin` directory, outside of the each plugin's directory.
This is something that it's worked on in a different feature and
it might be merged in the future.
See https://github.com/mesonbuild/meson/pull/2617
https://bugzilla.gnome.org/show_bug.cgi?id=793087
|
|
|
|
|
|
|
| |
To avoid the burden of maintaining multiple build systems, this
patch removes autotools support.
https://bugzilla.gnome.org/show_bug.cgi?id=793087
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Recent versions of Gettext are able to translate several formats
that are used in GNOME applications. This patch migrates from
Intltool to Gettext by using meson's i18n features.
Explicit encoding has also been added to the gschema files due to
an issue in gettext[0] with default encoding in XML files.
https://bugzilla.gnome.org/show_bug.cgi?id=793087
[0] https://savannah.gnu.org/bugs/?52932
|
|
|
|
|
|
|
|
| |
meson is a build system focused on speed an ease of use, which
helps speeding up the software development. This patch adds meson
support along autotools.
https://bugzilla.gnome.org/show_bug.cgi?id=793087
|
|
|
|
|
|
| |
Signed-off-by: Philip Withnall <withnall@endlessm.com>
https://bugzilla.gnome.org/show_bug.cgi?id=788932
|
|
|
|
|
|
|
|
|
|
|
| |
The GsdDeviceManager::device-added callback would observe both
display-attached tablets and touchscreens, but only the former were
added in the initial loop.
This made touchscreens not properly mapped to outputs, as touchscreens
are usually built into the device.
https://bugzilla.gnome.org/show_bug.cgi?id=787884
|
|
|
|
|
|
|
|
| |
The wacom module uses GDK resources indirectly through GsdDeviceMapper,
which turn out NULL when this object tries to attach itself to a
GdkScreen.
https://bugzilla.gnome.org/show_bug.cgi?id=787884
|
|
|
|
|
|
|
|
|
|
| |
GsdDeviceMapper's only remaining role is to map wacom
tablets/touchscreens to outputs which logically belongs in the wacom
plugin and is already being done there for some device types so let's
move the other device type that was being handled here to that plugin
too.
https://bugzilla.gnome.org/show_bug.cgi?id=781907
|
|
|
|
|
|
| |
We don't use it.
https://bugzilla.gnome.org/show_bug.cgi?id=780555
|
|
|
|
|
|
|
| |
They're no longer needed. Also remove the notify_init() call since the
wacom module no longer uses libnotify.
https://bugzilla.gnome.org/show_bug.cgi?id=773958
|
| |
|
|
|
|
|
|
|
| |
Unfortunately we can't properly lookup the schemas for styli and
button paths (that is, without a stylus or button path to construct
settings paths from). However, support the tablet-wide settings on
device hotplug.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Settings for tablet devices are now managed by mutter, based
on the gsettings-desktop-schemas peripherals schemas.
This leaves the wacom plugin just in charge of:
- Determining which output do display-attached tablets get.
- Synchronizing LEDs/OLEDs to the right state, this will be triggered
externally through the new SetGroupModeLED/SetOLEDLabels DBus methods.
Everything else will be taken care of by mutter, both on Wayland and
X11.
https://bugzilla.gnome.org/show_bug.cgi?id=773958
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=772370
|
|
|
|
|
|
|
| |
The plugin system is not used any more, and wasn't dist'ed, which broke
building from tarballs.
https://bugzilla.gnome.org/show_bug.cgi?id=772370
|
|
|
|
|
|
|
|
|
| |
And simplify library requirements for each helper. This should allow
us to trim the number of dependencies for each one of the helpers. This
also moves the libnotify initialisation directly into the plugins that
need it.
https://bugzilla.gnome.org/show_bug.cgi?id=772370
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=772370
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=772370
|
|
|
|
|
|
| |
So that the plugins can be started independently.
https://bugzilla.gnome.org/show_bug.cgi?id=772370
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=772370
|
|
|
|
|
|
|
| |
Those names will be the names of the binaries we'll run independently
soon.
https://bugzilla.gnome.org/show_bug.cgi?id=772370
|
|
|
|
|
|
|
|
|
|
|
|
| |
We get called for every removed GDK device, so check whether it's of
interest early, instead after throwing a bunch of warnings.
gsd-wacom[1884]: g_signal_handlers_disconnect_matched: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
gsd-wacom[1884]: gsd_wacom_device_get_device_type: assertion 'GSD_IS_WACOM_DEVICE (device)' failed
gsd-wacom[1884]: gsd_wacom_device_get_settings: assertion 'GSD_IS_WACOM_DEVICE (device)' failed
gsd-wacom[1884]: invalid (NULL) pointer instance
https://bugzilla.gnome.org/show_bug.cgi?id=772581
|
|
|
|
|
| |
Several small leaks exist were found and fixed in the wacom plugin after
running valgrind.
|
|
|
|
|
|
|
|
|
|
| |
Most of the wacom plugin code protects X11 calls with gdk_error_trap_push/pop
and prints a warning if something fails. There were two calls that were not
protected, however, and one use of g_error instead of g_warning that would
cause the g-s-d process to die if e.g. the tablet disappears while g-s-d is
trying to work on it.
https://bugzilla.gnome.org/show_bug.cgi?id=765996
|
|
|
|
|
|
|
| |
Calls to open_device can return null, don't try to configure the device
in those cases, it only leads to segfaults
https://bugzilla.gnome.org/show_bug.cgi?id=766726
|
|
|
|
|
|
|
| |
And remove extra argument to the formatting function that we wouldn't
have been able to catch before.
https://bugzilla.gnome.org/show_bug.cgi?id=764729
|
|
|
|
|
|
|
|
|
|
|
|
| |
We don't yet support wacom devices under wayland and GsdWacomDevice
uses X APIs unconditionally which makes us crash under wayland.
Instead, let's return early and leave the GsdWacomDevice in an invalid
state which means that we just present the default UI for "no wacom
devices detected".
Backported from commit 888e40eae8f26823f2e9bf0c37c45eafad467d07 in
gnome-control-center.
|
| |
|
|
|
|
| |
So that we can disable the plugin and run the test binary instead.
|
|
|
|
|
| |
We fetch the current pad device from the button-mapping OSD window through
g_object_get(), which adds new references to GObjects.
|
|
|
|
|
| |
It's not removed during finalization, so it's kept lingering, and called
when the device is actually removed/destroyed.
|
|
|
|
| |
We're doing this call twice. This is safe, but unneeded.
|
|
|
|
|
|
|
| |
Otherwise the mapping may come out wrong if during the initialization
paths it first applies keep-aspect, and later maps to a single monitor.
https://bugzilla.gnome.org/show_bug.cgi?id=753680
|
|
|
|
|
|
|
|
|
|
|
|
| |
When devices are plugged, we may end up emitting
GsdDeviceManager::device-added at a time when not all GdkDevices have been
attached to the GsdDevice, this makes these devices occasionally not being
applied the right keep-aspect/area settings.
Add a GsdDeviceManager::device-changed signal, emitted for the GsdDevice
for those situations, so the late-added devices are ensured to be updated.
https://bugzilla.gnome.org/show_bug.cgi?id=753589
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With the introduction of GsDeviceMapper (commit 0810de0f), left-handed
mode became responsibility of this object, which was applied by applying an
extra rotation to the device coordinate matrix.
Later, the device coordinate matrix handling was lifted to mutter, although
the rotation setting was kept in the g-s-d side of the settings split, so
GsdDeviceMapper would listen to the wrong settings, and left-handed mode
became no mans land.
Put the application of this setting back into GsdWacomManager, again
translated to the "Wacom Rotation" device property. Nonetheless, all
settings should move eventually to mutter domain, and this turned again
into modifications to the coordinate matrix.
https://bugzilla.gnome.org/show_bug.cgi?id=749767
|
|
|
|
| |
The device array returned must be freed.
|
|
|
|
|
|
|
| |
According to GSettings docs, one must read after connecting to changed::
in order to ensure the handler will trigger in the future.
https://bugzilla.gnome.org/show_bug.cgi?id=753170
|
| |
|
|
|
|
|
|
|
| |
From coverity:
gnome-settings-daemon-3.14.4/plugins/wacom/gsd-wacom-led-helper.c:130: double_free: Calling "g_free" frees pointer "status" which has already been freed.
https://bugzilla.gnome.org/show_bug.cgi?id=749882
|