summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog12
-rw-r--r--ChangeLog.pre-2-1012
-rw-r--r--ChangeLog.pre-2-612
-rw-r--r--ChangeLog.pre-2-812
-rw-r--r--gtk/gtk.symbols2
-rw-r--r--gtk/gtkcellview.c61
-rw-r--r--gtk/gtkcellview.h9
-rw-r--r--gtk/gtkmenuitem.c17
-rw-r--r--gtk/gtkmenuitem.h1
-rw-r--r--gtk/gtkmenushell.c16
10 files changed, 74 insertions, 80 deletions
diff --git a/ChangeLog b/ChangeLog
index 091c8c58e4..4ab88e127e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2004-12-15 Matthias Clasen <mclasen@redhat.com>
+
+ * gtk/gtkmenushell.c (gtk_menu_shell_select_submenu_first)
+ (gtk_real_menu_shell_activate_current): Use
+ _gtk_menu_item_popup_submenu() to make keynav into submenus work
+ instantaneously, independent of the popup delay. (#161140)
+
+ * gtk/gtkmenuitem.[hc]: _-prefix gtk_menu_item_popup_submenu() and
+ make it non-static.
+
+ * gtk/gtkmenuitem.c (gtk_menu_item_paint): Remove unused variables.
+
2004-12-15 James M. Cape <jcape@ignore-your.tv>
* gtk/gtkfilechooserbutton.c (struct _GtkFileChooserButtonPrivate)
diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10
index 091c8c58e4..4ab88e127e 100644
--- a/ChangeLog.pre-2-10
+++ b/ChangeLog.pre-2-10
@@ -1,3 +1,15 @@
+2004-12-15 Matthias Clasen <mclasen@redhat.com>
+
+ * gtk/gtkmenushell.c (gtk_menu_shell_select_submenu_first)
+ (gtk_real_menu_shell_activate_current): Use
+ _gtk_menu_item_popup_submenu() to make keynav into submenus work
+ instantaneously, independent of the popup delay. (#161140)
+
+ * gtk/gtkmenuitem.[hc]: _-prefix gtk_menu_item_popup_submenu() and
+ make it non-static.
+
+ * gtk/gtkmenuitem.c (gtk_menu_item_paint): Remove unused variables.
+
2004-12-15 James M. Cape <jcape@ignore-your.tv>
* gtk/gtkfilechooserbutton.c (struct _GtkFileChooserButtonPrivate)
diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6
index 091c8c58e4..4ab88e127e 100644
--- a/ChangeLog.pre-2-6
+++ b/ChangeLog.pre-2-6
@@ -1,3 +1,15 @@
+2004-12-15 Matthias Clasen <mclasen@redhat.com>
+
+ * gtk/gtkmenushell.c (gtk_menu_shell_select_submenu_first)
+ (gtk_real_menu_shell_activate_current): Use
+ _gtk_menu_item_popup_submenu() to make keynav into submenus work
+ instantaneously, independent of the popup delay. (#161140)
+
+ * gtk/gtkmenuitem.[hc]: _-prefix gtk_menu_item_popup_submenu() and
+ make it non-static.
+
+ * gtk/gtkmenuitem.c (gtk_menu_item_paint): Remove unused variables.
+
2004-12-15 James M. Cape <jcape@ignore-your.tv>
* gtk/gtkfilechooserbutton.c (struct _GtkFileChooserButtonPrivate)
diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8
index 091c8c58e4..4ab88e127e 100644
--- a/ChangeLog.pre-2-8
+++ b/ChangeLog.pre-2-8
@@ -1,3 +1,15 @@
+2004-12-15 Matthias Clasen <mclasen@redhat.com>
+
+ * gtk/gtkmenushell.c (gtk_menu_shell_select_submenu_first)
+ (gtk_real_menu_shell_activate_current): Use
+ _gtk_menu_item_popup_submenu() to make keynav into submenus work
+ instantaneously, independent of the popup delay. (#161140)
+
+ * gtk/gtkmenuitem.[hc]: _-prefix gtk_menu_item_popup_submenu() and
+ make it non-static.
+
+ * gtk/gtkmenuitem.c (gtk_menu_item_paint): Remove unused variables.
+
2004-12-15 James M. Cape <jcape@ignore-your.tv>
* gtk/gtkfilechooserbutton.c (struct _GtkFileChooserButtonPrivate)
diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols
index 0b14859fc4..809a09583e 100644
--- a/gtk/gtk.symbols
+++ b/gtk/gtk.symbols
@@ -288,8 +288,6 @@ gtk_cell_view_new_with_text
gtk_cell_view_set_background_color
gtk_cell_view_set_displayed_row
gtk_cell_view_set_model
-gtk_cell_view_set_value
-gtk_cell_view_set_values
gtk_check_button_get_type G_GNUC_CONST
gtk_check_button_new
gtk_check_button_new_with_label
diff --git a/gtk/gtkcellview.c b/gtk/gtkcellview.c
index c7c5c2682c..6642284943 100644
--- a/gtk/gtkcellview.c
+++ b/gtk/gtkcellview.c
@@ -76,9 +76,10 @@ static void gtk_cell_view_size_allocate (GtkWidget *wid
GtkAllocation *allocation);
static gboolean gtk_cell_view_expose (GtkWidget *widget,
GdkEventExpose *event);
-static void gtk_cell_view_set_valuesv (GtkCellView *cellview,
- GtkCellRenderer *renderer,
- va_list args);
+static void gtk_cell_view_set_value (GtkCellView *cell_view,
+ GtkCellRenderer *renderer,
+ gchar *property,
+ GValue *value);
static GtkCellViewCellInfo *gtk_cell_view_get_cell_info (GtkCellView *cellview,
GtkCellRenderer *renderer);
static void gtk_cell_view_set_cell_data (GtkCellView *cell_view);
@@ -795,7 +796,7 @@ gtk_cell_view_new_with_text (const gchar *text)
g_value_init (&value, G_TYPE_STRING);
g_value_set_string (&value, text);
- gtk_cell_view_set_values (cellview, renderer, "text", &value, NULL);
+ gtk_cell_view_set_value (cellview, renderer, "text", &value);
g_value_unset (&value);
return GTK_WIDGET (cellview);
@@ -829,7 +830,7 @@ gtk_cell_view_new_with_markup (const gchar *markup)
g_value_init (&value, G_TYPE_STRING);
g_value_set_string (&value, markup);
- gtk_cell_view_set_values (cellview, renderer, "markup", &value, NULL);
+ gtk_cell_view_set_value (cellview, renderer, "markup", &value);
g_value_unset (&value);
return GTK_WIDGET (cellview);
@@ -861,7 +862,7 @@ gtk_cell_view_new_with_pixbuf (GdkPixbuf *pixbuf)
g_value_init (&value, GDK_TYPE_PIXBUF);
g_value_set_object (&value, pixbuf);
- gtk_cell_view_set_values (cellview, renderer, "pixbuf", &value, NULL);
+ gtk_cell_view_set_value (cellview, renderer, "pixbuf", &value);
g_value_unset (&value);
return GTK_WIDGET (cellview);
@@ -879,7 +880,7 @@ gtk_cell_view_new_with_pixbuf (GdkPixbuf *pixbuf)
*
* Since: 2.6
*/
-void
+static void
gtk_cell_view_set_value (GtkCellView *cell_view,
GtkCellRenderer *renderer,
gchar *property,
@@ -895,52 +896,6 @@ gtk_cell_view_set_value (GtkCellView *cell_view,
gtk_widget_queue_draw (GTK_WIDGET (cell_view));
}
-static void
-gtk_cell_view_set_valuesv (GtkCellView *cell_view,
- GtkCellRenderer *renderer,
- va_list args)
-{
- gchar *attribute;
- GValue *value;
-
- attribute = va_arg (args, gchar *);
-
- while (attribute)
- {
- value = va_arg (args, GValue *);
- gtk_cell_view_set_value (cell_view, renderer, attribute, value);
- attribute = va_arg (args, gchar *);
- }
-}
-
-/**
- * gtk_cell_view_set_values:
- * @cell_view: a #GtkCellView widget
- * @renderer: one of the renderers of @cell_view
- * @Varargs: a list of pairs of property names and #GValue<!-- -->s,
- * finished by %NULL
- *
- * Sets multiple properties of a cell renderer of @cell_view, and
- * makes sure the display of @cell_view is updated.
- *
- * Since: 2.6
- */
-void
-gtk_cell_view_set_values (GtkCellView *cell_view,
- GtkCellRenderer *renderer,
- ...)
-{
- va_list args;
-
- g_return_if_fail (GTK_IS_CELL_VIEW (cell_view));
- g_return_if_fail (GTK_IS_CELL_RENDERER (renderer));
- g_return_if_fail (gtk_cell_view_get_cell_info (cell_view, renderer));
-
- va_start (args, renderer);
- gtk_cell_view_set_valuesv (cell_view, renderer, args);
- va_end (args);
-}
-
/**
* gtk_cell_view_set_model:
* @cell_view: a #GtkCellView
diff --git a/gtk/gtkcellview.h b/gtk/gtkcellview.h
index c2a572384f..6a79c3aba4 100644
--- a/gtk/gtkcellview.h
+++ b/gtk/gtkcellview.h
@@ -56,15 +56,6 @@ GtkWidget *gtk_cell_view_new_with_text (const gchar *text);
GtkWidget *gtk_cell_view_new_with_markup (const gchar *markup);
GtkWidget *gtk_cell_view_new_with_pixbuf (GdkPixbuf *pixbuf);
-
-void gtk_cell_view_set_value (GtkCellView *cell_view,
- GtkCellRenderer *renderer,
- gchar *property,
- GValue *value);
-void gtk_cell_view_set_values (GtkCellView *cell_view,
- GtkCellRenderer *renderer,
- ...);
-
void gtk_cell_view_set_model (GtkCellView *cell_view,
GtkTreeModel *model);
void gtk_cell_view_set_displayed_row (GtkCellView *cell_view,
diff --git a/gtk/gtkmenuitem.c b/gtk/gtkmenuitem.c
index 3038c42f7a..fd1ad7ccdc 100644
--- a/gtk/gtkmenuitem.c
+++ b/gtk/gtkmenuitem.c
@@ -80,7 +80,6 @@ static gboolean gtk_menu_item_mnemonic_activate (GtkWidget *widget,
gboolean group_cycling);
static gint gtk_menu_item_select_timeout (gpointer data);
-static void gtk_menu_item_popup_submenu (gpointer data);
static void gtk_menu_item_position_menu (GtkMenu *menu,
gint *x,
gint *y,
@@ -199,7 +198,7 @@ gtk_menu_item_class_init (GtkMenuItemClass *klass)
g_signal_new ("toggle_size_allocate",
G_OBJECT_CLASS_TYPE (gobject_class),
G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GtkMenuItemClass, toggle_size_allocate),
+ G_STRUCT_OFFSET (GtkMenuItemClass, toggle_size_allocate),
NULL, NULL,
_gtk_marshal_NONE__INT,
G_TYPE_NONE, 1,
@@ -718,7 +717,6 @@ gtk_menu_item_paint (GtkWidget *widget,
if (menu_item->submenu && menu_item->show_submenu_indicator)
{
- GtkRequisition child_requisition;
gint arrow_x, arrow_y;
gint arrow_size;
gint arrow_extent;
@@ -728,7 +726,6 @@ gtk_menu_item_paint (GtkWidget *widget,
PangoContext *context;
PangoFontMetrics *metrics;
gint ascent, descent;
- PangoLayout *layout;
direction = gtk_widget_get_direction (widget);
@@ -871,7 +868,7 @@ gtk_real_menu_item_select (GtkItem *item)
gdk_event_free (event);
}
else
- gtk_menu_item_popup_submenu (menu_item);
+ _gtk_menu_item_popup_submenu (GTK_WIDGET (menu_item));
}
gtk_widget_set_state (GTK_WIDGET (menu_item), GTK_STATE_PRELIGHT);
@@ -944,7 +941,7 @@ gtk_real_menu_item_activate_item (GtkMenuItem *menu_item)
_gtk_menu_shell_activate (menu_shell);
gtk_menu_shell_select_item (GTK_MENU_SHELL (widget->parent), widget);
- gtk_menu_item_popup_submenu (widget);
+ _gtk_menu_item_popup_submenu (widget);
gtk_menu_shell_select_first (GTK_MENU_SHELL (menu_item->submenu), TRUE);
submenu = GTK_MENU_SHELL (menu_item->submenu);
@@ -984,7 +981,7 @@ gtk_menu_item_select_timeout (gpointer data)
if ((GTK_IS_MENU_SHELL (parent) && GTK_MENU_SHELL (parent)->active) ||
(GTK_IS_MENU (parent) && GTK_MENU (parent)->torn_off))
{
- gtk_menu_item_popup_submenu (data);
+ _gtk_menu_item_popup_submenu (GTK_WIDGET (menu_item));
if (menu_item->timer_from_keypress && menu_item->submenu)
GTK_MENU_SHELL (menu_item->submenu)->ignore_enter = TRUE;
}
@@ -994,13 +991,11 @@ gtk_menu_item_select_timeout (gpointer data)
return FALSE;
}
-static void
-gtk_menu_item_popup_submenu (gpointer data)
+void
+_gtk_menu_item_popup_submenu (GtkWidget *widget)
{
- GtkWidget *widget;
GtkMenuItem *menu_item;
- widget = GTK_WIDGET (data);
menu_item = GTK_MENU_ITEM (widget);
if (menu_item->timer)
diff --git a/gtk/gtkmenuitem.h b/gtk/gtkmenuitem.h
index a75061d939..930d4eed0a 100644
--- a/gtk/gtkmenuitem.h
+++ b/gtk/gtkmenuitem.h
@@ -121,6 +121,7 @@ void _gtk_menu_item_refresh_accel_path (GtkMenuItem *menu_item,
GtkAccelGroup *accel_group,
gboolean group_changed);
gboolean _gtk_menu_item_is_selectable (GtkWidget *menu_item);
+void _gtk_menu_item_popup_submenu (GtkWidget *menu_item);
#ifndef GTK_DISABLE_DEPRECATED
#define gtk_menu_item_right_justify(menu_item) gtk_menu_item_set_right_justified ((menu_item), TRUE)
diff --git a/gtk/gtkmenushell.c b/gtk/gtkmenushell.c
index d318e167b8..0b70b93d03 100644
--- a/gtk/gtkmenushell.c
+++ b/gtk/gtkmenushell.c
@@ -1070,7 +1070,10 @@ gtk_menu_shell_select_submenu_first (GtkMenuShell *menu_shell)
menu_item = GTK_MENU_ITEM (menu_shell->active_menu_item);
if (menu_item->submenu)
- gtk_menu_shell_select_first (GTK_MENU_SHELL (menu_item->submenu), TRUE);
+ {
+ _gtk_menu_item_popup_submenu (menu_item);
+ gtk_menu_shell_select_first (GTK_MENU_SHELL (menu_item->submenu), TRUE);
+ }
}
static void
@@ -1190,13 +1193,16 @@ gtk_real_menu_shell_activate_current (GtkMenuShell *menu_shell,
gboolean force_hide)
{
if (menu_shell->active_menu_item &&
- _gtk_menu_item_is_selectable (menu_shell->active_menu_item) &&
- GTK_MENU_ITEM (menu_shell->active_menu_item)->submenu == NULL)
- {
+ _gtk_menu_item_is_selectable (menu_shell->active_menu_item))
+ {
+
+ if (GTK_MENU_ITEM (menu_shell->active_menu_item)->submenu == NULL)
gtk_menu_shell_activate_item (menu_shell,
menu_shell->active_menu_item,
force_hide);
- }
+ else
+ _gtk_menu_item_popup_submenu (menu_shell->active_menu_item);
+ }
}
static void