import gnome-session-3.28.1-10.el8

This commit is contained in:
CentOS Sources 2020-11-03 06:56:11 -05:00 committed by Andrew Lukoshko
parent 3ae60a5e1c
commit 9cb6b7b21b
7 changed files with 220 additions and 3 deletions

View File

@ -0,0 +1,124 @@
From 06271eea2a12970fbe73b3d3f2c6ae5d79339379 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Mon, 29 Jun 2020 15:15:48 -0400
Subject: [PATCH] session-selector: show cursor explicitly
Normally the window manager would show the cursor at start up, but
the session selector runs when no window manager is present.
This commit makes the session selector explicitly set a cursor, so
users can interact with the dialog using the mouse.
---
tools/gnome-session-selector.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/tools/gnome-session-selector.c b/tools/gnome-session-selector.c
index 71892c43..9225639e 100644
--- a/tools/gnome-session-selector.c
+++ b/tools/gnome-session-selector.c
@@ -594,60 +594,61 @@ auto_save_next_session_if_needed (void)
static int
compare_sessions (GtkTreeModel *model,
GtkTreeIter *a,
GtkTreeIter *b,
gpointer data)
{
char *name_a, *name_b;
int result;
gtk_tree_model_get (model, a, 0, &name_a, -1);
gtk_tree_model_get (model, b, 0, &name_b, -1);
result = g_utf8_collate (name_a, name_b);
g_free (name_a);
g_free (name_b);
return result;
}
static void
on_map (GtkWidget *widget,
gpointer data)
{
gdk_window_focus (gtk_widget_get_window (widget), GDK_CURRENT_TIME);
}
int
main (int argc, char *argv[])
{
+ GdkCursor *cursor;
GtkWidget *window;
GtkWidget *widget;
GtkCellRenderer *cell;
GtkTreeViewColumn *column;
GtkTreeSelection *selection;
GError *error;
if (getenv ("SESSION_MANAGER") != NULL)
return 1;
gtk_init (&argc, &argv);
if (argc > 1) {
g_print ("create and select session\n");
if (!create_and_select_session (argv[1]))
return 1;
else
return 0;
}
builder = gtk_builder_new ();
gtk_builder_set_translation_domain (builder, GETTEXT_PACKAGE);
error = NULL;
if (!gtk_builder_add_from_file (builder, GTKBUILDER_DIR "/" "session-selector.ui", &error)) {
g_warning ("Could not load file 'session-selector.ui': %s", error->message);
exit (1);
}
window = (GtkWidget *) gtk_builder_get_object (builder, "main-window");
@@ -663,36 +664,40 @@ main (int argc, char *argv[])
session_list = (GtkWidget *) gtk_builder_get_object (builder, "session-list");
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (session_list));
gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);
populate_session_list (session_list);
cell = gtk_cell_renderer_text_new ();
g_signal_connect (cell, "edited", G_CALLBACK (on_row_edited), NULL);
column = gtk_tree_view_column_new_with_attributes ("", cell, "text", 0, NULL);
gtk_tree_view_append_column (GTK_TREE_VIEW (session_list), GTK_TREE_VIEW_COLUMN (column));
g_signal_connect (session_list, "row-activated", G_CALLBACK (on_row_activated), NULL);
g_signal_connect (selection, "changed",
G_CALLBACK (on_selection_changed), NULL);
widget = (GtkWidget *) gtk_builder_get_object (builder, "new-session");
g_signal_connect (widget, "clicked", G_CALLBACK (on_new_session_clicked), NULL);
widget = (GtkWidget *) gtk_builder_get_object (builder, "remove-session");
g_signal_connect (widget, "clicked", G_CALLBACK (on_remove_session_clicked), NULL);
widget = (GtkWidget *) gtk_builder_get_object (builder, "rename-session");
g_signal_connect (widget, "clicked", G_CALLBACK (on_rename_session_clicked), NULL);
widget = (GtkWidget *) gtk_builder_get_object (builder, "continue-button");
g_signal_connect (widget, "clicked", G_CALLBACK (on_continue_clicked), NULL);
g_signal_connect (window, "map", G_CALLBACK (on_map), NULL);
gtk_widget_show (window);
+ cursor = gdk_cursor_new_from_name (gtk_widget_get_display (window),
+ "default");
+ gdk_window_set_cursor (gtk_widget_get_window (window), cursor);
+
gtk_main ();
auto_save_next_session_if_needed ();
return 0;
}
--
2.26.0

View File

@ -0,0 +1,5 @@
[Desktop Entry]
Name=Kiosk
Type=Application
Exec=redhat-kiosk

View File

@ -0,0 +1,13 @@
[Desktop Entry]
Type=Application
Name=Mutter
Comment=Window manager
Exec=/usr/bin/mutter
Categories=GNOME;GTK;Core;
OnlyShowIn=GNOME;
NoDisplay=true
X-GNOME-Autostart-Phase=DisplayServer
X-GNOME-Provides=windowmanager;
X-GNOME-Autostart-Notify=true
X-GNOME-AutoRestart=false
X-GNOME-HiddenUnderSystemd=true

View File

@ -0,0 +1,6 @@
[Desktop Entry]
Name=Kiosk
Comment=Kiosk mode
Exec=/usr/bin/gnome-session --session=redhat-kiosk
DesktopNames=Red-Hat-Kiosk;GNOME;

26
SOURCES/redhat-kiosk Executable file
View File

