[gtk+/wip/otte/gtk4: 12/127] API: menu: Remove tearoff support
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/otte/gtk4: 12/127] API: menu: Remove tearoff support
- Date: Sat, 8 Oct 2016 03:11:12 +0000 (UTC)
commit 2efcd6abe54418c80824b08f51b9ada887968684
Author: Benjamin Otte <otte redhat com>
Date: Mon Sep 5 03:09:20 2016 +0200
API: menu: Remove tearoff support
gtk/deprecated/Makefile.inc | 2 -
gtk/deprecated/gtkaction.c | 1 -
gtk/deprecated/gtktearoffmenuitem.c | 328 ----------------
gtk/deprecated/gtktearoffmenuitem.h | 81 ----
gtk/deprecated/gtkuimanager.c | 175 +---------
gtk/deprecated/gtkuimanager.h | 5 -
gtk/gtk.h | 1 -
gtk/gtkcombobox.c | 202 +----------
gtk/gtkcombobox.h | 12 -
gtk/gtkmenu.c | 706 ++---------------------------------
gtk/gtkmenu.h | 15 -
gtk/gtkmenuitem.c | 20 +-
gtk/gtkmenuprivate.h | 12 -
gtk/gtkmenushell.c | 21 +-
gtk/gtktreemenu.c | 102 +-----
gtk/gtktreemenu.h | 3 -
tests/testmerge.c | 15 -
17 files changed, 33 insertions(+), 1668 deletions(-)
---
diff --git a/gtk/deprecated/Makefile.inc b/gtk/deprecated/Makefile.inc
index d2afb95..1eb292a 100644
--- a/gtk/deprecated/Makefile.inc
+++ b/gtk/deprecated/Makefile.inc
@@ -28,7 +28,6 @@ deprecated_h_sources = \
deprecated/gtkstyleproperties.h \
deprecated/gtksymboliccolor.h \
deprecated/gtktable.h \
- deprecated/gtktearoffmenuitem.h \
deprecated/gtkthemingengine.h \
deprecated/gtktoggleaction.h \
deprecated/gtkuimanager.h \
@@ -76,7 +75,6 @@ deprecated_c_sources = \
deprecated/gtkstyleproperties.c \
deprecated/gtksymboliccolor.c \
deprecated/gtktable.c \
- deprecated/gtktearoffmenuitem.c \
deprecated/gtkthemingengine.c \
deprecated/gtktoggleaction.c \
deprecated/gtkuimanager.c \
diff --git a/gtk/deprecated/gtkaction.c b/gtk/deprecated/gtkaction.c
index e857ab4..caedff4 100644
--- a/gtk/deprecated/gtkaction.c
+++ b/gtk/deprecated/gtkaction.c
@@ -97,7 +97,6 @@
#include "gtkmarshalers.h"
#include "gtkmenuitem.h"
#include "gtkstock.h"
-#include "gtktearoffmenuitem.h"
#include "gtktoolbutton.h"
#include "gtktoolbar.h"
#include "gtkprivate.h"
diff --git a/gtk/deprecated/gtkuimanager.c b/gtk/deprecated/gtkuimanager.c
index a0b4129..86af421 100644
--- a/gtk/deprecated/gtkuimanager.c
+++ b/gtk/deprecated/gtkuimanager.c
@@ -48,7 +48,6 @@
#include "gtkprivate.h"
#include "gtkuimanager.h"
-#include "gtktearoffmenuitem.h"
/**
* SECTION:gtkuimanager
@@ -325,8 +324,6 @@ struct _GtkUIManagerPrivate
guint last_merge_id;
guint update_tag;
-
- gboolean add_tearoffs;
};
#define NODE_INFO(node) ((Node *)node->data)
@@ -394,8 +391,6 @@ static void gtk_ui_manager_buildable_custom_tag_end (GtkBuildable *buildab
GObject *child,
const gchar *tagname,
gpointer *data);
-static void gtk_ui_manager_do_set_add_tearoffs (GtkUIManager *manager,
- gboolean add_tearoffs);
@@ -413,7 +408,6 @@ enum
enum
{
PROP_0,
- PROP_ADD_TEAROFFS,
PROP_UI
};
@@ -437,28 +431,6 @@ gtk_ui_manager_class_init (GtkUIManagerClass *klass)
klass->get_widget = gtk_ui_manager_real_get_widget;
klass->get_action = gtk_ui_manager_real_get_action;
- /**
- * GtkUIManager:add-tearoffs:
- *
- * The "add-tearoffs" property controls whether generated menus
- * have tearoff menu items.
- *
- * Note that this only affects regular menus. Generated popup
- * menus never have tearoff menu items.
- *
- * Since: 2.4
- *
- * Deprecated: 3.4: Tearoff menus are deprecated and should not
- * be used in newly written code.
- */
- g_object_class_install_property (gobject_class,
- PROP_ADD_TEAROFFS,
- g_param_spec_boolean ("add-tearoffs",
- P_("Add tearoffs to menus"),
- P_("Whether tearoff menu items should be added to
menus"),
- FALSE,
- GTK_PARAM_READWRITE | G_PARAM_DEPRECATED));
-
g_object_class_install_property (gobject_class,
PROP_UI,
g_param_spec_string ("ui",
@@ -635,7 +607,6 @@ gtk_ui_manager_init (GtkUIManager *manager)
manager->private_data->action_groups = NULL;
manager->private_data->last_merge_id = 0;
- manager->private_data->add_tearoffs = FALSE;
merge_id = gtk_ui_manager_new_merge_id (manager);
node = get_child_node (manager, NULL, NULL, "ui", 2,
@@ -749,13 +720,8 @@ gtk_ui_manager_set_property (GObject *object,
const GValue *value,
GParamSpec *pspec)
{
- GtkUIManager *manager = GTK_UI_MANAGER (object);
-
switch (prop_id)
{
- case PROP_ADD_TEAROFFS:
- gtk_ui_manager_do_set_add_tearoffs (manager, g_value_get_boolean (value));
- break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -772,9 +738,6 @@ gtk_ui_manager_get_property (GObject *object,
switch (prop_id)
{
- case PROP_ADD_TEAROFFS:
- g_value_set_boolean (value, manager->private_data->add_tearoffs);
- break;
case PROP_UI:
g_value_take_string (value, gtk_ui_manager_get_ui (manager));
break;
@@ -838,71 +801,6 @@ gtk_ui_manager_new (void)
return g_object_new (GTK_TYPE_UI_MANAGER, NULL);
}
-
-/**
- * gtk_ui_manager_get_add_tearoffs:
- * @manager: a #GtkUIManager
- *
- * Returns whether menus generated by this #GtkUIManager
- * will have tearoff menu items.
- *
- * Returns: whether tearoff menu items are added
- *
- * Since: 2.4
- *
- * Deprecated: 3.4: Tearoff menus are deprecated and should not
- * be used in newly written code.
- **/
-gboolean
-gtk_ui_manager_get_add_tearoffs (GtkUIManager *manager)
-{
- g_return_val_if_fail (GTK_IS_UI_MANAGER (manager), FALSE);
-
- return manager->private_data->add_tearoffs;
-}
-
-
-/**
- * gtk_ui_manager_set_add_tearoffs:
- * @manager: a #GtkUIManager
- * @add_tearoffs: whether tearoff menu items are added
- *
- * Sets the “add_tearoffs” property, which controls whether menus
- * generated by this #GtkUIManager will have tearoff menu items.
- *
- * Note that this only affects regular menus. Generated popup
- * menus never have tearoff menu items.
- *
- * Since: 2.4
- *
- * Deprecated: 3.4: Tearoff menus are deprecated and should not
- * be used in newly written code.
- **/
-void
-gtk_ui_manager_set_add_tearoffs (GtkUIManager *manager,
- gboolean add_tearoffs)
-{
- g_return_if_fail (GTK_IS_UI_MANAGER (manager));
-
- gtk_ui_manager_do_set_add_tearoffs (manager, add_tearoffs);
-}
-
-static void
-gtk_ui_manager_do_set_add_tearoffs (GtkUIManager *manager,
- gboolean add_tearoffs)
-{
- add_tearoffs = add_tearoffs != FALSE;
-
- if (add_tearoffs != manager->private_data->add_tearoffs)
- {
- manager->private_data->add_tearoffs = add_tearoffs;
-
- dirty_all_nodes (manager);
-
- g_object_notify (G_OBJECT (manager), "add-tearoffs");
- }
-}
-
static void
cb_proxy_connect_proxy (GtkActionGroup *group,
GtkAction *action,
@@ -2289,7 +2187,6 @@ find_menu_position (GNode *node,
if (node->prev == NULL)
{
GNode *parent;
- GList *siblings;
parent = node->parent;
switch (NODE_INFO (parent)->type)
@@ -2303,18 +2200,6 @@ find_menu_position (GNode *node,
menushell = NODE_INFO (parent)->proxy;
if (GTK_IS_MENU_ITEM (menushell))
menushell = gtk_menu_item_get_submenu (GTK_MENU_ITEM (menushell));
- siblings = gtk_container_get_children (GTK_CONTAINER (menushell));
-
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-
- if (siblings != NULL && GTK_IS_TEAROFF_MENU_ITEM (siblings->data))
- pos = 1;
- else
- pos = 0;
-
-G_GNUC_END_IGNORE_DEPRECATIONS
-
- g_list_free (siblings);
break;
case NODE_TYPE_MENU_PLACEHOLDER:
menushell = gtk_widget_get_parent (NODE_INFO (parent)->proxy);
@@ -2495,9 +2380,7 @@ update_smart_separators (GtkWidget *proxy)
{
last = NULL;
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-
- if (GTK_IS_TEAROFF_MENU_ITEM (cur->data) || cur->data == filler)
+ if (cur->data == filler)
visible = FALSE;
else
{
@@ -2505,8 +2388,6 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
empty = FALSE;
}
-G_GNUC_END_IGNORE_DEPRECATIONS
-
}
cur = cur->next;
@@ -2596,35 +2477,7 @@ update_node (GtkUIManager *manager,
* we only have to update the tearoff menu items.
*/
if (info->proxy != NULL && action == info->action)
- {
- if (info->type == NODE_TYPE_MENU)
- {
- GtkWidget *menu;
- GList *siblings;
-
- if (GTK_IS_MENU (info->proxy))
- menu = info->proxy;
- else
- menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (info->proxy));
- siblings = gtk_container_get_children (GTK_CONTAINER (menu));
-
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-
- if (siblings != NULL && GTK_IS_TEAROFF_MENU_ITEM (siblings->data))
- {
- if (manager->private_data->add_tearoffs && !in_popup)
- gtk_widget_show (GTK_WIDGET (siblings->data));
- else
- gtk_widget_hide (GTK_WIDGET (siblings->data));
- }
-
-G_GNUC_END_IGNORE_DEPRECATIONS
-
- g_list_free (siblings);
- }
-
- goto recurse_children;
- }
+ goto recurse_children;
switch (info->type)
{
@@ -2650,7 +2503,6 @@ G_GNUC_END_IGNORE_DEPRECATIONS
{
GtkWidget *prev_submenu = NULL;
GtkWidget *menu = NULL;
- GList *siblings;
/* remove the proxy if it is of the wrong type ... */
if (info->proxy &&
@@ -2688,18 +2540,11 @@ G_GNUC_END_IGNORE_DEPRECATIONS
if (!menu)
{
- GtkWidget *tearoff;
GtkWidget *filler;
menu = gtk_menu_new ();
gtk_widget_set_name (menu, info->name);
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
- tearoff = gtk_tearoff_menu_item_new ();
-G_GNUC_END_IGNORE_DEPRECATIONS
-
- gtk_widget_set_no_show_all (tearoff, TRUE);
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), tearoff);
filler = gtk_menu_item_new_with_label (_("Empty"));
g_object_set_data (G_OBJECT (filler),
I_("gtk-empty-menu-item"),
@@ -2748,22 +2593,6 @@ G_GNUC_END_IGNORE_DEPRECATIONS
menu = info->proxy;
else
menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (info->proxy));
-
- siblings = gtk_container_get_children (GTK_CONTAINER (menu));
-
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-
- if (siblings != NULL && GTK_IS_TEAROFF_MENU_ITEM (siblings->data))
- {
- if (manager->private_data->add_tearoffs && !in_popup)
- gtk_widget_show (GTK_WIDGET (siblings->data));
- else
- gtk_widget_hide (GTK_WIDGET (siblings->data));
- }
-
-G_GNUC_END_IGNORE_DEPRECATIONS
-
- g_list_free (siblings);
}
break;
case NODE_TYPE_UNDECIDED:
diff --git a/gtk/deprecated/gtkuimanager.h b/gtk/deprecated/gtkuimanager.h
index 714d8ef..371d7cc 100644
--- a/gtk/deprecated/gtkuimanager.h
+++ b/gtk/deprecated/gtkuimanager.h
@@ -128,11 +128,6 @@ GDK_DEPRECATED_IN_3_10
GType gtk_ui_manager_get_type (void) G_GNUC_CONST;
GDK_DEPRECATED_IN_3_10
GtkUIManager *gtk_ui_manager_new (void);
-GDK_DEPRECATED_IN_3_4
-void gtk_ui_manager_set_add_tearoffs (GtkUIManager *manager,
- gboolean add_tearoffs);
-GDK_DEPRECATED_IN_3_4
-gboolean gtk_ui_manager_get_add_tearoffs (GtkUIManager *manager);
GDK_DEPRECATED_IN_3_10
void gtk_ui_manager_insert_action_group (GtkUIManager *manager,
diff --git a/gtk/gtk.h b/gtk/gtk.h
index cdc4648..518b882 100644
--- a/gtk/gtk.h
+++ b/gtk/gtk.h
@@ -273,7 +273,6 @@
#include <gtk/deprecated/gtkstyleproperties.h>
#include <gtk/deprecated/gtksymboliccolor.h>
#include <gtk/deprecated/gtktable.h>
-#include <gtk/deprecated/gtktearoffmenuitem.h>
#include <gtk/deprecated/gtkthemingengine.h>
#include <gtk/deprecated/gtktoggleaction.h>
#include <gtk/deprecated/gtkuimanager.h>
diff --git a/gtk/gtkcombobox.c b/gtk/gtkcombobox.c
index 63d130f..c40dd6b 100644
--- a/gtk/gtkcombobox.c
+++ b/gtk/gtkcombobox.c
@@ -36,7 +36,6 @@
#include "gtkmenuprivate.h"
#include "gtkmenushellprivate.h"
#include "gtkscrolledwindow.h"
-#include "deprecated/gtktearoffmenuitem.h"
#include "gtktogglebutton.h"
#include "gtktreeselection.h"
#include "gtkwidgetpath.h"
@@ -170,7 +169,6 @@ struct _GtkComboBoxPrivate
guint popup_in_progress : 1;
guint popup_shown : 1;
- guint add_tearoffs : 1;
guint has_frame : 1;
guint is_cell_renderer : 1;
guint editing_canceled : 1;
@@ -184,8 +182,6 @@ struct _GtkComboBoxPrivate
GDestroyNotify row_separator_destroy;
GdkDevice *grab_pointer;
-
- gchar *tearoff_title;
};
/* While debugging this evil code, I have learned that
@@ -250,8 +246,6 @@ enum {
PROP_ROW_SPAN_COLUMN,
PROP_COLUMN_SPAN_COLUMN,
PROP_ACTIVE,
- PROP_ADD_TEAROFFS,
- PROP_TEAROFF_TITLE,
PROP_HAS_FRAME,
PROP_POPUP_SHOWN,
PROP_BUTTON_SENSITIVITY,
@@ -385,7 +379,6 @@ static void gtk_combo_box_list_popup_resize (GtkComboBox *combo_box)
/* menu */
static void gtk_combo_box_menu_setup (GtkComboBox *combo_box);
-static void gtk_combo_box_update_title (GtkComboBox *combo_box);
static void gtk_combo_box_menu_destroy (GtkComboBox *combo_box);
@@ -997,26 +990,6 @@ gtk_combo_box_class_init (GtkComboBoxClass *klass)
GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
/**
- * GtkComboBox:add-tearoffs:
- *
- * The add-tearoffs property controls whether generated menus
- * have tearoff menu items.
- *
- * Note that this only affects menu style combo boxes.
- *
- * Since: 2.6
- *
- * Deprecated: 3.10
- */
- g_object_class_install_property (object_class,
- PROP_ADD_TEAROFFS,
- g_param_spec_boolean ("add-tearoffs",
- P_("Add tearoffs to menus"),
- P_("Whether dropdowns should have a tearoff menu
item"),
- FALSE,
-
GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY|G_PARAM_DEPRECATED));
-
- /**
* GtkComboBox:has-frame:
*
* The has-frame property controls whether a frame
@@ -1033,25 +1006,6 @@ gtk_combo_box_class_init (GtkComboBoxClass *klass)
GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
/**
- * GtkComboBox:tearoff-title:
- *
- * A title that may be displayed by the window manager
- * when the popup is torn-off.
- *
- * Since: 2.10
- *
- * Deprecated: 3.10
- */
- g_object_class_install_property (object_class,
- PROP_TEAROFF_TITLE,
- g_param_spec_string ("tearoff-title",
- P_("Tearoff Title"),
- P_("A title that may be displayed by the window
manager when the popup is torn-off"),
- NULL,
-
GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY|G_PARAM_DEPRECATED));
-
-
- /**
* GtkComboBox:popup-shown:
*
* Whether the combo boxes dropdown is popped up.
@@ -1303,7 +1257,6 @@ gtk_combo_box_init (GtkComboBox *combo_box)
priv->row_column = -1;
priv->popup_shown = FALSE;
- priv->add_tearoffs = FALSE;
priv->has_frame = TRUE;
priv->is_cell_renderer = FALSE;
priv->editing_canceled = FALSE;
@@ -1366,12 +1319,6 @@ gtk_combo_box_set_property (GObject *object,
gtk_combo_box_set_active (combo_box, g_value_get_int (value));
break;
- case PROP_ADD_TEAROFFS:
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
- gtk_combo_box_set_add_tearoffs (combo_box, g_value_get_boolean (value));
-G_GNUC_END_IGNORE_DEPRECATIONS;
- break;
-
case PROP_HAS_FRAME:
if (priv->has_frame != g_value_get_boolean (value))
{
@@ -1383,12 +1330,6 @@ G_GNUC_END_IGNORE_DEPRECATIONS;
}
break;
- case PROP_TEAROFF_TITLE:
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
- gtk_combo_box_set_title (combo_box, g_value_get_string (value));
-G_GNUC_END_IGNORE_DEPRECATIONS;
- break;
-
case PROP_POPUP_SHOWN:
if (g_value_get_boolean (value))
gtk_combo_box_popup (combo_box);
@@ -1483,22 +1424,10 @@ gtk_combo_box_get_property (GObject *object,
g_value_set_int (value, gtk_combo_box_get_active (combo_box));
break;
- case PROP_ADD_TEAROFFS:
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
- g_value_set_boolean (value, gtk_combo_box_get_add_tearoffs (combo_box));
-G_GNUC_END_IGNORE_DEPRECATIONS;
- break;
-
case PROP_HAS_FRAME:
g_value_set_boolean (value, priv->has_frame);
break;
- case PROP_TEAROFF_TITLE:
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
- g_value_set_string (value, gtk_combo_box_get_title (combo_box));
-G_GNUC_END_IGNORE_DEPRECATIONS;
- break;
-
case PROP_POPUP_SHOWN:
g_value_set_boolean (value, priv->popup_shown);
break;
@@ -2126,9 +2055,6 @@ gtk_combo_box_menu_popup (GtkComboBox *combo_box,
path = gtk_tree_row_reference_get_path (priv->active_row);
active_item = gtk_tree_path_get_indices (path)[0];
gtk_tree_path_free (path);
-
- if (priv->add_tearoffs)
- active_item++;
}
/* FIXME handle nested menus better */
@@ -2756,7 +2682,6 @@ gtk_combo_box_menu_setup (GtkComboBox *combo_box)
_gtk_tree_menu_set_wrap_width (GTK_TREE_MENU (menu), priv->wrap_width);
_gtk_tree_menu_set_row_span_column (GTK_TREE_MENU (menu), priv->row_column);
_gtk_tree_menu_set_column_span_column (GTK_TREE_MENU (menu), priv->col_column);
- _gtk_tree_menu_set_tearoff (GTK_TREE_MENU (menu), priv->add_tearoffs);
g_signal_connect (menu, "menu-activate",
G_CALLBACK (gtk_combo_box_menu_activate), combo_box);
@@ -2770,7 +2695,7 @@ gtk_combo_box_menu_setup (GtkComboBox *combo_box)
G_CALLBACK (gtk_combo_box_menu_key_press), combo_box);
gtk_combo_box_set_popup_widget (combo_box, menu);
- gtk_combo_box_update_title (combo_box);
+ gtk_combo_box_check_appearance (combo_box);
}
static void
@@ -4338,7 +4263,6 @@ gtk_combo_box_finalize (GObject *object)
{
GtkComboBox *combo_box = GTK_COMBO_BOX (object);
- g_free (combo_box->priv->tearoff_title);
g_clear_object (&combo_box->priv->gadget);
G_OBJECT_CLASS (gtk_combo_box_parent_class)->finalize (object);
@@ -4472,130 +4396,6 @@ gtk_combo_box_start_editing (GtkCellEditable *cell_editable,
}
}
-
-/**
- * gtk_combo_box_get_add_tearoffs:
- * @combo_box: a #GtkComboBox
- *
- * Gets the current value of the :add-tearoffs property.
- *
- * Returns: the current value of the :add-tearoffs property.
- *
- * Deprecated: 3.10
- */
-gboolean
-gtk_combo_box_get_add_tearoffs (GtkComboBox *combo_box)
-{
- g_return_val_if_fail (GTK_IS_COMBO_BOX (combo_box), FALSE);
-
- return combo_box->priv->add_tearoffs;
-}
-
-/**
- * gtk_combo_box_set_add_tearoffs:
- * @combo_box: a #GtkComboBox
- * @add_tearoffs: %TRUE to add tearoff menu items
- *
- * Sets whether the popup menu should have a tearoff
- * menu item.
- *
- * Since: 2.6
- *
- * Deprecated: 3.10
- */
-void
-gtk_combo_box_set_add_tearoffs (GtkComboBox *combo_box,
- gboolean add_tearoffs)
-{
- GtkComboBoxPrivate *priv;
-
- g_return_if_fail (GTK_IS_COMBO_BOX (combo_box));
-
- priv = combo_box->priv;
- add_tearoffs = add_tearoffs != FALSE;
-
- if (priv->add_tearoffs != add_tearoffs)
- {
- priv->add_tearoffs = add_tearoffs;
- gtk_combo_box_check_appearance (combo_box);
-
- if (GTK_IS_TREE_MENU (priv->popup_widget))
- _gtk_tree_menu_set_tearoff (GTK_TREE_MENU (priv->popup_widget),
- priv->add_tearoffs);
-
- g_object_notify (G_OBJECT (combo_box), "add-tearoffs");
- }
-}
-
-/**
- * gtk_combo_box_get_title:
- * @combo_box: a #GtkComboBox
- *
- * Gets the current title of the menu in tearoff mode. See
- * gtk_combo_box_set_add_tearoffs().
- *
- * Returns: the menu’s title in tearoff mode. This is an internal copy of the
- * string which must not be freed.
- *
- * Since: 2.10
- *
- * Deprecated: 3.10
- */
-const gchar*
-gtk_combo_box_get_title (GtkComboBox *combo_box)
-{
- g_return_val_if_fail (GTK_IS_COMBO_BOX (combo_box), NULL);
-
- return combo_box->priv->tearoff_title;
-}
-
-static void
-gtk_combo_box_update_title (GtkComboBox *combo_box)
-{
- GtkComboBoxPrivate *priv = combo_box->priv;
-
- gtk_combo_box_check_appearance (combo_box);
-
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
- if (priv->popup_widget && GTK_IS_MENU (priv->popup_widget))
- gtk_menu_set_title (GTK_MENU (priv->popup_widget), priv->tearoff_title);
-G_GNUC_END_IGNORE_DEPRECATIONS
-}
-
-/**
- * gtk_combo_box_set_title:
- * @combo_box: a #GtkComboBox
- * @title: a title for the menu in tearoff mode
- *
- * Sets the menu’s title in tearoff mode.
- *
- * Since: 2.10
- *
- * Deprecated: 3.10
- */
-void
-gtk_combo_box_set_title (GtkComboBox *combo_box,
- const gchar *title)
-{
- GtkComboBoxPrivate *priv;
-
- g_return_if_fail (GTK_IS_COMBO_BOX (combo_box));
-
- priv = combo_box->priv;
-
- if (strcmp (title ? title : "",
- priv->tearoff_title ? priv->tearoff_title : "") != 0)
- {
- g_free (priv->tearoff_title);
- priv->tearoff_title = g_strdup (title);
-
- gtk_combo_box_update_title (combo_box);
-
- g_object_notify (G_OBJECT (combo_box), "tearoff-title");
- }
-}
-
-
/**
* gtk_combo_box_set_popup_fixed_width:
* @combo_box: a #GtkComboBox
diff --git a/gtk/gtkcombobox.h b/gtk/gtkcombobox.h
index 6ba9b57..d7c859c 100644
--- a/gtk/gtkcombobox.h
+++ b/gtk/gtkcombobox.h
@@ -107,18 +107,6 @@ GDK_AVAILABLE_IN_ALL
void gtk_combo_box_set_column_span_column (GtkComboBox *combo_box,
gint column_span);
-GDK_DEPRECATED_IN_3_10
-gboolean gtk_combo_box_get_add_tearoffs (GtkComboBox *combo_box);
-GDK_DEPRECATED_IN_3_10
-void gtk_combo_box_set_add_tearoffs (GtkComboBox *combo_box,
- gboolean add_tearoffs);
-
-GDK_DEPRECATED_IN_3_10
-const gchar * gtk_combo_box_get_title (GtkComboBox *combo_box);
-GDK_DEPRECATED_IN_3_10
-void gtk_combo_box_set_title (GtkComboBox *combo_box,
- const gchar *title);
-
GDK_DEPRECATED_IN_3_20_FOR(gtk_widget_get_focus_on_click)
gboolean gtk_combo_box_get_focus_on_click (GtkComboBox *combo);
GDK_DEPRECATED_IN_3_20_FOR(gtk_widget_set_focus_on_click)
diff --git a/gtk/gtkmenu.c b/gtk/gtkmenu.c
index 8636bab..3e10e76 100644
--- a/gtk/gtkmenu.c
+++ b/gtk/gtkmenu.c
@@ -133,9 +133,6 @@
#include "gtkstylecontextprivate.h"
#include "gtkcssstylepropertyprivate.h"
-#include "deprecated/gtktearoffmenuitem.h"
-
-
#include "a11y/gtkmenuaccessible.h"
#include "gdk/gdk-private.h"
@@ -272,15 +269,11 @@ static void gtk_menu_select_item (GtkMenuShell *menu_shell,
static void gtk_menu_real_insert (GtkMenuShell *menu_shell,
GtkWidget *child,
gint position);
-static void gtk_menu_scrollbar_changed (GtkAdjustment *adjustment,
- GtkMenu *menu);
static void gtk_menu_handle_scrolling (GtkMenu *menu,
gint event_x,
gint event_y,
gboolean enter,
gboolean motion);
-static void gtk_menu_set_tearoff_hints (GtkMenu *menu,
- gint width);
static gboolean gtk_menu_focus (GtkWidget *widget,
GtkDirectionType direction);
static gint gtk_menu_get_popup_delay (GtkMenuShell *menu_shell);
@@ -302,14 +295,9 @@ static void gtk_menu_deactivate (GtkMenuShell *menu_shell);
static void gtk_menu_show_all (GtkWidget *widget);
static void gtk_menu_position (GtkMenu *menu,
gboolean set_scroll_offset);
-static void gtk_menu_reparent (GtkMenu *menu,
- GtkWidget *new_parent,
- gboolean unrealize);
static void gtk_menu_remove (GtkContainer *menu,
GtkWidget *widget);
-static void gtk_menu_update_title (GtkMenu *menu);
-
static void menu_grab_transfer_window_destroy (GtkMenu *menu);
static GdkWindow *menu_grab_transfer_window_get (GtkMenu *menu);
@@ -682,39 +670,6 @@ gtk_menu_class_init (GtkMenuClass *class)
GTK_PARAM_READWRITE));
/**
- * GtkMenu:tearoff-title:
- *
- * A title that may be displayed by the window manager when this
- * menu is torn-off.
- *
- * Deprecated: 3.10
- **/
- g_object_class_install_property (gobject_class,
- PROP_TEAROFF_TITLE,
- g_param_spec_string ("tearoff-title",
- P_("Tearoff Title"),
- P_("A title that may be displayed by the window
manager when this menu is torn-off"),
- NULL,
- GTK_PARAM_READWRITE | G_PARAM_DEPRECATED));
-
- /**
- * GtkMenu:tearoff-state:
- *
- * A boolean that indicates whether the menu is torn-off.
- *
- * Since: 2.6
- *
- * Deprecated: 3.10
- **/
- g_object_class_install_property (gobject_class,
- PROP_TEAROFF_STATE,
- g_param_spec_boolean ("tearoff-state",
- P_("Tearoff State"),
- P_("A boolean that indicates whether the menu is
torn-off"),
- FALSE,
- GTK_PARAM_READWRITE | G_PARAM_DEPRECATED));
-
- /**
* GtkMenu:monitor:
*
* The monitor the menu will be popped up on.
@@ -1123,16 +1078,6 @@ gtk_menu_set_property (GObject *object,
gtk_menu_attach_to_widget (menu, widget, NULL);
}
break;
- case PROP_TEAROFF_STATE:
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
- gtk_menu_set_tearoff_state (menu, g_value_get_boolean (value));
-G_GNUC_END_IGNORE_DEPRECATIONS;
- break;
- case PROP_TEAROFF_TITLE:
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
- gtk_menu_set_title (menu, g_value_get_string (value));
-G_GNUC_END_IGNORE_DEPRECATIONS;
- break;
case PROP_MONITOR:
gtk_menu_set_monitor (menu, g_value_get_int (value));
break;
@@ -1195,16 +1140,6 @@ gtk_menu_get_property (GObject *object,
case PROP_ATTACH_WIDGET:
g_value_set_object (value, gtk_menu_get_attach_widget (menu));
break;
- case PROP_TEAROFF_STATE:
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
- g_value_set_boolean (value, gtk_menu_get_tearoff_state (menu));
-G_GNUC_END_IGNORE_DEPRECATIONS;
- break;
- case PROP_TEAROFF_TITLE:
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
- g_value_set_string (value, gtk_menu_get_title (menu));
-G_GNUC_END_IGNORE_DEPRECATIONS;
- break;
case PROP_MONITOR:
g_value_set_int (value, gtk_menu_get_monitor (menu));
break;
@@ -1436,13 +1371,8 @@ gtk_menu_destroy (GtkWidget *widget)
gtk_widget_destroy (priv->toplevel);
}
- if (priv->tearoff_window)
- gtk_widget_destroy (priv->tearoff_window);
-
g_clear_pointer (&priv->heights, g_free);
- g_clear_pointer (&priv->title, g_free);
-
if (priv->position_func_data_destroy)
{
priv->position_func_data_destroy (priv->position_func_data);
@@ -1477,12 +1407,6 @@ menu_change_screen (GtkMenu *menu,
return;
}
- if (priv->torn_off)
- {
- gtk_window_set_screen (GTK_WINDOW (priv->tearoff_window), new_screen);
- gtk_menu_position (menu, TRUE);
- }
-
gtk_window_set_screen (GTK_WINDOW (priv->toplevel), new_screen);
priv->monitor_num = -1;
}
@@ -1570,9 +1494,6 @@ gtk_menu_attach_to_widget (GtkMenu *menu,
_gtk_widget_update_parent_muxer (GTK_WIDGET (menu));
- /* Fallback title for menu comes from attach widget */
- gtk_menu_update_title (menu);
-
g_object_notify (G_OBJECT (menu), "attach-widget");
}
@@ -1652,9 +1573,6 @@ gtk_menu_detach (GtkMenu *menu)
_gtk_widget_update_parent_muxer (GTK_WIDGET (menu));
- /* Fallback title for menu comes from attach widget */
- gtk_menu_update_title (menu);
-
g_object_notify (G_OBJECT (menu), "attach-widget");
g_object_unref (menu);
}
@@ -1718,46 +1636,6 @@ gtk_menu_real_insert (GtkMenuShell *menu_shell,
menu_queue_resize (menu);
}
-static void
-gtk_menu_tearoff_bg_copy (GtkMenu *menu)
-{
- GtkMenuPrivate *priv = menu->priv;
- gint width, height;
-
- if (priv->torn_off)
- {
- GdkWindow *window;
- cairo_surface_t *surface;
- cairo_pattern_t *pattern;
- cairo_t *cr;
-
- priv->tearoff_active = FALSE;
- priv->saved_scroll_offset = priv->scroll_offset;
-
- window = gtk_widget_get_window (priv->tearoff_window);
- width = gdk_window_get_width (window);
- height = gdk_window_get_height (window);
-
- surface = gdk_window_create_similar_surface (window,
- CAIRO_CONTENT_COLOR,
- width,
- height);
-
- cr = cairo_create (surface);
- gdk_cairo_set_source_window (cr, window, 0, 0);
- cairo_paint (cr);
- cairo_destroy (cr);
-
- gtk_widget_set_size_request (priv->tearoff_window, width, height);
-
- pattern = cairo_pattern_create_for_surface (surface);
- gdk_window_set_background_pattern (window, pattern);
-
- cairo_pattern_destroy (pattern);
- cairo_surface_destroy (surface);
- }
-}
-
static gboolean
popup_grab_on_window (GdkWindow *window,
GdkDevice *pointer)
@@ -1936,13 +1814,6 @@ gtk_menu_popup_internal (GtkMenu *menu,
else
menu_shell->priv->ignore_enter = TRUE;
- if (priv->torn_off)
- {
- gtk_menu_tearoff_bg_copy (menu);
-
- gtk_menu_reparent (menu, priv->toplevel, FALSE);
- }
-
parent_toplevel = NULL;
if (parent_menu_shell)
parent_toplevel = gtk_widget_get_toplevel (parent_menu_shell);
@@ -2475,7 +2346,6 @@ gtk_menu_popdown (GtkMenu *menu)
{
GtkMenuPrivate *priv;
GtkMenuShell *menu_shell;
- GdkDevice *pointer;
g_return_if_fail (GTK_IS_MENU (menu));
@@ -2510,35 +2380,7 @@ gtk_menu_popdown (GtkMenu *menu)
gtk_window_set_transient_for (GTK_WINDOW (priv->toplevel), NULL);
}
- pointer = _gtk_menu_shell_get_grab_device (menu_shell);
-
- if (priv->torn_off)
- {
- gtk_widget_set_size_request (priv->tearoff_window, -1, -1);
-
- if (gtk_bin_get_child (GTK_BIN (priv->toplevel)))
- {
- gtk_menu_reparent (menu, priv->tearoff_hbox, TRUE);
- }
- else
- {
- /* We popped up the menu from the tearoff, so we need to
- * release the grab - we aren't actually hiding the menu.
- */
- if (menu_shell->priv->have_xgrab && pointer)
- gdk_seat_ungrab (gdk_device_get_seat (pointer));
- }
-
- /* gtk_menu_popdown is called each time a menu item is selected from
- * a torn off menu. Only scroll back to the saved position if the
- * non-tearoff menu was popped down.
- */
- if (!priv->tearoff_active)
- gtk_menu_scroll_to (menu, priv->saved_scroll_offset);
- priv->tearoff_active = TRUE;
- }
- else
- gtk_widget_hide (GTK_WIDGET (menu));
+ gtk_widget_hide (GTK_WIDGET (menu));
menu_shell->priv->have_xgrab = FALSE;
@@ -2804,299 +2646,10 @@ gtk_menu_reposition (GtkMenu *menu)
{
g_return_if_fail (GTK_IS_MENU (menu));
- if (!menu->priv->torn_off && gtk_widget_is_drawable (GTK_WIDGET (menu)))
+ if (gtk_widget_is_drawable (GTK_WIDGET (menu)))
gtk_menu_position (menu, FALSE);
}
-static void
-gtk_menu_scrollbar_changed (GtkAdjustment *adjustment,
- GtkMenu *menu)
-{
- double value;
-
- value = gtk_adjustment_get_value (adjustment);
- if (menu->priv->scroll_offset != value)
- gtk_menu_scroll_to (menu, value);
-}
-
-static void
-gtk_menu_set_tearoff_hints (GtkMenu *menu,
- gint width)
-{
- GtkMenuPrivate *priv = menu->priv;
- GdkGeometry geometry_hints;
-
- if (!priv->tearoff_window)
- return;
-
- if (gtk_widget_get_visible (priv->tearoff_scrollbar))
- {
- GtkRequisition requisition;
-
- gtk_widget_get_preferred_size (priv->tearoff_scrollbar,
- &requisition, NULL);
- width += requisition.width;
- }
-
- geometry_hints.min_width = width;
- geometry_hints.max_width = width;
-
- geometry_hints.min_height = 0;
- geometry_hints.max_height = priv->requested_height;
-
- gtk_window_set_geometry_hints (GTK_WINDOW (priv->tearoff_window),
- NULL,
- &geometry_hints,
- GDK_HINT_MAX_SIZE|GDK_HINT_MIN_SIZE);
-}
-
-static void
-gtk_menu_update_title (GtkMenu *menu)
-{
- GtkMenuPrivate *priv = menu->priv;
-
- if (priv->tearoff_window)
- {
- const gchar *title;
- GtkWidget *attach_widget;
-
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
- title = gtk_menu_get_title (menu);
-G_GNUC_END_IGNORE_DEPRECATIONS;
- if (!title)
- {
- attach_widget = gtk_menu_get_attach_widget (menu);
- if (GTK_IS_MENU_ITEM (attach_widget))
- {
- GtkWidget *child = gtk_bin_get_child (GTK_BIN (attach_widget));
- if (GTK_IS_LABEL (child))
- title = gtk_label_get_text (GTK_LABEL (child));
- }
- }
-
- if (title)
- gtk_window_set_title (GTK_WINDOW (priv->tearoff_window), title);
- }
-}
-
-static GtkWidget*
-gtk_menu_get_toplevel (GtkWidget *menu)
-{
- GtkWidget *attach, *toplevel;
-
- attach = gtk_menu_get_attach_widget (GTK_MENU (menu));
-
- if (GTK_IS_MENU_ITEM (attach))
- attach = gtk_widget_get_parent (attach);
-
- if (GTK_IS_MENU (attach))
- return gtk_menu_get_toplevel (attach);
- else if (GTK_IS_WIDGET (attach))
- {
- toplevel = gtk_widget_get_toplevel (attach);
- if (gtk_widget_is_toplevel (toplevel))
- return toplevel;
- }
-
- return NULL;
-}
-
-static void
-tearoff_window_destroyed (GtkWidget *widget,
- GtkMenu *menu)
-{
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
- gtk_menu_set_tearoff_state (menu, FALSE);
-G_GNUC_END_IGNORE_DEPRECATIONS;
-}
-
-/**
- * gtk_menu_set_tearoff_state:
- * @menu: a #GtkMenu
- * @torn_off: If %TRUE, menu is displayed as a tearoff menu.
- *
- * Changes the tearoff state of the menu. A menu is normally
- * displayed as drop down menu which persists as long as the menu is
- * active. It can also be displayed as a tearoff menu which persists
- * until it is closed or reattached.
- *
- * Deprecated: 3.10
- */
-void
-gtk_menu_set_tearoff_state (GtkMenu *menu,
- gboolean torn_off)
-{
- GtkMenuPrivate *priv = menu->priv;
- gint height;
-
- g_return_if_fail (GTK_IS_MENU (menu));
-
- if (priv->torn_off != torn_off)
- {
- priv->torn_off = torn_off;
- priv->tearoff_active = torn_off;
-
- if (priv->torn_off)
- {
- if (gtk_widget_get_visible (GTK_WIDGET (menu)))
- gtk_menu_popdown (menu);
-
- if (!priv->tearoff_window)
- {
- GtkWidget *toplevel;
-
- priv->tearoff_window = g_object_new (GTK_TYPE_WINDOW,
- "type", GTK_WINDOW_TOPLEVEL,
- "screen", gtk_widget_get_screen (priv->toplevel),
- "app-paintable", TRUE,
- NULL);
-
- gtk_window_set_type_hint (GTK_WINDOW (priv->tearoff_window),
- GDK_WINDOW_TYPE_HINT_MENU);
- gtk_window_set_mnemonic_modifier (GTK_WINDOW (priv->tearoff_window), 0);
- g_signal_connect (priv->tearoff_window, "destroy",
- G_CALLBACK (tearoff_window_destroyed), menu);
- g_signal_connect (priv->tearoff_window, "event",
- G_CALLBACK (gtk_menu_window_event), menu);
-
- gtk_menu_update_title (menu);
-
- gtk_widget_realize (priv->tearoff_window);
-
- toplevel = gtk_menu_get_toplevel (GTK_WIDGET (menu));
- if (toplevel != NULL)
- gtk_window_set_transient_for (GTK_WINDOW (priv->tearoff_window),
- GTK_WINDOW (toplevel));
-
- priv->tearoff_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
- gtk_container_add (GTK_CONTAINER (priv->tearoff_window),
- priv->tearoff_hbox);
-
- height = gdk_window_get_height (gtk_widget_get_window (GTK_WIDGET (menu)));
- priv->tearoff_adjustment = gtk_adjustment_new (0,
- 0, priv->requested_height,
- MENU_SCROLL_STEP2,
- height/2,
- height);
- g_object_connect (priv->tearoff_adjustment,
- "signal::value-changed", gtk_menu_scrollbar_changed, menu,
- NULL);
- priv->tearoff_scrollbar = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL,
priv->tearoff_adjustment);
-
- gtk_box_pack_end (GTK_BOX (priv->tearoff_hbox),
- priv->tearoff_scrollbar,
- FALSE, FALSE, 0);
-
- if (gtk_adjustment_get_upper (priv->tearoff_adjustment) > height)
- gtk_widget_show (priv->tearoff_scrollbar);
-
- gtk_widget_show (priv->tearoff_hbox);
- }
-
- gtk_menu_reparent (menu, priv->tearoff_hbox, FALSE);
-
- /* Update menu->requisition */
- gtk_widget_get_preferred_size (GTK_WIDGET (menu), NULL, NULL);
-
- gtk_menu_set_tearoff_hints (menu, gdk_window_get_width (gtk_widget_get_window (GTK_WIDGET
(menu))));
-
- gtk_widget_realize (priv->tearoff_window);
- gtk_menu_position (menu, TRUE);
-
- gtk_widget_show (GTK_WIDGET (menu));
- gtk_widget_show (priv->tearoff_window);
-
- gtk_menu_scroll_to (menu, 0);
-
- }
- else
- {
- gtk_widget_hide (GTK_WIDGET (menu));
- gtk_widget_hide (priv->tearoff_window);
- if (GTK_IS_CONTAINER (priv->toplevel))
- gtk_menu_reparent (menu, priv->toplevel, FALSE);
- gtk_widget_destroy (priv->tearoff_window);
-
- priv->tearoff_window = NULL;
- priv->tearoff_hbox = NULL;
- priv->tearoff_scrollbar = NULL;
- priv->tearoff_adjustment = NULL;
- }
-
- g_object_notify (G_OBJECT (menu), "tearoff-state");
- }
-}
-
-/**
- * gtk_menu_get_tearoff_state:
- * @menu: a #GtkMenu
- *
- * Returns whether the menu is torn off.
- * See gtk_menu_set_tearoff_state().
- *
- * Returns: %TRUE if the menu is currently torn off.
- *
- * Deprecated: 3.10
- */
-gboolean
-gtk_menu_get_tearoff_state (GtkMenu *menu)
-{
- g_return_val_if_fail (GTK_IS_MENU (menu), FALSE);
-
- return menu->priv->torn_off;
-}
-
-/**
- * gtk_menu_set_title:
- * @menu: a #GtkMenu
- * @title: a string containing the title for the menu
- *
- * Sets the title string for the menu.
- *
- * The title is displayed when the menu is shown as a tearoff
- * menu. If @title is %NULL, the menu will see if it is attached
- * to a parent menu item, and if so it will try to use the same
- * text as that menu item’s label.
- *
- * Deprecated: 3.10
- */
-void
-gtk_menu_set_title (GtkMenu *menu,
- const gchar *title)
-{
- GtkMenuPrivate *priv = menu->priv;
- char *old_title;
-
- g_return_if_fail (GTK_IS_MENU (menu));
-
- old_title = priv->title;
- priv->title = g_strdup (title);
- g_free (old_title);
-
- gtk_menu_update_title (menu);
- g_object_notify (G_OBJECT (menu), "tearoff-title");
-}
-
-/**
- * gtk_menu_get_title:
- * @menu: a #GtkMenu
- *
- * Returns the title of the menu. See gtk_menu_set_title().
- *
- * Returns: the title of the menu, or %NULL if the menu
- * has no title set on it. This string is owned by GTK+
- * and should not be modified or freed.
- *
- * Deprecated: 3.10
- **/
-const gchar *
-gtk_menu_get_title (GtkMenu *menu)
-{
- g_return_val_if_fail (GTK_IS_MENU (menu), NULL);
-
- return menu->priv->title;
-}
-
/**
* gtk_menu_reorder_child:
* @menu: a #GtkMenu
@@ -3471,13 +3024,6 @@ gtk_menu_size_allocate (GtkWidget *widget,
&arrow_allocation, -1,
&clip);
- if (!priv->tearoff_active)
- {
- y += arrow_border.top;
- height -= arrow_border.top;
- height -= arrow_border.bottom;
- }
-
width = MAX (1, width);
height = MAX (1, height);
@@ -3547,36 +3093,6 @@ gtk_menu_size_allocate (GtkWidget *widget,
w = gtk_menu_get_n_columns (menu) * base_width;
gdk_window_resize (priv->bin_window, w, h);
}
-
- if (priv->tearoff_active)
- {
- if (height >= priv->requested_height)
- {
- if (gtk_widget_get_visible (priv->tearoff_scrollbar))
- {
- gtk_widget_hide (priv->tearoff_scrollbar);
- gtk_menu_set_tearoff_hints (menu, allocation->width);
-
- gtk_menu_scroll_to (menu, 0);
- }
- }
- else
- {
- gtk_adjustment_configure (priv->tearoff_adjustment,
- gtk_adjustment_get_value (priv->tearoff_adjustment),
- 0,
- priv->requested_height,
- gtk_adjustment_get_step_increment (priv->tearoff_adjustment),
- gtk_adjustment_get_page_increment (priv->tearoff_adjustment),
- allocation->height);
-
- if (!gtk_widget_get_visible (priv->tearoff_scrollbar))
- {
- gtk_widget_show (priv->tearoff_scrollbar);
- gtk_menu_set_tearoff_hints (menu, allocation->width);
- }
- }
- }
}
}
@@ -3603,10 +3119,10 @@ gtk_menu_draw (GtkWidget *widget,
gtk_render_frame (context, cr, 0, 0,
width, height);
- if (priv->upper_arrow_visible && !priv->tearoff_active)
+ if (priv->upper_arrow_visible)
gtk_css_gadget_draw (priv->top_arrow_gadget, cr);
- if (priv->lower_arrow_visible && !priv->tearoff_active)
+ if (priv->lower_arrow_visible)
gtk_css_gadget_draw (priv->bottom_arrow_gadget, cr);
}
@@ -3742,12 +3258,6 @@ gtk_menu_get_preferred_width (GtkWidget *widget,
*minimum_size = min_width;
*natural_size = nat_width;
-
- /* Don't resize the tearoff if it is not active,
- * because it won't redraw (it is only a background pixmap).
- */
- if (priv->tearoff_active)
- gtk_menu_set_tearoff_hints (menu, min_width);
}
static void
@@ -4252,7 +3762,7 @@ gtk_menu_handle_scrolling (GtkMenu *menu,
get_arrows_sensitive_area (menu, &rect, NULL);
in_arrow = FALSE;
- if (priv->upper_arrow_visible && !priv->tearoff_active &&
+ if (priv->upper_arrow_visible &&
(x >= rect.x) && (x < rect.x + rect.width) &&
(y >= rect.y) && (y < rect.y + rect.height))
{
@@ -4263,7 +3773,7 @@ gtk_menu_handle_scrolling (GtkMenu *menu,
{
gboolean arrow_pressed = FALSE;
- if (priv->upper_arrow_visible && !priv->tearoff_active)
+ if (priv->upper_arrow_visible)
{
scroll_fast = (y < rect.y + MENU_SCROLL_FAST_ZONE);
@@ -4326,7 +3836,7 @@ gtk_menu_handle_scrolling (GtkMenu *menu,
get_arrows_sensitive_area (menu, NULL, &rect);
in_arrow = FALSE;
- if (priv->lower_arrow_visible && !priv->tearoff_active &&
+ if (priv->lower_arrow_visible &&
(x >= rect.x) && (x < rect.x + rect.width) &&
(y >= rect.y) && (y < rect.y + rect.height))
{
@@ -4337,7 +3847,7 @@ gtk_menu_handle_scrolling (GtkMenu *menu,
{
gboolean arrow_pressed = FALSE;
- if (priv->lower_arrow_visible && !priv->tearoff_active)
+ if (priv->lower_arrow_visible)
{
scroll_fast = (y > rect.y + rect.height - MENU_SCROLL_FAST_ZONE);
@@ -5094,14 +4604,7 @@ gtk_menu_position_legacy (GtkMenu *menu,
scroll_offset += arrow_border.top;
}
- gtk_window_move (GTK_WINDOW (GTK_MENU_SHELL (menu)->priv->active ? priv->toplevel : priv->tearoff_window),
- x, y);
-
- if (!GTK_MENU_SHELL (menu)->priv->active)
- {
- gtk_window_resize (GTK_WINDOW (priv->tearoff_window),
- requisition.width, requisition.height);
- }
+ gtk_window_move (GTK_WINDOW (priv->toplevel), x, y);
if (set_scroll_offset)
priv->scroll_offset = scroll_offset;
@@ -5243,18 +4746,14 @@ gtk_menu_scroll_to (GtkMenu *menu,
{
GtkMenuPrivate *priv = menu->priv;
GtkCssNode *top_arrow_node, *bottom_arrow_node;
- GtkBorder arrow_border, padding;
+ GtkBorder padding;
GtkWidget *widget;
gint x, y;
gint view_width, view_height;
gint border_width;
- gint menu_height;
widget = GTK_WIDGET (menu);
- if (priv->tearoff_active && priv->tearoff_adjustment)
- gtk_adjustment_set_value (priv->tearoff_adjustment, offset);
-
/* Move/resize the viewport according to arrows: */
view_width = gtk_widget_get_allocated_width (widget);
view_height = gtk_widget_get_allocated_height (widget);
@@ -5265,92 +4764,10 @@ gtk_menu_scroll_to (GtkMenu *menu,
view_width -= (2 * border_width) + padding.left + padding.right;
view_height -= (2 * border_width) + padding.top + padding.bottom;
- menu_height = priv->requested_height - (2 * border_width) - padding.top - padding.bottom;
x = border_width + padding.left;
y = border_width + padding.top;
- if (!priv->tearoff_active)
- {
- if (view_height < menu_height ||
- (offset > 0 && priv->scroll_offset > 0) ||
- (offset < 0 && priv->scroll_offset < 0))
- {
- GtkStateFlags upper_arrow_previous_state = priv->upper_arrow_state;
- GtkStateFlags lower_arrow_previous_state = priv->lower_arrow_state;
-
- if (!priv->upper_arrow_visible || !priv->lower_arrow_visible)
- gtk_widget_queue_draw (GTK_WIDGET (menu));
-
- priv->upper_arrow_visible = priv->lower_arrow_visible = TRUE;
-
- get_arrows_border (menu, &arrow_border);
- y += arrow_border.top;
- view_height -= arrow_border.top;
- view_height -= arrow_border.bottom;
-
- if (offset <= 0)
- priv->upper_arrow_state |= GTK_STATE_FLAG_INSENSITIVE;
- else
- {
- priv->upper_arrow_state &= ~(GTK_STATE_FLAG_INSENSITIVE);
-
- if (priv->upper_arrow_prelight)
- priv->upper_arrow_state |= GTK_STATE_FLAG_PRELIGHT;
- else
- priv->upper_arrow_state &= ~(GTK_STATE_FLAG_PRELIGHT);
- }
-
- if (offset >= menu_height - view_height)
- priv->lower_arrow_state |= GTK_STATE_FLAG_INSENSITIVE;
- else
- {
- priv->lower_arrow_state &= ~(GTK_STATE_FLAG_INSENSITIVE);
-
- if (priv->lower_arrow_prelight)
- priv->lower_arrow_state |= GTK_STATE_FLAG_PRELIGHT;
- else
- priv->lower_arrow_state &= ~(GTK_STATE_FLAG_PRELIGHT);
- }
-
- if ((priv->upper_arrow_state != upper_arrow_previous_state) ||
- (priv->lower_arrow_state != lower_arrow_previous_state))
- gtk_widget_queue_draw (GTK_WIDGET (menu));
-
- if ((upper_arrow_previous_state & GTK_STATE_FLAG_INSENSITIVE) == 0 &&
- (priv->upper_arrow_state & GTK_STATE_FLAG_INSENSITIVE) != 0)
- {
- /* At the upper border, possibly remove timeout */
- if (priv->scroll_step < 0)
- {
- gtk_menu_stop_scrolling (menu);
- gtk_widget_queue_draw (GTK_WIDGET (menu));
- }
- }
-
- if ((lower_arrow_previous_state & GTK_STATE_FLAG_INSENSITIVE) == 0 &&
- (priv->lower_arrow_state & GTK_STATE_FLAG_INSENSITIVE) != 0)
- {
- /* At the lower border, possibly remove timeout */
- if (priv->scroll_step > 0)
- {
- gtk_menu_stop_scrolling (menu);
- gtk_widget_queue_draw (GTK_WIDGET (menu));
- }
- }
- }
- else if (priv->upper_arrow_visible || priv->lower_arrow_visible)
- {
- offset = 0;
-
- priv->upper_arrow_visible = priv->lower_arrow_visible = FALSE;
- priv->upper_arrow_prelight = priv->lower_arrow_prelight = FALSE;
-
- gtk_menu_stop_scrolling (menu);
- gtk_widget_queue_draw (GTK_WIDGET (menu));
- }
- }
-
top_arrow_node = gtk_css_gadget_get_node (priv->top_arrow_gadget);
gtk_css_node_set_visible (top_arrow_node, priv->upper_arrow_visible);
gtk_css_node_set_state (top_arrow_node, priv->upper_arrow_state);
@@ -5452,8 +4869,7 @@ gtk_menu_scroll_item_visible (GtkMenuShell *menu_shell,
arrow_height = 0;
get_arrows_border (menu, &arrow_border);
- if (!priv->tearoff_active)
- arrow_height = arrow_border.top + arrow_border.bottom;
+ arrow_height = arrow_border.top + arrow_border.bottom;
if (child_offset + child_height > y + height - arrow_height)
{
@@ -5483,67 +4899,6 @@ gtk_menu_select_item (GtkMenuShell *menu_shell,
}
-/* Reparent the menu, taking care of the refcounting
- *
- * If unrealize is true we force a unrealize while reparenting the parent.
- * This can help eliminate flicker in some cases.
- *
- * What happens is that when the menu is unrealized and then re-realized,
- * the allocations are as follows:
- *
- * parent - 1x1 at (0,0)
- * child1 - 100x20 at (0,0)
- * child2 - 100x20 at (0,20)
- * child3 - 100x20 at (0,40)
- *
- * That is, the parent is small but the children are full sized. Then,
- * when the queued_resize gets processed, the parent gets resized to
- * full size.
- *
- * But in order to eliminate flicker when scrolling, gdkgeometry-x11.c
- * contains the following logic:
- *
- * - if a move or resize operation on a window would change the clip
- * region on the children, then before the window is resized
- * the background for children is temporarily set to None, the
- * move/resize done, and the background for the children restored.
- *
- * So, at the point where the parent is resized to final size, the
- * background for the children is temporarily None, and thus they
- * are not cleared to the background color and the previous background
- * (the image of the menu) is left in place.
- */
-static void
-gtk_menu_reparent (GtkMenu *menu,
- GtkWidget *new_parent,
- gboolean unrealize)
-{
- GObject *object = G_OBJECT (menu);
- GtkWidget *widget = GTK_WIDGET (menu);
- gboolean was_floating = g_object_is_floating (object);
-
- g_object_ref_sink (object);
-
- if (unrealize)
- {
- g_object_ref (object);
- gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (widget)), widget);
- gtk_container_add (GTK_CONTAINER (new_parent), widget);
- g_object_unref (object);
- }
- else
- {
- G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
- gtk_widget_reparent (widget, new_parent);
- G_GNUC_END_IGNORE_DEPRECATIONS;
- }
-
- if (was_floating)
- g_object_force_floating (object);
- else
- g_object_unref (object);
-}
-
static void
gtk_menu_show_all (GtkWidget *widget)
{
@@ -5804,11 +5159,10 @@ gtk_menu_move_current (GtkMenuShell *menu_shell,
static gint
get_visible_size (GtkMenu *menu)
{
- GtkMenuPrivate *priv = menu->priv;
GtkAllocation allocation;
GtkWidget *widget = GTK_WIDGET (menu);
GtkContainer *container = GTK_CONTAINER (menu);
- GtkBorder padding;
+ GtkBorder padding, arrow_border;
gint menu_height;
gtk_widget_get_allocation (widget, &allocation);
@@ -5818,14 +5172,9 @@ get_visible_size (GtkMenu *menu)
(2 * gtk_container_get_border_width (container)) -
padding.top - padding.bottom);
- if (!priv->tearoff_active)
- {
- GtkBorder arrow_border;
-
- get_arrows_border (menu, &arrow_border);
- menu_height -= arrow_border.top;
- menu_height -= arrow_border.bottom;
- }
+ get_arrows_border (menu, &arrow_border);
+ menu_height -= arrow_border.top;
+ menu_height -= arrow_border.bottom;
return menu_height;
}
@@ -5864,14 +5213,8 @@ child_at (GtkMenu *menu,
{
child = children->data;
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-
- if (child_offset + child_requisition.height > y &&
- !GTK_IS_TEAROFF_MENU_ITEM (child))
+ if (child_offset + child_requisition.height > y)
return child;
-
-G_GNUC_END_IGNORE_DEPRECATIONS
-
}
child_offset += child_requisition.height;
@@ -5886,7 +5229,7 @@ get_menu_height (GtkMenu *menu)
{
GtkMenuPrivate *priv = menu->priv;
GtkWidget *widget = GTK_WIDGET (menu);
- GtkBorder padding;
+ GtkBorder padding, arrow_border;
gint height;
get_menu_padding (widget, &padding);
@@ -5895,14 +5238,9 @@ get_menu_height (GtkMenu *menu)
height -= (gtk_container_get_border_width (GTK_CONTAINER (widget)) * 2) +
padding.top + padding.bottom;
- if (!priv->tearoff_active)
- {
- GtkBorder arrow_border;
-
- get_arrows_border (menu, &arrow_border);
- height -= arrow_border.top;
- height -= arrow_border.bottom;
- }
+ get_arrows_border (menu, &arrow_border);
+ height -= arrow_border.top;
+ height -= arrow_border.bottom;
return height;
}
@@ -5942,7 +5280,7 @@ gtk_menu_real_move_scroll (GtkMenu *menu,
}
menu_shell->priv->ignore_enter = TRUE;
- old_upper_arrow_visible = priv->upper_arrow_visible && !priv->tearoff_active;
+ old_upper_arrow_visible = priv->upper_arrow_visible;
old_offset = priv->scroll_offset;
new_offset = priv->scroll_offset + step;
@@ -5953,7 +5291,7 @@ gtk_menu_real_move_scroll (GtkMenu *menu,
if (menu_shell->priv->active_menu_item)
{
GtkWidget *new_child;
- gboolean new_upper_arrow_visible = priv->upper_arrow_visible && !priv->tearoff_active;
+ gboolean new_upper_arrow_visible = priv->upper_arrow_visible;
GtkBorder arrow_border;
get_arrows_border (menu, &arrow_border);
diff --git a/gtk/gtkmenu.h b/gtk/gtkmenu.h
index 70c7c2f..9737c02 100644
--- a/gtk/gtkmenu.h
+++ b/gtk/gtkmenu.h
@@ -219,21 +219,6 @@ void gtk_menu_detach (GtkMenu *menu);
GDK_AVAILABLE_IN_ALL
GtkWidget* gtk_menu_get_attach_widget (GtkMenu *menu);
-GDK_DEPRECATED_IN_3_10
-void gtk_menu_set_tearoff_state (GtkMenu *menu,
- gboolean torn_off);
-GDK_DEPRECATED_IN_3_10
-gboolean gtk_menu_get_tearoff_state (GtkMenu *menu);
-
-/* This sets the window manager title for the window that
- * appears when a menu is torn off
- */
-GDK_DEPRECATED_IN_3_10
-void gtk_menu_set_title (GtkMenu *menu,
- const gchar *title);
-GDK_DEPRECATED_IN_3_10
-const gchar * gtk_menu_get_title (GtkMenu *menu);
-
GDK_AVAILABLE_IN_ALL
void gtk_menu_reorder_child (GtkMenu *menu,
GtkWidget *child,
diff --git a/gtk/gtkmenuitem.c b/gtk/gtkmenuitem.c
index 09f7d54..c9e2e91 100644
--- a/gtk/gtkmenuitem.c
+++ b/gtk/gtkmenuitem.c
@@ -46,7 +46,6 @@
#include "gtksettings.h"
#include "gtktypebuiltins.h"
#include "a11y/gtkmenuitemaccessible.h"
-#include "deprecated/gtktearoffmenuitem.h"
#include "gtkstylecontextprivate.h"
#include "gtkcssstylepropertyprivate.h"
@@ -1257,8 +1256,8 @@ activatable_update_label (GtkMenuItem *menu_item, GtkAction *action)
* @menu: (allow-none): a #GtkMenu or %NULL
*
* Determines whether @menu is empty. A menu is considered empty if it
- * the only visible children are tearoff menu items or “filler” menu
- * items which were inserted to mark the menu as empty.
+ * the only visible children are “filler” menu items which were
+ * inserted to mark the menu as empty.
*
* This function is used by #GtkAction.
*
@@ -1282,18 +1281,11 @@ gtk_menu_is_empty (GtkWidget *menu)
{
if (gtk_widget_get_visible (cur->data))
{
-
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-
- if (!GTK_IS_TEAROFF_MENU_ITEM (cur->data) &&
- !g_object_get_data (cur->data, "gtk-empty-menu-item"))
+ if (!g_object_get_data (cur->data, "gtk-empty-menu-item"))
{
result = FALSE;
break;
}
-
-G_GNUC_END_IGNORE_DEPRECATIONS
-
}
cur = cur->next;
}
@@ -1757,8 +1749,7 @@ gtk_real_menu_item_select (GtkMenuItem *menu_item)
if ((!source_device ||
gdk_device_get_source (source_device) != GDK_SOURCE_TOUCHSCREEN) &&
priv->submenu &&
- (!gtk_widget_get_mapped (priv->submenu) ||
- GTK_MENU (priv->submenu)->priv->tearoff_active))
+ !gtk_widget_get_mapped (priv->submenu))
{
_gtk_menu_item_popup_submenu (GTK_WIDGET (menu_item), TRUE);
}
@@ -2088,8 +2079,7 @@ gtk_menu_item_popup_timeout (gpointer data)
parent = gtk_widget_get_parent (GTK_WIDGET (menu_item));
- if ((GTK_IS_MENU_SHELL (parent) && GTK_MENU_SHELL (parent)->priv->active) ||
- (GTK_IS_MENU (parent) && GTK_MENU (parent)->priv->torn_off))
+ if (GTK_IS_MENU_SHELL (parent) && GTK_MENU_SHELL (parent)->priv->active)
{
gtk_menu_item_real_popup_submenu (GTK_WIDGET (menu_item), info->trigger_event, TRUE);
if (info->trigger_event &&
diff --git a/gtk/gtkmenuprivate.h b/gtk/gtkmenuprivate.h
index 92c4de6..c61a49e 100644
--- a/gtk/gtkmenuprivate.h
+++ b/gtk/gtkmenuprivate.h
@@ -72,11 +72,6 @@ struct _GtkMenuPrivate
*/
GtkWidget *toplevel;
- GtkWidget *tearoff_window;
- GtkWidget *tearoff_hbox;
- GtkWidget *tearoff_scrollbar;
- GtkAdjustment *tearoff_adjustment;
-
GdkWindow *view_window;
GdkWindow *bin_window;
@@ -90,11 +85,6 @@ struct _GtkMenuPrivate
guint scroll_timeout;
guint needs_destruction_ref : 1;
- guint torn_off : 1;
- /* The tearoff is active when it is torn off and the not-torn-off
- * menu is not popped up.
- */
- guint tearoff_active : 1;
guint scroll_fast : 1;
guint upper_arrow_visible : 1;
@@ -122,8 +112,6 @@ struct _GtkMenuPrivate
gint n_rows;
gint n_columns;
- gchar *title;
-
/* Arrow states */
GtkStateFlags lower_arrow_state;
GtkStateFlags upper_arrow_state;
diff --git a/gtk/gtkmenushell.c b/gtk/gtkmenushell.c
index a68389e..e15102a 100644
--- a/gtk/gtkmenushell.c
+++ b/gtk/gtkmenushell.c
@@ -77,8 +77,6 @@
#include "gtkwidgetprivate.h"
#include "gtklabelprivate.h"
-#include "deprecated/gtktearoffmenuitem.h"
-
#include "a11y/gtkmenushellaccessible.h"
@@ -1449,9 +1447,7 @@ gtk_menu_shell_move_selected (GtkMenuShell *menu_shell,
* should be %FALSE if the menu is being
* popped up initially.
*
- * Select the first visible or selectable child of the menu shell;
- * don’t select tearoff items unless the only item is a tearoff
- * item.
+ * Select the first visible or selectable child of the menu shell.
*
* Since: 2.2
*/
@@ -1472,14 +1468,6 @@ gtk_menu_shell_select_first (GtkMenuShell *menu_shell,
_gtk_menu_item_is_selectable (child))
{
to_select = child;
-
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-
- if (!GTK_IS_TEAROFF_MENU_ITEM (child))
- break;
-
-G_GNUC_END_IGNORE_DEPRECATIONS
-
}
tmp_list = tmp_list->next;
@@ -1506,13 +1494,6 @@ _gtk_menu_shell_select_last (GtkMenuShell *menu_shell,
_gtk_menu_item_is_selectable (child))
{
to_select = child;
-
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-
- if (!GTK_IS_TEAROFF_MENU_ITEM (child))
- break;
-
-G_GNUC_END_IGNORE_DEPRECATIONS
}
tmp_list = tmp_list->prev;
diff --git a/gtk/gtktreemenu.c b/gtk/gtktreemenu.c
index 057bc96..60eaa2e 100644
--- a/gtk/gtktreemenu.c
+++ b/gtk/gtktreemenu.c
@@ -49,8 +49,6 @@
#define GDK_DEPRECATED
#define GDK_DEPRECATED_FOR(f)
-#include "deprecated/gtktearoffmenuitem.h"
-
/* GObjectClass */
static void gtk_tree_menu_constructed (GObject *object);
static void gtk_tree_menu_dispose (GObject *object);
@@ -170,7 +168,6 @@ struct _GtkTreeMenuPrivate
/* Flags */
guint32 menu_with_header : 1;
- guint32 tearoff : 1;
/* Row separators */
GtkTreeViewRowSeparatorFunc row_separator_func;
@@ -183,7 +180,6 @@ enum {
PROP_MODEL,
PROP_ROOT,
PROP_CELL_AREA,
- PROP_TEAROFF,
PROP_WRAP_WIDTH,
PROP_ROW_SPAN_COL,
PROP_COL_SPAN_COL
@@ -310,21 +306,6 @@ _gtk_tree_menu_class_init (GtkTreeMenuClass *class)
GTK_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
/*
- * GtkTreeMenu:tearoff:
- *
- * Specifies whether this menu comes with a leading tearoff menu item
- *
- * Since: 3.0
- */
- g_object_class_install_property (object_class,
- PROP_TEAROFF,
- g_param_spec_boolean ("tearoff",
- P_("Tearoff"),
- P_("Whether the menu has a tearoff item"),
- FALSE,
- GTK_PARAM_READWRITE));
-
- /*
* GtkTreeMenu:wrap-width:
*
* If wrap-width is set to a positive value, the list will be
@@ -477,10 +458,6 @@ gtk_tree_menu_set_property (GObject *object,
gtk_tree_menu_set_area (menu, (GtkCellArea *)g_value_get_object (value));
break;
- case PROP_TEAROFF:
- _gtk_tree_menu_set_tearoff (menu, g_value_get_boolean (value));
- break;
-
case PROP_WRAP_WIDTH:
_gtk_tree_menu_set_wrap_width (menu, g_value_get_int (value));
break;
@@ -522,10 +499,6 @@ gtk_tree_menu_get_property (GObject *object,
g_value_set_object (value, priv->area);
break;
- case PROP_TEAROFF:
- g_value_set_boolean (value, priv->tearoff);
- break;
-
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -706,7 +679,7 @@ gtk_tree_menu_get_path_item (GtkTreeMenu *menu,
item = child;
}
}
- else if (!GTK_IS_TEAROFF_MENU_ITEM (child))
+ else
{
GtkWidget *view = gtk_bin_get_child (GTK_BIN (child));
@@ -845,7 +818,7 @@ find_empty_submenu (GtkTreeMenu *menu)
/* Separators dont get submenus, if it already has a submenu then let
* the submenu handle inserted rows */
- if (!GTK_IS_SEPARATOR_MENU_ITEM (child) && !GTK_IS_TEAROFF_MENU_ITEM (child))
+ if (!GTK_IS_SEPARATOR_MENU_ITEM (child))
{
GtkWidget *view = gtk_bin_get_child (GTK_BIN (child));
@@ -896,12 +869,6 @@ row_inserted_cb (GtkTreeModel *model,
if (priv->menu_with_header)
index += 2;
- /* Index after the tearoff item for the root menu if
- * there is a tearoff item
- */
- if (priv->root == NULL && priv->tearoff)
- index += 1;
-
item = gtk_tree_menu_create_item (menu, iter, FALSE);
gtk_menu_shell_insert (GTK_MENU_SHELL (menu), item, index);
@@ -1386,20 +1353,6 @@ gtk_tree_menu_populate (GtkTreeMenu *menu)
}
else
{
- /* Tearoff menu items only go in the root menu */
- if (priv->tearoff)
- {
- menu_item = gtk_tearoff_menu_item_new ();
- gtk_widget_show (menu_item);
-
- if (priv->wrap_width > 0)
- gtk_menu_attach (GTK_MENU (menu), menu_item, 0, priv->wrap_width, 0, 1);
- else
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
-
- prev = menu_item;
- }
-
valid = gtk_tree_model_iter_children (priv->model, &iter, NULL);
}
@@ -1665,57 +1618,6 @@ _gtk_tree_menu_get_root (GtkTreeMenu *menu)
}
/*
- * _gtk_tree_menu_get_tearoff:
- * @menu: a #GtkTreeMenu
- *
- * Gets whether this menu is build with a leading tearoff menu item.
- *
- * Returns: %TRUE if the menu has a tearoff item.
- *
- * Since: 3.0
- */
-gboolean
-_gtk_tree_menu_get_tearoff (GtkTreeMenu *menu)
-{
- GtkTreeMenuPrivate *priv;
-
- g_return_val_if_fail (GTK_IS_TREE_MENU (menu), FALSE);
-
- priv = menu->priv;
-
- return priv->tearoff;
-}
-
-/*
- * _gtk_tree_menu_set_tearoff:
- * @menu: a #GtkTreeMenu
- * @tearoff: whether the menu should have a leading tearoff menu item.
- *
- * Sets whether this menu has a leading tearoff menu item.
- *
- * Since: 3.0
- */
-void
-_gtk_tree_menu_set_tearoff (GtkTreeMenu *menu,
- gboolean tearoff)
-{
- GtkTreeMenuPrivate *priv;
-
- g_return_if_fail (GTK_IS_TREE_MENU (menu));
-
- priv = menu->priv;
-
- if (priv->tearoff != tearoff)
- {
- priv->tearoff = tearoff;
-
- rebuild_menu (menu);
-
- g_object_notify (G_OBJECT (menu), "tearoff");
- }
-}
-
-/*
* _gtk_tree_menu_get_wrap_width:
* @menu: a #GtkTreeMenu
*
diff --git a/gtk/gtktreemenu.h b/gtk/gtktreemenu.h
index fa0f4ad..dc80a5d 100644
--- a/gtk/gtktreemenu.h
+++ b/gtk/gtktreemenu.h
@@ -79,9 +79,6 @@ GtkTreeModel *_gtk_tree_menu_get_model (GtkTreeMenu
void _gtk_tree_menu_set_root (GtkTreeMenu *menu,
GtkTreePath *path);
GtkTreePath *_gtk_tree_menu_get_root (GtkTreeMenu *menu);
-gboolean _gtk_tree_menu_get_tearoff (GtkTreeMenu *menu);
-void _gtk_tree_menu_set_tearoff (GtkTreeMenu *menu,
- gboolean tearoff);
gint _gtk_tree_menu_get_wrap_width (GtkTreeMenu *menu);
void _gtk_tree_menu_set_wrap_width (GtkTreeMenu *menu,
gint width);
diff --git a/tests/testmerge.c b/tests/testmerge.c
index ee0b38f..ef39067 100644
--- a/tests/testmerge.c
+++ b/tests/testmerge.c
@@ -75,17 +75,6 @@ dump_toplevels (GtkWidget *button,
g_slist_free (toplevels);
}
-static void
-toggle_tearoffs (GtkWidget *button,
- GtkUIManager *merge)
-{
- gboolean add_tearoffs;
-
- add_tearoffs = gtk_ui_manager_get_add_tearoffs (merge);
-
- gtk_ui_manager_set_add_tearoffs (merge, !add_tearoffs);
-}
-
static gint
delayed_toggle_dynamic (GtkUIManager *merge)
{
@@ -677,10 +666,6 @@ main (int argc, char **argv)
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE);
}
- button = gtk_check_button_new_with_label ("Tearoffs");
- g_signal_connect (button, "clicked", G_CALLBACK (toggle_tearoffs), merge);
- gtk_box_pack_end (GTK_BOX (vbox), button, FALSE, FALSE, 0);
-
button = gtk_check_button_new_with_label ("Dynamic");
g_signal_connect (button, "clicked", G_CALLBACK (toggle_dynamic), merge);
gtk_box_pack_end (GTK_BOX (vbox), button, FALSE, FALSE, 0);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]