Fix problem with installation directory for gdkx.h

Fri Apr  7 17:19:27 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/x11/Makefile.am: Fix problem with installation directory for
	gdkx.h

	* gtk/gtkmenuitem.c gtk/gtkmenushell.c: Patch from David Santiago
	<mrcooger@cyberverse.com> so that when selecting menus with the
	mouse, the first item will not be selected, but when selecting
	with an accelerator, or navigating left-right on a menubar with
	the menus popped up, the first item will be selected.
This commit is contained in:
Owen Taylor
2000-04-07 21:36:13 +00:00
committed by Owen Taylor
parent d96d7ada5a
commit 848cff384e
10 changed files with 116 additions and 19 deletions

View File

@ -1,3 +1,14 @@
Fri Apr 7 17:19:27 2000 Owen Taylor <otaylor@redhat.com>
* gdk/x11/Makefile.am: Fix problem with installation directory for
gdkx.h
* gtk/gtkmenuitem.c gtk/gtkmenushell.c: Patch from David Santiago
<mrcooger@cyberverse.com> so that when selecting menus with the
mouse, the first item will not be selected, but when selecting
with an accelerator, or navigating left-right on a menubar with
the menus popped up, the first item will be selected.
2000-04-05 Dan Damian <dand@dnttm.ro> 2000-04-05 Dan Damian <dand@dnttm.ro>
* configure.in: Added "ro" to ALL_LINGUAS. * configure.in: Added "ro" to ALL_LINGUAS.

View File

@ -1,3 +1,14 @@
Fri Apr 7 17:19:27 2000 Owen Taylor <otaylor@redhat.com>
* gdk/x11/Makefile.am: Fix problem with installation directory for
gdkx.h
* gtk/gtkmenuitem.c gtk/gtkmenushell.c: Patch from David Santiago
<mrcooger@cyberverse.com> so that when selecting menus with the
mouse, the first item will not be selected, but when selecting
with an accelerator, or navigating left-right on a menubar with
the menus popped up, the first item will be selected.
2000-04-05 Dan Damian <dand@dnttm.ro> 2000-04-05 Dan Damian <dand@dnttm.ro>
* configure.in: Added "ro" to ALL_LINGUAS. * configure.in: Added "ro" to ALL_LINGUAS.

View File

@ -1,3 +1,14 @@
Fri Apr 7 17:19:27 2000 Owen Taylor <otaylor@redhat.com>
* gdk/x11/Makefile.am: Fix problem with installation directory for
gdkx.h
* gtk/gtkmenuitem.c gtk/gtkmenushell.c: Patch from David Santiago
<mrcooger@cyberverse.com> so that when selecting menus with the
mouse, the first item will not be selected, but when selecting
with an accelerator, or navigating left-right on a menubar with
the menus popped up, the first item will be selected.
2000-04-05 Dan Damian <dand@dnttm.ro> 2000-04-05 Dan Damian <dand@dnttm.ro>
* configure.in: Added "ro" to ALL_LINGUAS. * configure.in: Added "ro" to ALL_LINGUAS.

View File

@ -1,3 +1,14 @@
Fri Apr 7 17:19:27 2000 Owen Taylor <otaylor@redhat.com>
* gdk/x11/Makefile.am: Fix problem with installation directory for
gdkx.h
* gtk/gtkmenuitem.c gtk/gtkmenushell.c: Patch from David Santiago
<mrcooger@cyberverse.com> so that when selecting menus with the
mouse, the first item will not be selected, but when selecting
with an accelerator, or navigating left-right on a menubar with
the menus popped up, the first item will be selected.
2000-04-05 Dan Damian <dand@dnttm.ro> 2000-04-05 Dan Damian <dand@dnttm.ro>
* configure.in: Added "ro" to ALL_LINGUAS. * configure.in: Added "ro" to ALL_LINGUAS.

View File

@ -1,3 +1,14 @@
Fri Apr 7 17:19:27 2000 Owen Taylor <otaylor@redhat.com>
* gdk/x11/Makefile.am: Fix problem with installation directory for
gdkx.h
* gtk/gtkmenuitem.c gtk/gtkmenushell.c: Patch from David Santiago
<mrcooger@cyberverse.com> so that when selecting menus with the
mouse, the first item will not be selected, but when selecting
with an accelerator, or navigating left-right on a menubar with
the menus popped up, the first item will be selected.
2000-04-05 Dan Damian <dand@dnttm.ro> 2000-04-05 Dan Damian <dand@dnttm.ro>
* configure.in: Added "ro" to ALL_LINGUAS. * configure.in: Added "ro" to ALL_LINGUAS.

