[gnome-panel/wip/muktupavels/remove-drag-source: 3/4] action-button: remove drag source



commit fdc00ee493b412711e1aec8d103d1398c413caeb
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Sun Apr 12 22:45:45 2020 +0300

    action-button: remove drag source
    
    There is no reason why action buttons needs to be draggable.

 gnome-panel/applet.c              | 21 ----------
 gnome-panel/panel-action-button.c | 86 +--------------------------------------
 gnome-panel/panel-action-button.h |  3 --
 gnome-panel/panel-util.c          | 18 --------
 gnome-panel/panel-util.h          |  2 -
 5 files changed, 1 insertion(+), 129 deletions(-)
---
diff --git a/gnome-panel/applet.c b/gnome-panel/applet.c
index fa4698dc8..ece1599e9 100644
--- a/gnome-panel/applet.c
+++ b/gnome-panel/applet.c
@@ -44,25 +44,6 @@ panel_applet_get_panel_widget (AppletInfo *info)
        return PANEL_WIDGET (gtk_widget_get_parent (info->widget));
 }
 
-static void
-panel_applet_set_dnd_enabled (AppletInfo *info,
-                             gboolean    dnd_enabled)
-{
-       switch (info->type) {
-       case PANEL_OBJECT_LAUNCHER:
-               break;
-       case PANEL_OBJECT_APPLET:
-               break;
-       case PANEL_OBJECT_ACTION:
-               panel_action_button_set_dnd_enabled (PANEL_ACTION_BUTTON (info->widget),
-                                                    dnd_enabled);
-               break;
-       default:
-               g_assert_not_reached ();
-               break;
-       }
-}
-
 static void
 move_applet_callback (GtkWidget *widget, AppletInfo *info)
 {
@@ -829,8 +810,6 @@ panel_applet_register (GtkWidget       *applet,
                          G_CALLBACK (panel_applet_destroy),
                          info);
 
-       panel_applet_set_dnd_enabled (info, TRUE);
-
        gtk_widget_show (applet);
 
        orientation_change (info, panel);
diff --git a/gnome-panel/panel-action-button.c b/gnome-panel/panel-action-button.c
index bdda91b81..3eac4d328 100644
--- a/gnome-panel/panel-action-button.c
+++ b/gnome-panel/panel-action-button.c
@@ -50,15 +50,12 @@
 
 enum {
        PROP_0,
-       PROP_ACTION_TYPE,
-       PROP_DND_ENABLED
+       PROP_ACTION_TYPE
 };
 
 struct _PanelActionButtonPrivate {
        PanelActionButtonType  type;
        AppletInfo            *info;
-
-       guint                  dnd_enabled : 1;
 };
 
 G_DEFINE_TYPE_WITH_PRIVATE (PanelActionButton, panel_action_button, BUTTON_TYPE_WIDGET)
@@ -513,9 +510,6 @@ panel_action_button_get_property (GObject    *object,
        case PROP_ACTION_TYPE:
                g_value_set_enum (value, button->priv->type);
                break;
-       case PROP_DND_ENABLED:
-               g_value_set_boolean (value, button->priv->dnd_enabled);
-               break;
        default:
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
                break;
@@ -539,41 +533,12 @@ panel_action_button_set_property (GObject      *object,
                panel_action_button_set_type (button,
                                              g_value_get_enum (value));
                break;
-       case PROP_DND_ENABLED:
-               panel_action_button_set_dnd_enabled (button,
-                                                    g_value_get_boolean (value));
-               break;
        default:
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
                break;
        }
 }
 
-static void
-panel_action_button_drag_data_get (GtkWidget          *widget,
-                                  GdkDragContext     *context,
-                                  GtkSelectionData   *selection_data,
-                                  guint               info,
-                                  guint               time)
-{
-       PanelActionButton *button;
-       char              *drag_data;
-
-       g_return_if_fail (PANEL_IS_ACTION_BUTTON (widget));
-
-       button = PANEL_ACTION_BUTTON (widget);
-
-       drag_data = g_strdup_printf ("ACTION:%s:%d", 
-                                    panel_enum_to_string (button->priv->type),
-                                    panel_find_applet_index (widget));
-
-       gtk_selection_data_set (
-               selection_data, gtk_selection_data_get_target (selection_data),
-               8, (guchar *) drag_data, strlen (drag_data));
-
-       g_free (drag_data);
-}
-
 static void
 panel_action_button_clicked (GtkButton *gtk_button)
 {
@@ -594,15 +559,12 @@ static void
 panel_action_button_class_init (PanelActionButtonClass *klass)
 {
        GObjectClass   *gobject_class = (GObjectClass *) klass;
-       GtkWidgetClass *widget_class  = (GtkWidgetClass *) klass;
        GtkButtonClass *button_class  = (GtkButtonClass *) klass;
 
        gobject_class->finalize     = panel_action_button_finalize;
        gobject_class->get_property = panel_action_button_get_property;
        gobject_class->set_property = panel_action_button_set_property;
 
-       widget_class->drag_data_get = panel_action_button_drag_data_get;
-
        button_class->clicked       = panel_action_button_clicked;
 
        g_object_class_install_property (
@@ -614,15 +576,6 @@ panel_action_button_class_init (PanelActionButtonClass *klass)
                                           PANEL_TYPE_ACTION_BUTTON_TYPE,
                                           PANEL_ORIENTATION_TOP,
                                           G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
-       g_object_class_install_property (
-                       gobject_class,
-                       PROP_DND_ENABLED,
-                       g_param_spec_boolean ("dnd-enabled",
-                                             "Drag and drop enabled",
-                                             "Whether or not drag and drop is enabled on the widget",
-                                             TRUE,
-                                             G_PARAM_READWRITE));
 }
 
 static void
@@ -632,8 +585,6 @@ panel_action_button_init (PanelActionButton *button)
 
        button->priv->type = PANEL_ACTION_NONE;
        button->priv->info = NULL;
-
-       button->priv->dnd_enabled  = FALSE;
 }
 
 void
@@ -794,38 +745,3 @@ panel_action_button_load_from_drag (PanelToplevel       *toplevel,
 
        return retval;
 }
-
-void
-panel_action_button_set_dnd_enabled (PanelActionButton *button,
-                                    gboolean           enabled)
-{
-       g_return_if_fail (PANEL_IS_ACTION_BUTTON (button));
-
-       if (!button->priv->type)
-               return; /* wait until we know what type it is */
-
-       enabled = enabled != FALSE;
-
-       if (button->priv->dnd_enabled == enabled)
-               return;
-
-       if (enabled) {
-               static GtkTargetEntry dnd_targets [] = {
-                       { (gchar *) "application/x-panel-applet-internal", 0, 0 }
-               };
-
-               gtk_widget_set_has_window (GTK_WIDGET (button), TRUE);
-               gtk_drag_source_set (GTK_WIDGET (button), GDK_BUTTON1_MASK,
-                                    dnd_targets, 1,
-                                    GDK_ACTION_COPY | GDK_ACTION_MOVE);
-               if (actions [button->priv->type].icon_name != NULL)
-                       gtk_drag_source_set_icon_name (GTK_WIDGET (button),
-                                                      actions [button->priv->type].icon_name);
-               gtk_widget_set_has_window (GTK_WIDGET (button), FALSE);
-       } else
-               gtk_drag_source_unset (GTK_WIDGET (button));
-
-       button->priv->dnd_enabled = enabled;
-
-       g_object_notify (G_OBJECT (button), "dnd-enabled");
-}
diff --git a/gnome-panel/panel-action-button.h b/gnome-panel/panel-action-button.h
index 187a03da4..b819ed026 100644
--- a/gnome-panel/panel-action-button.h
+++ b/gnome-panel/panel-action-button.h
@@ -70,9 +70,6 @@ void       panel_action_button_load             (PanelWidget            *panel,
 void       panel_action_button_invoke_menu      (PanelActionButton      *button,
                                                 const char             *callback_name);
 
-void       panel_action_button_set_dnd_enabled  (PanelActionButton      *button,
-                                                gboolean                dnd_enabled);
-
 gboolean   panel_action_button_load_from_drag   (PanelToplevel          *toplevel,
                                                 PanelObjectPackType     pack_type,
                                                 int                     pack_index,
diff --git a/gnome-panel/panel-util.c b/gnome-panel/panel-util.c
index 163436773..36c54e6c2 100644
--- a/gnome-panel/panel-util.c
+++ b/gnome-panel/panel-util.c
@@ -71,24 +71,6 @@ panel_util_make_exec_uri_for_desktop (const char *exec)
        return g_string_free (str, FALSE);
 }
 
-int
-panel_find_applet_index (GtkWidget *widget)
-{
-       GSList *applet_list, *l;
-       int     i;
-
-       applet_list = panel_applet_list_applets ();
-
-       for (i = 0, l = applet_list; l; i++, l = l->next) {
-               AppletInfo *info = l->data;
-
-               if (info->widget == widget)
-                       return i;
-       }
-
-       return i;
-}
-
 void
 panel_push_window_busy (GtkWidget *window)
 {
diff --git a/gnome-panel/panel-util.h b/gnome-panel/panel-util.h
index 3123b3fda..30a10c0f6 100644
--- a/gnome-panel/panel-util.h
+++ b/gnome-panel/panel-util.h
@@ -10,8 +10,6 @@ G_BEGIN_DECLS
 
 char *          panel_util_make_exec_uri_for_desktop (const char *exec);
 
-int            panel_find_applet_index (GtkWidget *widget);
-
 void           panel_push_window_busy  (GtkWidget *window);
 void           panel_pop_window_busy   (GtkWidget *window);
 


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