Skip to content
This repository has been archived by the owner on Mar 13, 2023. It is now read-only.

Commit

Permalink
Create gnome-pie-gdk-backends.vala
Browse files Browse the repository at this point in the history
As Gnome-Pie will now run on the 'x11' GDK backend by default (in a Wayland session), we need to check whether that is available at runtime. Instead of only allowing the 'x11' GDK backend (Gdk.set_allowed_backends("x11");), dropping all wayland-specific workarounds and letting the app crash when the backend is not available, we opt to use a dedicated executable to check the availability of the 'x11' GDK backend at runtime. This needs a few extra shell calls via Posix.System("") - in daemon.vala - but is much cleaner and user-friendly this way.

IMPORTANT: due to the lack of CMake experience on my part, I might have placed this new file in the wrong location. It needs to be integrated into src/CMakeLists.txt, such that it is generated as a seperate executable (named gnome-pie-gdk-backends) but I don't know how to do that.
  • Loading branch information
glitsj16 authored Aug 29, 2019
1 parent 941c6e2 commit 5492203
Showing 1 changed file with 40 additions and 0 deletions.
40 changes: 40 additions & 0 deletions src/gnome-pie-gdk-backends.vala
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/////////////////////////////////////////////////////////////////////////
// Copyright 2011-2018 Simon Schneegans
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/////////////////////////////////////////////////////////////////////////

// Basic executable to find available GDK backends at runtime.
// Used internally, should never be visible for the user.

public class GnomePieGdkBackends : Gtk.Application {
protected override void activate () {
var window = new Gtk.ApplicationWindow (this);
var label = new Gtk.Label ("Hello GDK Backends");
window.add (label);
window.set_title ("Welcome to Gnome-Pie!");
window.set_default_size (200, 100);
window.show_all ();
}
}

public int main (string[] args) {
return new GnomePieGdkBackends ().run (args);
}

0 comments on commit 5492203

Please sign in to comment.