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

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