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

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