View File

@ -1,3 +1,14 @@
Fri Apr 7 17:19:27 2000 Owen Taylor <otaylor@redhat.com>
* gdk/x11/Makefile.am: Fix problem with installation directory for
gdkx.h
* gtk/gtkmenuitem.c gtk/gtkmenushell.c: Patch from David Santiago
<mrcooger@cyberverse.com> so that when selecting menus with the
mouse, the first item will not be selected, but when selecting
with an accelerator, or navigating left-right on a menubar with
the menus popped up, the first item will be selected.
2000-04-05 Dan Damian <dand@dnttm.ro> 2000-04-05 Dan Damian <dand@dnttm.ro>
* configure.in: Added "ro" to ALL_LINGUAS. * configure.in: Added "ro" to ALL_LINGUAS.

View File

@ -1,3 +1,14 @@
Fri Apr 7 17:19:27 2000 Owen Taylor <otaylor@redhat.com>
* gdk/x11/Makefile.am: Fix problem with installation directory for
gdkx.h
* gtk/gtkmenuitem.c gtk/gtkmenushell.c: Patch from David Santiago
<mrcooger@cyberverse.com> so that when selecting menus with the
mouse, the first item will not be selected, but when selecting
with an accelerator, or navigating left-right on a menubar with
the menus popped up, the first item will be selected.
2000-04-05 Dan Damian <dand@dnttm.ro> 2000-04-05 Dan Damian <dand@dnttm.ro>
* configure.in: Added "ro" to ALL_LINGUAS. * configure.in: Added "ro" to ALL_LINGUAS.

View File

@ -1,5 +1,7 @@
## Process this file with automake to produce Makefile.in ## Process this file with automake to produce Makefile.in
libgdkincludedir = $(includedir)/gdk
INCLUDES = @STRIP_BEGIN@ \ INCLUDES = @STRIP_BEGIN@ \
-DG_LOG_DOMAIN=\"Gdk\" \ -DG_LOG_DOMAIN=\"Gdk\" \
-I$(top_srcdir) \ -I$(top_srcdir) \
@ -68,7 +70,7 @@ libgdk_x11_la_SOURCES = \
gdkinputprivate.h \ gdkinputprivate.h \
$(xinput_sources) $(xinput_sources)
INCLUDE_HEADERS = \ libgdkinclude_HEADERS = \
gdkx.h gdkx.h
EXTRA_PROGRAMS = gxid EXTRA_PROGRAMS = gxid

View File

@ -63,7 +63,7 @@ static void gtk_real_menu_item_select (GtkItem *item);
static void gtk_real_menu_item_deselect (GtkItem *item); static void gtk_real_menu_item_deselect (GtkItem *item);
static void gtk_real_menu_item_activate_item (GtkMenuItem *item); static void gtk_real_menu_item_activate_item (GtkMenuItem *item);
static gint gtk_menu_item_select_timeout (gpointer data); static gint gtk_menu_item_select_timeout (gpointer data);
static void gtk_menu_item_select_timeout_unlocked (gpointer data); static void gtk_menu_item_popup_submenu (gpointer data);
static void gtk_menu_item_position_menu (GtkMenu *menu, static void gtk_menu_item_position_menu (GtkMenu *menu,
gint *x, gint *x,
gint *y, gint *y,
@ -553,7 +553,7 @@ gtk_real_menu_item_select (GtkItem *item)
gtk_menu_item_select_timeout, gtk_menu_item_select_timeout,
menu_item); menu_item);
else else
gtk_menu_item_select_timeout_unlocked (menu_item); gtk_menu_item_popup_submenu (menu_item);
if(event) gdk_event_free(event); if(event) gdk_event_free(event);
} }
@ -598,6 +598,7 @@ static void
gtk_real_menu_item_activate_item (GtkMenuItem *menu_item) gtk_real_menu_item_activate_item (GtkMenuItem *menu_item)
{ {
GtkWidget *widget; GtkWidget *widget;
GtkMenuShell *submenu;
g_return_if_fail (menu_item != NULL); g_return_if_fail (menu_item != NULL);
g_return_if_fail (GTK_IS_MENU_ITEM (menu_item)); g_return_if_fail (GTK_IS_MENU_ITEM (menu_item));
@ -622,6 +623,11 @@ gtk_real_menu_item_activate_item (GtkMenuItem *menu_item)
} }
gtk_menu_shell_select_item (GTK_MENU_SHELL (widget->parent), widget); gtk_menu_shell_select_item (GTK_MENU_SHELL (widget->parent), widget);
gtk_menu_item_popup_submenu (widget);
submenu = GTK_MENU_SHELL (menu_item->submenu);
if (submenu->children)
gtk_menu_shell_select_item (submenu, submenu->children->data);
} }
} }
} }
@ -631,7 +637,7 @@ gtk_menu_item_select_timeout (gpointer data)
{ {
GDK_THREADS_ENTER (); GDK_THREADS_ENTER ();
gtk_menu_item_select_timeout_unlocked (data); gtk_menu_item_popup_submenu (data);
GDK_THREADS_LEAVE (); GDK_THREADS_LEAVE ();
@ -639,7 +645,7 @@ gtk_menu_item_select_timeout (gpointer data)
} }
static void static void
gtk_menu_item_select_timeout_unlocked (gpointer data) gtk_menu_item_popup_submenu (gpointer data)
{ {
GtkMenuItem *menu_item; GtkMenuItem *menu_item;
@ -655,16 +661,6 @@ gtk_menu_item_select_timeout_unlocked (gpointer data)
menu_item, menu_item,
GTK_MENU_SHELL (GTK_WIDGET (menu_item)->parent)->button, GTK_MENU_SHELL (GTK_WIDGET (menu_item)->parent)->button,
0); 0);
/* This is a bit of a hack - we want to select the first item
* of menus hanging of a menu bar, but not for cascading submenus
*/
if (GTK_IS_MENU_BAR (GTK_WIDGET (menu_item)->parent))
{
GtkMenuShell *submenu = GTK_MENU_SHELL (menu_item->submenu);
if (submenu->children)
gtk_menu_shell_select_item (submenu, submenu->children->data);
}
} }
} }

