[gnome-panel/wip/muktupavels/lock-screen-applet: 5/5] action-button: remove lock screen object



commit 05c100a79c0c3e75deb61c2394428182fe9622bd
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Thu Apr 16 19:07:38 2020 +0300

    action-button: remove lock screen object
    
    And make sure it is converted to applet.

 gnome-panel/applet.c                          | 557 --------------------------
 gnome-panel/applet.h                          |  24 --
 gnome-panel/libpanel-util/Makefile.am         |   4 -
 gnome-panel/libpanel-util/panel-glib.c        |  22 -
 gnome-panel/libpanel-util/panel-glib.h        |   1 -
 gnome-panel/libpanel-util/panel-launch.c      | 171 --------
 gnome-panel/libpanel-util/panel-launch.h      |  37 --
 gnome-panel/libpanel-util/panel-screensaver.c | 140 -------
 gnome-panel/libpanel-util/panel-screensaver.h |  61 ---
 gnome-panel/libpanel-util/panel-show.c        |   1 -
 gnome-panel/panel-action-button.c             | 126 +-----
 gnome-panel/panel-action-button.h             |   3 -
 gnome-panel/panel-addto-dialog.c              |   2 +-
 gnome-panel/panel-enums.h                     |   1 -
 gnome-panel/panel-icon-names.h                |   1 -
 gnome-panel/panel-object-loader.c             |   5 +
 po/POTFILES.in                                |   2 -
 17 files changed, 15 insertions(+), 1143 deletions(-)
---
diff --git a/gnome-panel/applet.c b/gnome-panel/applet.c
index 7779e22c5..a14781a88 100644
--- a/gnome-panel/applet.c
+++ b/gnome-panel/applet.c
@@ -11,7 +11,6 @@
 #include <signal.h>
 #include <unistd.h>
 
-#include <glib/gi18n.h>
 #include <gdk/gdkx.h>
 
 #include <libgnome-panel/gp-action-private.h>
@@ -22,7 +21,6 @@
 #include "panel.h"
 #include "panel-bindings.h"
 #include "panel-applet-frame.h"
-#include "panel-action-button.h"
 #include "panel-toplevel.h"
 #include "panel-util.h"
 #include "panel-layout.h"
@@ -33,36 +31,12 @@ static GSList *registered_applets = NULL;
 static GSList *queued_position_saves = NULL;
 static guint   queued_position_source = 0;
 
-static GtkWidget *panel_applet_get_menu (AppletInfo *info);
-static void applet_menu_show       (GtkWidget *w, AppletInfo *info);
-static void applet_menu_deactivate (GtkWidget *w, AppletInfo *info);
-
 static inline PanelWidget *
 panel_applet_get_panel_widget (AppletInfo *info)
 {
        return PANEL_WIDGET (gtk_widget_get_parent (info->widget));
 }
 
-static void
-move_applet_callback (GtkWidget *widget, AppletInfo *info)
-{
-       GtkWidget   *parent;
-       PanelWidget *panel;
-
-       g_return_if_fail (info != NULL);
-       g_return_if_fail (info->widget != NULL);
-
-       parent = gtk_widget_get_parent (info->widget);
-
-       g_return_if_fail (parent != NULL);
-       g_return_if_fail (PANEL_IS_WIDGET (parent));
-
-       panel = PANEL_WIDGET (parent);
-
-       panel_widget_applet_drag_start (panel, info->widget,
-                                       GDK_CURRENT_TIME);
-}
-
 /* permanently remove an applet - all non-permanent
  * cleanups should go in panel_applet_destroy()
  */
@@ -79,491 +53,10 @@ panel_applet_clean (AppletInfo *info)
        }
 }
 
