[gnome-panel/wip/muktupavels/remove-drag-source: 1/2] action-button: remove drag source
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-panel/wip/muktupavels/remove-drag-source: 1/2] action-button: remove drag source
- Date: Sun, 12 Apr 2020 22:48:32 +0000 (UTC)
commit c9616c6541da6fce606e4776961e74aabf6c91a4
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 | 109 +++-----------------------------------
gnome-panel/panel-action-button.h | 8 +--
gnome-panel/panel-util.c | 18 -------
gnome-panel/panel-util.h | 2 -
gnome-panel/panel.c | 25 ++-------
6 files changed, 14 insertions(+), 169 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..4f8e35c2e 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
@@ -753,19 +704,17 @@ panel_action_button_invoke_menu (PanelActionButton *button,
actions [button->priv->type].invoke_menu (button, callback_name);
}
-gboolean
+void
panel_action_button_load_from_drag (PanelToplevel *toplevel,
PanelObjectPackType pack_type,
int pack_index,
- const char *drag_string,
- int *old_applet_idx)
+ const char *drag_string)
{
PanelActionButtonType type = PANEL_ACTION_NONE;
- gboolean retval = FALSE;
char **elements;
if (strncmp (drag_string, "ACTION:", strlen ("ACTION:")))
- return retval;
+ return;
elements = g_strsplit (drag_string, ":", 0);
@@ -773,59 +722,17 @@ panel_action_button_load_from_drag (PanelToplevel *toplevel,
if (!elements [1] || !elements [2]) {
g_strfreev (elements);
- return retval;
+ return;
}
if (!panel_string_to_enum (elements [1], (gpointer) &type)) {
g_strfreev (elements);
- return retval;
- }
-
- g_return_val_if_fail (type > PANEL_ACTION_NONE && type < PANEL_ACTION_LAST, FALSE);
-
- if (strcmp (elements [2], "NEW")) {
- *old_applet_idx = strtol (elements [2], NULL, 10);
- retval = TRUE; /* Remove the old applet */
+ return;
}
g_strfreev (elements);
- panel_action_button_create (toplevel, pack_type, pack_index, type);
-
- 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;
+ g_return_if_fail (type > PANEL_ACTION_NONE && type < PANEL_ACTION_LAST);
- 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");
+ panel_action_button_create (toplevel, pack_type, pack_index, type);
}
diff --git a/gnome-panel/panel-action-button.h b/gnome-panel/panel-action-button.h
index 187a03da4..902cf6e3e 100644
--- a/gnome-panel/panel-action-button.h
+++ b/gnome-panel/panel-action-button.h
@@ -70,14 +70,10 @@ 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,
+void panel_action_button_load_from_drag (PanelToplevel *toplevel,
PanelObjectPackType pack_type,
int pack_index,
- const char *drag_string,
- int *old_applet_idx);
+ const char *drag_string);
gboolean panel_action_get_is_disabled (PanelActionButtonType type);
GCallback panel_action_get_invoke (PanelActionButtonType type);
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);
diff --git a/gnome-panel/panel.c b/gnome-panel/panel.c
index 2d04b3906..b770b54bf 100644
--- a/gnome-panel/panel.c
+++ b/gnome-panel/panel.c
@@ -690,8 +690,6 @@ drop_internal_applet (PanelWidget *panel,
const char *applet_type,
int action)
{
- int applet_index = -1;
- gboolean remove_applet = FALSE;
gboolean success = FALSE;
if (applet_type == NULL)
@@ -699,16 +697,14 @@ drop_internal_applet (PanelWidget *panel,
if (!strncmp (applet_type, "ACTION:", strlen ("ACTION:"))) {
if (panel_layout_is_writable ()) {
- remove_applet = panel_action_button_load_from_drag (
- panel->toplevel,
- pack_type, pack_index,
- applet_type,
- &applet_index);
+ panel_action_button_load_from_drag (panel->toplevel,
+ pack_type,
+ pack_index,
+ applet_type);
success = TRUE;
} else {
success = FALSE;
}
-
} else if (!strcmp(applet_type,"LAUNCHER:ASK")) {
if (panel_layout_is_writable ()) {
ask_about_launcher (NULL, panel, pack_type);
@@ -718,19 +714,6 @@ drop_internal_applet (PanelWidget *panel,
}
}
- if (remove_applet &&
- action == GDK_ACTION_MOVE) {
- AppletInfo *info;
- GSList *applet_list;
-
- applet_list = panel_applet_list_applets ();
-
- info = g_slist_nth_data (applet_list, applet_index);
-
- if (info)
- panel_layout_delete_object (panel_applet_get_id (info));
- }
-
return success;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]