@ -0,0 +1,26 @@
#!/bin/sh
if [ ! -e ~/.local/bin/redhat-kiosk ]; then
mkdir -p ~/.local/bin ~/.config
cat > ~/.local/bin/redhat-kiosk << EOF
#!/bin/sh
# This script is located in ~/.local/bin.
# It's provided as an example script to show how
# the kiosk session works. At the moment, the script
# just starts a text editor open to itself, but it
# should get customized to instead start a full screen
# application designed for the kiosk deployment.
# The "while true" bit just makes sure the application gets
# restarted if it dies for whatever reason.
while true; do
gedit ~/.local/bin/redhat-kiosk
done
EOF
chmod +x ~/.local/bin/redhat-kiosk
touch ~/.config/gnome-initial-setup-done
fi
exec ~/.local/bin/redhat-kiosk "$@"

View File

@ -0,0 +1,3 @@
[GNOME Session]
Name=Kiosk
RequiredComponents=com.redhat.Kiosk.WindowManager;com.redhat.Kiosk.Script;

View File

@ -9,7 +9,7 @@
Name: gnome-session
Version: 3.28.1
Release: 8%{?dist}
Release: 10%{?dist}
Summary: GNOME session manager
License: GPLv2+
@ -17,6 +17,13 @@ URL: http://www.gnome.org
Source0: http://download.gnome.org/sources/gnome-session/3.28/%{name}-%{version}.tar.xz
Source1: gnome.desktop
Source2: gnome-xorg.desktop
Source3: com.redhat.Kiosk.WindowManager.desktop
Source4: com.redhat.Kiosk.Script.desktop
Source5: com.redhat.Kiosk.desktop
Source6: redhat-kiosk.session
Source7: redhat-kiosk
Patch0: 0001-gnome-session-don-t-validate-shell-before-using-it.patch
# Blacklist NV30: https://bugzilla.redhat.com/show_bug.cgi?id=745202
Patch1: gnome-session-3.3.92-nv30.patch
@ -24,6 +31,8 @@ Patch3: gnome-session-3.6.2-swrast.patch
# https://bugzilla.gnome.org/show_bug.cgi?id=772421
Patch4: 0001-check-accelerated-gles-Use-eglGetPlatformDisplay-EXT.patch
Patch10001: 0001-session-selector-show-cursor-explicitly.patch
BuildRequires: meson
BuildRequires: gcc
BuildRequires: pkgconfig(egl)
@ -64,8 +73,6 @@ Requires: dbus-x11
Conflicts: gnome-settings-daemon < 3.27.90
Patch0: 0001-gnome-session-don-t-validate-shell-before-using-it.patch
%description
gnome-session manages a GNOME desktop or GDM login session. It starts up
the other core GNOME components and handles logout and saving the session.
@ -85,6 +92,17 @@ Requires: xorg-x11-server-Xwayland%{?_isa}
%description wayland-session
Desktop file to add GNOME on wayland to display manager session menu.
%package kiosk-session
Summary: Desktop file for mutter based kiosk session
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: mutter
Recommends: gedit
Recommends: gnome-terminal
Recommends: gnome-control-center
%description kiosk-session
Desktop file to add basic session used for setting up kiosk applications.
%prep
%autosetup -p1
@ -105,6 +123,12 @@ cp $RPM_SOURCE_DIR/gnome.desktop $RPM_BUILD_ROOT%{_datadir}/wayland-sessions
cp $RPM_SOURCE_DIR/gnome-xorg.desktop $RPM_BUILD_ROOT%{_datadir}/xsessions
cp $RPM_SOURCE_DIR/gnome-xorg.desktop $RPM_BUILD_ROOT%{_datadir}/xsessions/gnome.desktop
install -D $RPM_SOURCE_DIR/com.redhat.Kiosk.WindowManager.desktop -t $RPM_BUILD_ROOT/%{_datadir}/applications
install -D $RPM_SOURCE_DIR/com.redhat.Kiosk.Script.desktop -t $RPM_BUILD_ROOT%{_datadir}/applications
install -D $RPM_SOURCE_DIR/com.redhat.Kiosk.desktop -t $RPM_BUILD_ROOT%{_datadir}/xsessions
install -D $RPM_SOURCE_DIR/redhat-kiosk.session -t $RPM_BUILD_ROOT%{_datadir}/gnome-session/sessions
install -D $RPM_SOURCE_DIR/redhat-kiosk -t $RPM_BUILD_ROOT%{_bindir}
%find_lang %{po_package}
%ldconfig_scriptlets
@ -115,6 +139,13 @@ cp $RPM_SOURCE_DIR/gnome-xorg.desktop $RPM_BUILD_ROOT%{_datadir}/xsessions/gnome
%files wayland-session
%{_datadir}/wayland-sessions/*
%files kiosk-session
%{_datadir}/applications/com.redhat.Kiosk.WindowManager.desktop
%{_datadir}/applications/com.redhat.Kiosk.Script.desktop
%{_datadir}/xsessions/com.redhat.Kiosk.desktop
%{_datadir}/gnome-session/sessions/redhat-kiosk.session
%{_bindir}/redhat-kiosk
%files -f %{po_package}.lang
%doc AUTHORS NEWS README
%license COPYING
@ -131,6 +162,15 @@ cp $RPM_SOURCE_DIR/gnome-xorg.desktop $RPM_BUILD_ROOT%{_datadir}/xsessions/gnome
%{_datadir}/glib-2.0/schemas/org.gnome.SessionManager.gschema.xml
%changelog
* Mon Jun 29 2020 Ray Strode <rstrode@redhat.com> - 3.28.1-10
- Show cursor explicitly from session selector
Resolves: #1624430
* Tue May 19 2020 Ray Strode <rstrode@redhat.com> - 3.28.1-9
- Add kiosk-session subpackage to help users set up RHEL for
kiosk/point-of-sale use.
Resolves: #1739556
* Wed Nov 20 2019 Tomas Pelka <tpelka@redhat.com> - 3.28.1-8
- rebuild and version bump to avoid future conflict with z-stream version
Resolves: #1745147