-static void
-panel_applet_recreate_menu (AppletInfo *info)
-{
-       if (info->menu) {
-               GList *l;
-
-               for (l = info->user_menu; l; l = l->next) {
-                       AppletUserMenu *menu = l->data;
-
-                       menu->menuitem = NULL;
-                       menu->submenu = NULL;
-               }
-
-               if (gtk_widget_get_visible (info->menu))
-                       gtk_menu_shell_deactivate (GTK_MENU_SHELL (info->menu));
-
-               g_signal_handlers_disconnect_by_func (info->menu,
-                                                     G_CALLBACK (applet_menu_show), info);
-               g_signal_handlers_disconnect_by_func (info->menu,
-                                                     G_CALLBACK (applet_menu_deactivate), info);
-
-               g_object_unref (info->menu);
-               info->menu = NULL;
-       }
-
-       panel_applet_get_menu (info);
-}
-
-static void
-applet_remove_callback (GtkWidget  *widget,
-                       AppletInfo *info)
-{
-
-       panel_layout_delete_object (info->id);
-}
-
-static inline GdkScreen *
-applet_user_menu_get_screen (AppletUserMenu *menu)
-{
-       PanelWidget *panel_widget;
-
-       panel_widget = panel_applet_get_panel_widget (menu->info);
-
-       return gtk_window_get_screen (GTK_WINDOW (panel_widget->toplevel));
-}
-
-static void
-applet_callback_callback (GtkWidget      *widget,
-                         AppletUserMenu *menu)
-{
-       g_return_if_fail (menu->info != NULL);
-
-       switch (menu->info->type) {
-       case PANEL_OBJECT_ACTION:
-               panel_action_button_invoke_menu (
-                       PANEL_ACTION_BUTTON (menu->info->widget), menu->name);
-               break;
-
-       case PANEL_OBJECT_APPLET:
-               /*
-                * Applet's menu's are handled differently
-                */
-               break;
-       default:
-               g_assert_not_reached ();
-               break;
-       }
-}
-
-static void
-applet_menu_show (GtkWidget *w,
-                 AppletInfo *info)
-{
-       PanelWidget *panel_widget;
-
-       panel_widget = panel_applet_get_panel_widget (info);
-
-       panel_toplevel_push_autohide_disabler (panel_widget->toplevel);
-}
-
-
-static void
-applet_menu_deactivate (GtkWidget *w,
-                       AppletInfo *info)
-{
-       PanelWidget *panel_widget;
-
-       panel_widget = panel_applet_get_panel_widget (info);
-
-       panel_toplevel_pop_autohide_disabler (panel_widget->toplevel);
-}
-
-static AppletUserMenu *
-panel_applet_get_callback (GList      *user_menu,
-                          const char *name)
-{
-       GList *l;
-
-       for (l = user_menu; l; l = l->next) {
-               AppletUserMenu *menu = l->data;
-
-               if (strcmp (menu->name, name) == 0)
-                       return menu;
-       }
-
-       return NULL;    
-}
-
-void
-panel_applet_add_callback (AppletInfo          *info,
-                          const char          *callback_name,
-                          const char          *menuitem_text,
-                          CallbackEnabledFunc  is_enabled_func)
-{
-       AppletUserMenu *menu;
-
-       g_return_if_fail (info != NULL);
-       g_return_if_fail (panel_applet_get_callback (info->user_menu,
-                                                    callback_name) == NULL);
-
-       menu                  = g_new0 (AppletUserMenu, 1);
-       menu->name            = g_strdup (callback_name);
-       menu->text            = g_strdup (menuitem_text);
-       menu->is_enabled_func = is_enabled_func;
-       menu->sensitive       = TRUE;
-       menu->info            = info;
-       menu->menuitem        = NULL;
-       menu->submenu         = NULL;
-
-       info->user_menu = g_list_append (info->user_menu, menu);
-
-       panel_applet_recreate_menu (info);
-}
-
-static void
-setup_an_item (AppletUserMenu *menu,
-              GtkWidget      *submenu,
-              int             is_submenu)
-{
-       menu->menuitem = gtk_menu_item_new_with_mnemonic (menu->text);
-       gtk_widget_show (menu->menuitem);
-
-       g_signal_connect (G_OBJECT (menu->menuitem), "destroy",
-                         G_CALLBACK (gtk_widget_destroyed),
-                         &menu->menuitem);
-
-       if(submenu)
-               gtk_menu_shell_append (GTK_MENU_SHELL (submenu), menu->menuitem);
-
-       /*if an item not a submenu*/
-       if (!is_submenu) {
-               g_signal_connect (menu->menuitem, "activate",
-                                 G_CALLBACK (applet_callback_callback),
-                                 menu);
-               g_signal_connect (submenu, "destroy",
-                                 G_CALLBACK (gtk_widget_destroyed),
-                                 &menu->submenu);
-       /* if the item is a submenu and doesn't have it's menu
-          created yet*/
-       } else if (!menu->submenu) {
-               menu->submenu = gtk_menu_new ();
-       }
-
-       if(menu->submenu) {
-               gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu->menuitem),
-                                         menu->submenu);
-               g_signal_connect (G_OBJECT (menu->submenu), "destroy",
-                                   G_CALLBACK (gtk_widget_destroyed),
-                                   &menu->submenu);
-       }
-       
-       gtk_widget_set_sensitive(menu->menuitem,menu->sensitive);
-}
-
-static void
-add_to_submenus (AppletInfo *info,
-                const char *path,
-                const char *name,
-                AppletUserMenu *menu,
-                GtkWidget *submenu,
-                GList *user_menu)
-{
-       char *n = g_strdup (name);
-       char *p = strchr (n, '/');
-       char *t;
-       AppletUserMenu *s_menu;
-
-       /*this is the last one*/
-       if (p == NULL) {
-               g_free (n);
-               setup_an_item (menu, submenu, FALSE);
-               return;
-       }
-       
-       /*this is the last one and we are a submenu, we have already been
-         set up*/
-       if(p==(n + strlen(n) - 1)) {
-               g_free(n);
-               return;
-       }
-       
-       *p = '\0';
-       p++;
-       
-       t = g_strconcat (path, n, "/", NULL);
-       s_menu = panel_applet_get_callback (user_menu, t);
-       /*the user did not give us this sub menu, whoops, will create an empty
-         one then*/
-       if (s_menu == NULL) {
-               s_menu = g_new0 (AppletUserMenu,1);
-               s_menu->name = g_strdup (t);
-               s_menu->text = g_strdup (_("???"));
-               s_menu->sensitive = TRUE;
-               s_menu->info = info;
-               s_menu->menuitem = NULL;
-               s_menu->submenu = NULL;
-               info->user_menu = g_list_append (info->user_menu,s_menu);
-               user_menu = info->user_menu;
-       }
-       
-       if (s_menu->submenu == NULL) {
-               s_menu->submenu = gtk_menu_new ();
-               /*a more elegant way to do this should be done
-                 when I don't want to go to sleep */
-               if (s_menu->menuitem != NULL) {
-                       gtk_widget_destroy (s_menu->menuitem);
-                       s_menu->menuitem = NULL;
-               }
-       }
-       if (s_menu->menuitem == NULL)
-               setup_an_item (s_menu, submenu, TRUE);
-       
-       add_to_submenus (info, t, p, menu, s_menu->submenu, user_menu);
-       
-       g_free(t);
-       g_free(n);
-}
-
-static GtkWidget *
-panel_applet_create_bare_menu (AppletInfo *info)
-{
-       GtkWidget *menu;
-
-       menu = g_object_ref_sink (gtk_menu_new ());
-
-       /* connect the show & deactivate signal, so that we can "disallow" and
-        * "re-allow" autohide when the menu is shown/deactivated.
-        */
-       g_signal_connect (menu, "show",
-                         G_CALLBACK (applet_menu_show), info);
-       g_signal_connect (menu, "deactivate",
-                         G_CALLBACK (applet_menu_deactivate), info);
-
-       return menu;
-}
-
-static void
-panel_applet_menu_lockdown_changed (PanelLockdown *lockdown,
-                                   gpointer       user_data)
-{
-       AppletInfo *info = user_data;
-
-       panel_applet_recreate_menu (info);
-}
-
-static GtkWidget *
-panel_applet_get_menu (AppletInfo *info)
-{
-       GtkWidget   *menu;
-       GList       *l;
-       gboolean     added_anything = FALSE;
-
-       if (info->menu)
-               return info->menu;
-
-       menu = panel_applet_create_bare_menu (info);
-
-       for (l = info->user_menu; l; l = l->next) {
-               AppletUserMenu *user_menu = l->data;
-
-               if (user_menu->is_enabled_func && !user_menu->is_enabled_func ())
-                       continue;
-
-               add_to_submenus (info, "", user_menu->name, user_menu, 
-                                menu, info->user_menu);
-
-               added_anything = TRUE;
-       }
-
-       if ( ! added_anything) {
-                g_signal_handlers_disconnect_by_func (menu,
-                                                     G_CALLBACK (applet_menu_show), info);
-                g_signal_handlers_disconnect_by_func (menu,
-                                                     G_CALLBACK (applet_menu_deactivate), info);
-
-               g_object_unref (menu);
-               return NULL;
-       }
-
-       info->menu = menu;
-
-       panel_lockdown_on_notify (panel_lockdown_get (),
-                                 NULL,
-                                 G_OBJECT (info->menu),
-                                 panel_applet_menu_lockdown_changed,
-                                 info);
-
-       return info->menu;
-}
-
-static void
-panel_applet_edit_menu_lockdown_changed (PanelLockdown *lockdown,
-                                        gpointer       user_data)
-{
-       AppletInfo *info = user_data;
-
-       if (!panel_lockdown_get_panels_locked_down (lockdown))
-               return;
-
-       if (info->edit_menu) {
-               if (gtk_widget_get_visible (info->edit_menu))
-                       gtk_menu_shell_deactivate (GTK_MENU_SHELL (info->edit_menu));
-
-                g_signal_handlers_disconnect_by_func (info->edit_menu,
-                                                     G_CALLBACK (applet_menu_deactivate), info);
-               gtk_widget_destroy (info->edit_menu);
-               info->edit_menu = NULL;
-       }
-}
-
-static GtkWidget *
-panel_applet_get_edit_menu (AppletInfo *info)
-{
-       GtkWidget   *menu;
-       GtkWidget   *menuitem;
-       gboolean     movable;
-       gboolean     removable;
-
-       if (info->edit_menu)
-               return info->edit_menu;
-
-       if (panel_lockdown_get_panels_locked_down_s ())
-               return NULL;
-
-       menu = panel_applet_create_bare_menu (info);
-
-       movable = panel_applet_can_freely_move (info);
-       removable = panel_layout_is_writable ();
-
-       menuitem = gtk_menu_item_new_with_mnemonic (_("_Move"));
-       g_signal_connect (menuitem, "activate",
-                         G_CALLBACK (move_applet_callback), info);
-       gtk_widget_show (menuitem);
-       gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
-       gtk_widget_set_sensitive (menuitem, movable);
-
-       menuitem = gtk_menu_item_new_with_mnemonic (_("_Remove From Panel"));
-       g_signal_connect (menuitem, "activate",
-                         G_CALLBACK (applet_remove_callback), info);
-       gtk_widget_show (menuitem);
-       gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
-       gtk_widget_set_sensitive (menuitem, removable);
-
-       info->edit_menu = menu;
-
-       panel_lockdown_on_notify (panel_lockdown_get (),
-                                 "panels-locked-down",
-                                 G_OBJECT (info->edit_menu),
-                                 panel_applet_edit_menu_lockdown_changed,
-                                 info);
-
-       return info->edit_menu;
-}
-
-static void
-applet_show_menu (AppletInfo *info,
-                  GtkWidget  *menu,
-                  GdkEvent   *event)
-{
-       PanelWidget *panel_widget;
-       PanelOrientation orientation;
-       GdkGravity widget_anchor;
-       GdkGravity menu_anchor;
-
-       g_return_if_fail (info != NULL);
-
-       if (menu == NULL)
-               return;
-
-       panel_widget = panel_applet_get_panel_widget (info);
-       orientation = panel_widget_get_applet_orientation (panel_widget);
-
-       if (orientation == PANEL_ORIENTATION_TOP) {
-               widget_anchor = GDK_GRAVITY_SOUTH_WEST;
-               menu_anchor = GDK_GRAVITY_NORTH_WEST;
-       } else if (orientation == PANEL_ORIENTATION_LEFT) {
-               widget_anchor = GDK_GRAVITY_NORTH_EAST;
-               menu_anchor = GDK_GRAVITY_NORTH_WEST;
-       } else if (orientation == PANEL_ORIENTATION_RIGHT) {
-               widget_anchor = GDK_GRAVITY_NORTH_WEST;
-               menu_anchor = GDK_GRAVITY_NORTH_EAST;
-       } else if (orientation == PANEL_ORIENTATION_BOTTOM) {
-               widget_anchor = GDK_GRAVITY_NORTH_WEST;
-               menu_anchor = GDK_GRAVITY_SOUTH_WEST;
-       } else {
-               g_assert_not_reached ();
-       }
-
-       gtk_menu_popup_at_widget (GTK_MENU (menu), info->widget,
-                                 widget_anchor, menu_anchor,
-                                 event);
-}
-
-static gboolean
-applet_must_skip_menu (AppletInfo *info)
-{
-       if (panel_applet_is_in_drag ())
-               return TRUE;
-
-       if (info->type == PANEL_OBJECT_APPLET)
-               return TRUE;
-
-       return FALSE;
-}
-
-static gboolean
-applet_button_press (GtkWidget      *widget,
-                    GdkEventButton *event,
-                    AppletInfo     *info)
-{
-       guint modifiers;
-
-       if (event->button != 3)
-               return FALSE;
-
-       if (applet_must_skip_menu (info))
-               return FALSE;
-
-       modifiers = event->state & gtk_accelerator_get_default_mod_mask ();
-
-       if (modifiers == panel_bindings_get_mouse_button_modifier_keymask ())
-               applet_show_menu (info, panel_applet_get_edit_menu (info), (GdkEvent *) event);
-       else
-               applet_show_menu (info, panel_applet_get_menu (info), (GdkEvent *) event);
-
-       return TRUE;
-}
-
-static gboolean
-applet_key_press (GtkWidget   *widget,
-                 GdkEventKey *event,
-                 AppletInfo  *info)
-{
-       GdkEventButton eventbutton;
-       gboolean is_popup = FALSE;
-       gboolean is_edit_popup = FALSE;
-
-       if (applet_must_skip_menu (info))
-               return FALSE;
-
-       eventbutton.button = 3;
-       eventbutton.time = event->time;
-
-       /* We're not connecting to the popup-menu signal since we want to be
-        * able to deal with two cases:
-        *  - exact keybinding of popup-menu => we open the context menu
-        *  - keybinding of popup-menu + modifier from metacity => we open menu
-        *    to "edit"
-        */
-       panel_util_key_event_is_popup (event, &is_popup, &is_edit_popup);
-
-       if (is_edit_popup)
-               applet_show_menu (info, panel_applet_get_edit_menu (info), (GdkEvent *) &eventbutton);
-       else if (is_popup)
-               applet_show_menu (info, panel_applet_get_menu (info), (GdkEvent *) &eventbutton);
-
-       return (is_popup || is_edit_popup);
-}
-
 static void
 panel_applet_destroy (GtkWidget  *widget,
                      AppletInfo *info)
 {
-       GList *l;
-
        g_return_if_fail (info != NULL);
 
        info->widget = NULL;
@@ -573,46 +66,10 @@ panel_applet_destroy (GtkWidget  *widget,
        queued_position_saves =
                g_slist_remove (queued_position_saves, info);
 
-       if (info->menu) {
-               if (gtk_widget_get_visible (info->menu))
-                       gtk_menu_shell_deactivate (GTK_MENU_SHELL (info->menu));
-
-                g_signal_handlers_disconnect_by_func (info->menu,
-                                                     G_CALLBACK (applet_menu_show), info);
-                g_signal_handlers_disconnect_by_func (info->menu,
-                                                     G_CALLBACK (applet_menu_deactivate), info);
-               g_object_unref (info->menu);
-        }
-       info->menu = NULL;
-
-       if (info->edit_menu) {
-               if (gtk_widget_get_visible (info->edit_menu))
-                       gtk_menu_shell_deactivate (GTK_MENU_SHELL (info->edit_menu));
-
-                g_signal_handlers_disconnect_by_func (info->edit_menu,
-                                                     G_CALLBACK (applet_menu_show), info);
-                g_signal_handlers_disconnect_by_func (info->edit_menu,
-                                                     G_CALLBACK (applet_menu_deactivate), info);
-               g_object_unref (info->edit_menu);
-        }
-       info->edit_menu = NULL;
-
        if (info->data_destroy)
                info->data_destroy (info->data);
        info->data = NULL;
 
-       for (l = info->user_menu; l != NULL; l = l->next) {
-               AppletUserMenu *umenu = l->data;
-
-               g_free (umenu->name);
-               g_free (umenu->text);
-
-               g_free (umenu);
-       }
-
-       g_list_free (info->user_menu);
-       info->user_menu = NULL;
-
        if (info->settings)
                g_object_unref (info->settings);
        info->settings = NULL;
@@ -767,11 +224,8 @@ panel_applet_register (GtkWidget       *applet,
        info->type         = type;
        info->widget       = applet;
        info->settings     = g_object_ref (settings);
-       info->menu         = NULL;
-       info->edit_menu    = NULL;
        info->data         = data;
        info->data_destroy = data_destroy;
-       info->user_menu    = NULL;
        info->id           = g_strdup (id);
 
        g_object_set_data (G_OBJECT (applet), "applet_info", info);
@@ -785,17 +239,6 @@ panel_applet_register (GtkWidget       *applet,
        /* Insert it */
        panel_widget_add (panel, applet, pack_type, pack_index, TRUE);
 
-       if (BUTTON_IS_WIDGET (applet) ||
-           gtk_widget_get_has_window (applet)) {
-               g_signal_connect (applet, "button_press_event",
-                                 G_CALLBACK (applet_button_press),
-                                 info);
-
-               g_signal_connect (applet, "key_press_event",
-                                 G_CALLBACK (applet_key_press),
-                                 info);
-       }
-
        g_signal_connect (applet, "destroy",
                          G_CALLBACK (panel_applet_destroy),
                          info);
diff --git a/gnome-panel/applet.h b/gnome-panel/applet.h
index 91541737d..970770481 100644
--- a/gnome-panel/applet.h
+++ b/gnome-panel/applet.h
@@ -18,31 +18,12 @@ typedef struct {
        GtkWidget       *widget;
        GSettings       *settings;
 
-       GtkWidget       *menu;
-       GtkWidget       *edit_menu;
-       GList           *user_menu;
-
        gpointer         data;
        GDestroyNotify   data_destroy;
 
        char            *id;
 } AppletInfo;
 
-typedef gboolean (* CallbackEnabledFunc) (void);
-
-typedef struct {
-       char                *name;
-       char                *text;
-
-       CallbackEnabledFunc  is_enabled_func;
-
-       int                  sensitive;
-       AppletInfo          *info;
-
-       GtkWidget           *menuitem;
-       GtkWidget           *submenu;
-} AppletUserMenu;
-
 AppletInfo *panel_applet_register    (GtkWidget       *applet,
                                      PanelWidget     *panel,
                                      PanelObjectType  type,
@@ -59,11 +40,6 @@ GSList     *panel_applet_list_applets (void);
 
 void        panel_applet_clean        (AppletInfo    *info);
 
-void            panel_applet_add_callback    (AppletInfo          *info,
-                                             const gchar         *callback_name,
-                                             const gchar         *menuitem_text,
-                                             CallbackEnabledFunc  is_enabled_func);
-
 void        panel_applet_save_position           (AppletInfo *applet_info,
                                                  const char *id,
                                                  gboolean    immediate);
diff --git a/gnome-panel/libpanel-util/Makefile.am b/gnome-panel/libpanel-util/Makefile.am
index 720592863..a5fcd1259 100644
--- a/gnome-panel/libpanel-util/Makefile.am
+++ b/gnome-panel/libpanel-util/Makefile.am
@@ -38,10 +38,6 @@ libpanel_util_la_SOURCES =           \
        panel-gsettings.h               \
        panel-keyfile.c                 \
        panel-keyfile.h                 \
-       panel-launch.c                  \
-       panel-launch.h                  \
-       panel-screensaver.c             \
-       panel-screensaver.h             \
        panel-session-manager.c         \
        panel-session-manager.h         \
        panel-show.c                    \
diff --git a/gnome-panel/libpanel-util/panel-glib.c b/gnome-panel/libpanel-util/panel-glib.c
index ec9c87cef..75cff914d 100644
--- a/gnome-panel/libpanel-util/panel-glib.c
+++ b/gnome-panel/libpanel-util/panel-glib.c
@@ -48,21 +48,6 @@ _lookup_in_dir (const char *basename,
        return path;
 }
 
-static char *
-_lookup_in_applications_subdir (const char *basename,
-                               const char *dir)
-{
-       char *path;
-
-       path = g_build_filename (dir, "applications", basename, NULL);
-       if (!g_file_test (path, G_FILE_TEST_EXISTS)) {
-               g_free (path);
-               return NULL;
-       }
-
-       return path;
-}
-
 static char *
 _panel_g_lookup_in_data_dirs_internal (const char *basename,
                                       LookupInDir lookup)
@@ -92,13 +77,6 @@ panel_g_lookup_in_data_dirs (const char *basename)
                                                      _lookup_in_dir);
 }
 
-char *
-panel_g_lookup_in_applications_dirs (const char *basename)
-{
-       return _panel_g_lookup_in_data_dirs_internal (basename,
-                                                     _lookup_in_applications_subdir);
-}
-
 /* Copied from evolution-data-server/libedataserver/e-util.c:
  * e_util_unicode_get_utf8() */
 static char *
diff --git a/gnome-panel/libpanel-util/panel-glib.h b/gnome-panel/libpanel-util/panel-glib.h
index ffcd31b6f..bff03bd7c 100644
--- a/gnome-panel/libpanel-util/panel-glib.h
+++ b/gnome-panel/libpanel-util/panel-glib.h
@@ -30,7 +30,6 @@ G_BEGIN_DECLS
 #define PANEL_GLIB_STR_EMPTY(x) ((x) == NULL || (x)[0] == '\0')
 
 char       *panel_g_lookup_in_data_dirs         (const char *basename);
-char       *panel_g_lookup_in_applications_dirs (const char *basename);
 
 const char *panel_g_utf8_strstrcase             (const char *haystack,
                                                 const char *needle);
diff --git a/gnome-panel/libpanel-util/panel-show.c b/gnome-panel/libpanel-util/panel-show.c
index 63773c4b4..f90555538 100644
--- a/gnome-panel/libpanel-util/panel-show.c
+++ b/gnome-panel/libpanel-util/panel-show.c
@@ -32,7 +32,6 @@
 
 #include "panel-error.h"
 #include "panel-glib.h"
-#include "panel-launch.h"
 
 #include "panel-show.h"
 
diff --git a/gnome-panel/panel-action-button.c b/gnome-panel/panel-action-button.c
index 4f8e35c2e..8844e6962 100644
--- a/gnome-panel/panel-action-button.c
+++ b/gnome-panel/panel-action-button.c
@@ -32,8 +32,6 @@
 
 #include <libpanel-util/panel-error.h>
 #include <libpanel-util/panel-glib.h>
-#include <libpanel-util/panel-launch.h>
-#include <libpanel-util/panel-screensaver.h>
 #include <libpanel-util/panel-end-session-dialog.h>
 #include <libpanel-util/panel-session-manager.h>
 #include <libpanel-util/panel-show.h>
@@ -67,7 +65,6 @@ typedef struct {
 
 static PanelEnumStringPair panel_action_type_map [] = {
        { PANEL_ACTION_NONE,           "none"           },
-       { PANEL_ACTION_LOCK,           "lock"           },
        { PANEL_ACTION_LOGOUT,         "logout"         },
        { PANEL_ACTION_RUN,            "run"            },
        { PANEL_ACTION_FORCE_QUIT,     "force-quit"     },
@@ -108,81 +105,6 @@ panel_enum_to_string (gint enum_value)
        return NULL;
 }
 
-/* Lock Screen
- */
-static void
-panel_action_lock_screen (GtkWidget *widget)
-{
-       panel_screensaver_lock (panel_screensaver_get ());
-}
-
-static gboolean
-screensaver_properties_enabled (void)
-{
-       char *desktop;
-       gboolean found;
-
-       if (panel_lockdown_get_panels_locked_down_s () ||
-           panel_lockdown_get_disable_lock_screen_s ())
-               return FALSE;
-
-       desktop = panel_g_lookup_in_applications_dirs ("gnome-lock-panel.desktop");
-       found = (desktop != NULL);
-       g_free (desktop);
-
-       return found;
-}
-
-static gboolean
-panel_action_lock_is_enabled (void)
-{
-       return !panel_lockdown_get_disable_lock_screen_s ();
-}
-
-static gboolean
-panel_action_lock_is_disabled (void)
-{
-       return !panel_action_lock_is_enabled ();
-}
-
-static void
-panel_action_lock_setup_menu (PanelActionButton *button)
-{
-       panel_applet_add_callback (button->priv->info,
-                                  "lock",
-                                  _("_Lock Screen"),
-                                  panel_action_lock_is_enabled);
-
-       panel_applet_add_callback (button->priv->info,
-                                  "activate",
-                                  _("_Activate Screensaver"),
-                                  NULL);
-
-       panel_applet_add_callback (button->priv->info,
-                                  "prefs",
-                                  _("_Properties"),
-                                  screensaver_properties_enabled);
-}
-
-static void
-panel_action_lock_invoke_menu (PanelActionButton *button,
-                              const char *callback_name)
-{
-       g_return_if_fail (PANEL_IS_ACTION_BUTTON (button));
-       g_return_if_fail (callback_name != NULL);
-
-       if (g_strcmp0 (callback_name, "lock") == 0)
-               panel_screensaver_lock (panel_screensaver_get ());
-       else if (g_strcmp0 (callback_name, "activate") == 0)
-               panel_screensaver_activate (panel_screensaver_get ());
-       else if (g_strcmp0 (callback_name, "prefs") == 0)
-               panel_launch_desktop_file ("gnome-lock-panel.desktop",
-                                          gtk_widget_get_screen (GTK_WIDGET (button)),
-                                          NULL);
-       else
-               g_assert_not_reached ();
-}
-
 /* Log Out
  */
 static void
@@ -317,9 +239,6 @@ typedef struct {
        const gchar            *tooltip;
        const gchar            *drag_id;
        void                  (*invoke)      (GtkWidget         *widget);
-       void                  (*setup_menu)  (PanelActionButton *button);
-       void                  (*invoke_menu) (PanelActionButton *button,
-                                             const char        *callback_name);
        gboolean              (*is_disabled) (void);
 } PanelAction;
 
@@ -329,18 +248,7 @@ static PanelAction actions [] = {
        {
                PANEL_ACTION_NONE,
                NULL, NULL, NULL, NULL,
-               NULL, NULL, NULL, NULL
-       },
-       {
-               PANEL_ACTION_LOCK,
-               PANEL_ICON_LOCKSCREEN,
-               N_("Lock Screen"),
-               N_("Protect your computer from unauthorized use"),
-               "ACTION:lock:NEW",
-               panel_action_lock_screen,
-               panel_action_lock_setup_menu,
-               panel_action_lock_invoke_menu,
-               panel_action_lock_is_disabled
+               NULL, NULL
        },
        {
                PANEL_ACTION_LOGOUT,
@@ -351,7 +259,7 @@ static PanelAction actions [] = {
                N_("Log Out"),
                N_("Log out of this session to log in as a different user"),
                "ACTION:logout:NEW",
-               panel_action_logout, NULL, NULL,
+               panel_action_logout,
                panel_lockdown_get_disable_log_out_s
        },
        {
@@ -360,7 +268,7 @@ static PanelAction actions [] = {
                N_("Run Application..."),
                N_("Run an application by typing a command or choosing from a list"),
                "ACTION:run:NEW",
-               panel_action_run_program, NULL, NULL,
+               panel_action_run_program,
                panel_lockdown_get_disable_command_line_s
        },
        {
@@ -369,7 +277,7 @@ static PanelAction actions [] = {
                N_("Force Quit"),
                N_("Force a misbehaving application to quit"),
                "ACTION:force-quit:NEW",
-               panel_action_force_quit, NULL, NULL,
+               panel_action_force_quit,
                panel_lockdown_get_disable_force_quit_s
        },
        {
@@ -378,7 +286,7 @@ static PanelAction actions [] = {
                N_("Hibernate"),
                NULL,
                "ACTION:hibernate:NEW",
-               panel_action_hibernate, NULL, NULL,
+               panel_action_hibernate,
                panel_action_hibernate_is_disabled
        },
        {
@@ -387,7 +295,7 @@ static PanelAction actions [] = {
                N_("Suspend"),
                NULL,
                "ACTION:suspend:NEW",
-               panel_action_suspend, NULL, NULL,
+               panel_action_suspend,
                panel_action_suspend_is_disabled
        },
        {
@@ -396,7 +304,7 @@ static PanelAction actions [] = {
                N_("Hybrid sleep"),
                NULL,
                "ACTION:hybrid-sleep:NEW",
-               panel_action_hybrid_sleep, NULL, NULL,
+               panel_action_hybrid_sleep,
                panel_action_hybrid_sleep_is_disabled
        },
        {
@@ -405,7 +313,7 @@ static PanelAction actions [] = {
                N_("Restart"),
                N_("Restart the computer"),
                "ACTION:reboot:NEW",
-               panel_action_reboot, NULL, NULL,
+               panel_action_reboot,
                panel_action_shutdown_reboot_is_disabled
        },
        {
@@ -414,7 +322,7 @@ static PanelAction actions [] = {
                N_("Power Off"),
                N_("Power off the computer"),
                "ACTION:shutdown:NEW",
-               panel_action_shutdown, NULL, NULL,
+               panel_action_shutdown,
                panel_action_shutdown_reboot_is_disabled
        }
 };
@@ -639,9 +547,6 @@ panel_action_button_load_helper (PanelWidget           *panel,
        panel_widget_set_applet_expandable (panel, GTK_WIDGET (button), FALSE, TRUE);
        panel_widget_set_applet_size_constrained (panel, GTK_WIDGET (button), TRUE);
 
-       if (actions [button->priv->type].setup_menu)
-               actions [button->priv->type].setup_menu (button);
-
        panel_lockdown_on_notify (panel_lockdown_get (),
                                  NULL,
                                  G_OBJECT (button),
@@ -691,19 +596,6 @@ panel_action_button_load (PanelWidget *panel,
        panel_action_button_load_helper (panel, id, settings, type);
 }
 
-void
-panel_action_button_invoke_menu (PanelActionButton *button,
-                                const char        *callback_name)
-{
-       g_return_if_fail (PANEL_IS_ACTION_BUTTON (button));
-       g_return_if_fail (callback_name != NULL);
-       g_return_if_fail (button->priv->type > PANEL_ACTION_NONE &&
-                         button->priv->type < PANEL_ACTION_LAST);
-
-       if (actions [button->priv->type].invoke_menu)
-               actions [button->priv->type].invoke_menu (button, callback_name);
-}
-
 void
 panel_action_button_load_from_drag (PanelToplevel       *toplevel,
                                    PanelObjectPackType  pack_type,
diff --git a/gnome-panel/panel-action-button.h b/gnome-panel/panel-action-button.h
index 902cf6e3e..f34932cf7 100644
--- a/gnome-panel/panel-action-button.h
+++ b/gnome-panel/panel-action-button.h
@@ -67,9 +67,6 @@ void       panel_action_button_load             (PanelWidget            *panel,
                                                 GSettings              *settings,
                                                 const char             *detail);
 
-void       panel_action_button_invoke_menu      (PanelActionButton      *button,
-                                                const char             *callback_name);
-
 void       panel_action_button_load_from_drag   (PanelToplevel          *toplevel,
                                                 PanelObjectPackType     pack_type,
                                                 int                     pack_index,
diff --git a/gnome-panel/panel-addto-dialog.c b/gnome-panel/panel-addto-dialog.c
index f5cfed709..edc7a9b43 100644
--- a/gnome-panel/panel-addto-dialog.c
+++ b/gnome-panel/panel-addto-dialog.c
@@ -109,7 +109,7 @@ panel_addto_prepend_internal_applets (GSList *list)
 {
        int i;
 
-       for (i = PANEL_ACTION_LOCK; i < PANEL_ACTION_LAST; i++) {
+       for (i = 1; i < PANEL_ACTION_LAST; i++) {
                PanelAddtoItemInfo *info;
 
                if (i == PANEL_ACTION_REBOOT || i == PANEL_ACTION_HYBRID_SLEEP
diff --git a/gnome-panel/panel-enums.h b/gnome-panel/panel-enums.h
index 1cb4b7e6b..83a4f181c 100644
--- a/gnome-panel/panel-enums.h
+++ b/gnome-panel/panel-enums.h
@@ -38,7 +38,6 @@ typedef enum {
 
 typedef enum {
         PANEL_ACTION_NONE = 0,
-        PANEL_ACTION_LOCK,
         PANEL_ACTION_LOGOUT,
         PANEL_ACTION_RUN,
        PANEL_ACTION_FORCE_QUIT,
diff --git a/gnome-panel/panel-icon-names.h b/gnome-panel/panel-icon-names.h
index 8080ce89d..c396dc91a 100644
--- a/gnome-panel/panel-icon-names.h
+++ b/gnome-panel/panel-icon-names.h
@@ -19,7 +19,6 @@
 #define PANEL_ICON_HOME                        "user-home"
 #define PANEL_ICON_HIBERNATE           "gnome-panel-hibernate"
 #define PANEL_ICON_LAUNCHER            "gnome-panel-launcher"
-#define PANEL_ICON_LOCKSCREEN          "system-lock-screen"
 #define PANEL_ICON_LOGOUT              "system-log-out"
 #define PANEL_ICON_MAIN_MENU           "start-here"
 #define PANEL_ICON_NETWORK             "network-workgroup"
diff --git a/gnome-panel/panel-object-loader.c b/gnome-panel/panel-object-loader.c
index 39198b733..8c8ccae06 100644
--- a/gnome-panel/panel-object-loader.c
+++ b/gnome-panel/panel-object-loader.c
@@ -424,6 +424,11 @@ panel_object_iid_to_type (const char       *iid,
                         if (d[0] == '\0')
                                 return FALSE;
 
+                        if (g_strcmp0 (d, "lock") == 0) {
+                                *type = PANEL_OBJECT_APPLET;
+                                return TRUE;
+                        }
+
                         *type = panel_object_iid_map[i].type;
                         if (detail)
                                 *detail = g_strdup (d);
diff --git a/po/POTFILES.in b/po/POTFILES.in
index c1552ff18..5abfb1410 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -7,7 +7,6 @@ data/org.gnome.gnome-panel.applet.workspace-switcher.gschema.xml
 data/org.gnome.gnome-panel.gschema.xml
 data/org.gnome.gnome-panel.object.gschema.xml
 data/org.gnome.gnome-panel.toplevel.gschema.xml
-gnome-panel/applet.c
 gnome-panel/button-widget.c
 gnome-panel/gnome-panel.desktop.in
 gnome-panel/gp-add-applet-window.c
@@ -16,7 +15,6 @@ gnome-panel/gp-main.c
 gnome-panel/gp-properties-dialog.c
 gnome-panel/gp-properties-dialog.ui
 gnome-panel/libpanel-util/panel-error.c
-gnome-panel/libpanel-util/panel-launch.c
 gnome-panel/libpanel-util/panel-show.c
 gnome-panel/panel-action-button.c
 gnome-panel/panel-addto-dialog.c


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]