Blame SOURCES/0001-session-selector-show-cursor-explicitly.patch

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