View File

@ -136,6 +136,7 @@ static gint gtk_menu_shell_is_item (GtkMenuShell *menu_shell,
static GtkWidget *gtk_menu_shell_get_item (GtkMenuShell *menu_shell, static GtkWidget *gtk_menu_shell_get_item (GtkMenuShell *menu_shell,
GdkEvent *event); GdkEvent *event);
static GtkType gtk_menu_shell_child_type (GtkContainer *container); static GtkType gtk_menu_shell_child_type (GtkContainer *container);
static void gtk_menu_shell_select_submenu_first (GtkMenuShell *menu_shell);
static void gtk_real_menu_shell_move_current (GtkMenuShell *menu_shell, static void gtk_real_menu_shell_move_current (GtkMenuShell *menu_shell,
GtkMenuDirectionType direction); GtkMenuDirectionType direction);
@ -903,6 +904,21 @@ gtk_menu_shell_move_selected (GtkMenuShell *menu_shell,
} }
} }
static void
gtk_menu_shell_select_submenu_first (GtkMenuShell *menu_shell)
{
GtkMenuItem *menu_item;
menu_item = GTK_MENU_ITEM (menu_shell->active_menu_item);
if (menu_item->submenu)
{
GtkMenuShell *submenu = GTK_MENU_SHELL (menu_item->submenu);
if (submenu->children)
gtk_menu_shell_select_item (submenu, submenu->children->data);
}
}
static void static void
gtk_real_menu_shell_move_current (GtkMenuShell *menu_shell, gtk_real_menu_shell_move_current (GtkMenuShell *menu_shell,
GtkMenuDirectionType direction) GtkMenuDirectionType direction)
@ -924,7 +940,10 @@ gtk_real_menu_shell_move_current (GtkMenuShell *menu_shell,
GTK_MENU_SHELL_CLASS (GTK_OBJECT (menu_shell)->klass)->submenu_placement) GTK_MENU_SHELL_CLASS (GTK_OBJECT (menu_shell)->klass)->submenu_placement)
gtk_menu_shell_deselect (menu_shell); gtk_menu_shell_deselect (menu_shell);
else else
gtk_menu_shell_move_selected (parent_menu_shell, -1); {
gtk_menu_shell_move_selected (parent_menu_shell, -1);
gtk_menu_shell_select_submenu_first (parent_menu_shell);
}
} }
break; break;
@ -946,7 +965,10 @@ gtk_real_menu_shell_move_current (GtkMenuShell *menu_shell,
parent_menu_shell = GTK_MENU_SHELL (parent_menu_shell->parent_menu_shell); parent_menu_shell = GTK_MENU_SHELL (parent_menu_shell->parent_menu_shell);
if (parent_menu_shell) if (parent_menu_shell)
gtk_menu_shell_move_selected (parent_menu_shell, 1); {
gtk_menu_shell_move_selected (parent_menu_shell, 1);
gtk_menu_shell_select_submenu_first (parent_menu_shell);
}
} }
break; break;