source:
proiecte/PPPP/gdm/debian/patches/22_shutdown_menu.patch
@
141
Last change on this file since 141 was 134, checked in by , 14 years ago | |
---|---|
File size: 9.3 KB |
-
gui/simple-greeter/gdm-greeter-login-window.c
# # Description: Move shutdown menu to lower right hand corner as it is easy to accidentally use below user list # Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gdm/+bug/434338 # Upstream: http://bugzilla.gnome.org/show_bug.cgi?id=596151 # diff -Nur -x '*.orig' -x '*~' gdm-2.28.1/gui/simple-greeter/gdm-greeter-login-window.c gdm-2.28.1.new/gui/simple-greeter/gdm-greeter-login-window.c
old new 550 550 show_suspend_button = FALSE; 551 551 #endif 552 552 553 /* Buttons now in shutdown menu */ 554 show_restart_buttons = FALSE; 555 show_suspend_button = FALSE; 556 553 557 /* we want to run this even if we're supposed to 554 558 be in the mode already so that we reset everything 555 559 to a known state */ -
gui/simple-greeter/gdm-greeter-panel.c
diff -Nur -x '*.orig' -x '*~' gdm-2.28.1/gui/simple-greeter/gdm-greeter-panel.c gdm-2.28.1.new/gui/simple-greeter/gdm-greeter-panel.c
old new 34 34 35 35 #include <gconf/gconf-client.h> 36 36 37 #include <devkit-power-gobject/devicekit-power.h> 38 37 39 #include "gdm-languages.h" 38 40 #include "gdm-layouts.h" 39 41 #include "gdm-greeter-panel.h" … … 66 68 67 69 char *default_session_name; 68 70 char *default_language_name; 71 72 DkpClient *dkp_client; 69 73 }; 70 74 71 75 enum { … … 564 568 } 565 569 566 570 static void 571 do_system_suspend (GtkWidget *widget, 572 GdmGreeterPanel *login_window) 573 { 574 gboolean ret; 575 GError *error; 576 577 g_debug ("GdmGreeterPanel: Suspend button clicked"); 578 ret = dkp_client_suspend (login_window->priv->dkp_client, &error); 579 if (!ret) { 580 g_warning ("Suspend failure: %s", error->message); 581 g_error_free (error); 582 } 583 } 584 585 static void 586 do_system_hibernate (GtkWidget *widget, 587 GdmGreeterPanel *login_window) 588 { 589 gboolean ret; 590 GError *error; 591 592 g_debug ("GdmGreeterPanel: Hibernate button clicked"); 593 ret = dkp_client_hibernate (login_window->priv->dkp_client, &error); 594 if (!ret) { 595 g_warning ("Hibernate failure: %s", error->message); 596 g_error_free (error); 597 } 598 } 599 600 #include <dbus/dbus-glib.h> 601 602 #define CK_NAME "org.freedesktop.ConsoleKit" 603 #define CK_MANAGER_PATH "/org/freedesktop/ConsoleKit/Manager" 604 #define CK_MANAGER_INTERFACE "org.freedesktop.ConsoleKit.Manager" 605 606 static gboolean 607 try_system_stop (DBusGConnection *connection, 608 GError **error) 609 { 610 DBusGProxy *proxy; 611 gboolean res; 612 613 g_debug ("GdmGreeterPanel: trying to stop system"); 614 615 proxy = dbus_g_proxy_new_for_name (connection, 616 CK_NAME, 617 CK_MANAGER_PATH, 618 CK_MANAGER_INTERFACE); 619 res = dbus_g_proxy_call_with_timeout (proxy, 620 "Stop", 621 INT_MAX, 622 error, 623 /* parameters: */ 624 G_TYPE_INVALID, 625 /* return values: */ 626 G_TYPE_INVALID); 627 return res; 628 } 629 630 static gboolean 631 try_system_restart (DBusGConnection *connection, 632 GError **error) 633 { 634 DBusGProxy *proxy; 635 gboolean res; 636 637 g_debug ("GdmGreeterPanel: trying to restart system"); 638 639 proxy = dbus_g_proxy_new_for_name (connection, 640 CK_NAME, 641 CK_MANAGER_PATH, 642 CK_MANAGER_INTERFACE); 643 res = dbus_g_proxy_call_with_timeout (proxy, 644 "Restart", 645 INT_MAX, 646 error, 647 /* parameters: */ 648 G_TYPE_INVALID, 649 /* return values: */ 650 G_TYPE_INVALID); 651 return res; 652 } 653 654 static void 655 do_system_restart () 656 { 657 gboolean res; 658 GError *error; 659 DBusGConnection *connection; 660 661 error = NULL; 662 connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); 663 if (connection == NULL) { 664 g_warning ("Unable to get system bus connection: %s", error->message); 665 g_error_free (error); 666 return; 667 } 668 669 res = try_system_restart (connection, &error); 670 if (!res) { 671 g_debug ("GdmGreeterPanel: unable to restart system: %s: %s", 672 dbus_g_error_get_name (error), 673 error->message); 674 g_error_free (error); 675 } 676 } 677 678 static void 679 do_system_stop () 680 { 681 gboolean res; 682 GError *error; 683 DBusGConnection *connection; 684 685 error = NULL; 686 connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); 687 if (connection == NULL) { 688 g_warning ("Unable to get system bus connection: %s", error->message); 689 g_error_free (error); 690 return; 691 } 692 693 res = try_system_stop (connection, &error); 694 if (!res) { 695 g_debug ("GdmGreeterPanel: unable to stop system: %s: %s", 696 dbus_g_error_get_name (error), 697 error->message); 698 g_error_free (error); 699 } 700 } 701 702 static void 567 703 gdm_greeter_panel_init (GdmGreeterPanel *panel) 568 704 { 569 705 NaTray *tray; … … 642 778 gtk_widget_show (panel->priv->hostname_label); 643 779 } 644 780 781 { 782 GtkWidget *shutdown_menu; 783 GtkWidget *menu, *menu_item; 784 785 panel->priv->dkp_client = dkp_client_new (); 786 787 shutdown_menu = gtk_menu_bar_new (); 788 789 menu_item = gtk_image_menu_item_new (); 790 menu = gtk_menu_new (); 791 gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item), menu); 792 gtk_menu_item_set_label (GTK_MENU_ITEM (menu_item), ""); 793 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), 794 gtk_image_new_from_icon_name ("system-shutdown", GTK_ICON_SIZE_BUTTON)); 795 gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (menu_item), TRUE); 796 gtk_menu_shell_append (GTK_MENU_SHELL (shutdown_menu), menu_item); 797 798 if (dkp_client_can_suspend (panel->priv->dkp_client)) { 799 menu_item = gtk_menu_item_new_with_label (_("Suspend")); 800 g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK (do_system_suspend), panel); 801 gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); 802 } 803 804 if (dkp_client_can_hibernate (panel->priv->dkp_client)) { 805 menu_item = gtk_menu_item_new_with_label (_("Hibernate")); 806 g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK (do_system_hibernate), panel); 807 gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); 808 } 809 810 menu_item = gtk_menu_item_new_with_label (_("Restart")); 811 g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK (do_system_restart), NULL); 812 gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); 813 814 menu_item = gtk_menu_item_new_with_label (_("Shut Down")); 815 g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK (do_system_stop), NULL); 816 gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); 817 818 gtk_box_pack_end (GTK_BOX (panel->priv->hbox), GTK_WIDGET (shutdown_menu), FALSE, FALSE, 0); 819 gtk_widget_show_all (GTK_WIDGET (shutdown_menu)); 820 } 821 645 822 panel->priv->clock = gdm_clock_widget_new (); 646 823 gtk_box_pack_end (GTK_BOX (panel->priv->hbox), 647 824 GTK_WIDGET (panel->priv->clock), FALSE, FALSE, 6); -
gui/simple-greeter/Makefile.am
diff -Nur -x '*.orig' -x '*~' gdm-2.28.1/gui/simple-greeter/Makefile.am gdm-2.28.1.new/gui/simple-greeter/Makefile.am
old new 142 142 $(top_builddir)/common/libgdmcommon.la \ 143 143 $(top_builddir)/gui/simple-greeter/libnotificationarea/libnotificationarea.la \ 144 144 $(SIMPLE_GREETER_LIBS) \ 145 $(DEVKIT_POWER_LIBS) \ 145 146 $(GTK_LIBS) \ 146 147 $(GCONF_LIBS) \ 147 148 $(LIBXKLAVIER_LIBS) \
Note: See TracBrowser
for help on using the repository browser.