Commit Graph

106 Commits

Author SHA1 Message Date
Michael Natterer
533d3fcc76 Merged heavily modified patch from maemo-gtk which enables opening and
2007-04-27  Michael Natterer  <mitch@imendio.com>

	Merged heavily modified patch from maemo-gtk which enables opening
	and closing submenus on click, and introduces some usability
	changes when gtk-touchscreen-mode is enabled (bug #128968):

	* gtk/gtkmenushell.c (struct GtkMenuShellPrivate): added boolean
	"activated_submenu" to indicate that the current mouse operation
	(click or drag) has opened a submenu.

	(gtk_menu_shell_button_press): pop up submenus without delay
	and record the fact in "activated_submenu".

	(gtk_menu_shell_button_release): if a submenu was explicitely
	opened, or not opened by this release's button_press, or enough
	time has passed since timeout-opening it, close the submenu here.

	(gtk_menu_shell_enter_notify): when entering a menu item with
	any mouse button pressed, open its submenu.

	(gtk_real_menu_shell_move_current): in touchsreen mode, close the
	submenu when moving the focus away from it via keyboard-navigation.

	* gtk/gtkmenuitem.[ch] (_gtk_menu_item_popup_submenu): added
	parameter "gboolean with_delay" so GtkMenuShell can control this
	for the different scenarios of submenu showing.

	(_gtk_menu_item_popdown_submenu): new function. also needed by
	GtkMenuShell for closing submenus on click.

	Renamed internal function gtk_menu_item_select_timeout() to
	gtk_menu_item_popup_timeout().

	(gtk_menu_item_real_popup_submenu): new utility function which
	does the actual popup and records the exact time of the popup when
	the menu was timeout-opened (using g_get_current_time()).

	(gtk_real_menu_item_select): don't add the popup timeout when in
	touchscreen mode.

	* gtk/gtkmenu.c (gtk_menu_popup): in touchscreen mode, select the
	first item of every opened menu.


svn path=/trunk/; revision=17659
2007-04-27 14:49:37 +00:00
Michael Natterer
d7c5a3010a remove artifact from the time when type checking casts warned on NULL,
2007-04-02  Michael Natterer  <mitch@imendio.com>

	* gtk/gtkmenushell.c (gtk_real_menu_shell_move_current): remove
	artifact from the time when type checking casts warned on NULL,
	some whitespace cleanup.


svn path=/trunk/; revision=17578
2007-04-02 16:32:22 +00:00
Michael Natterer
eab53a01e1 remove two antique function typedefs that are probably obsolete for ages.
2007-02-15  Michael Natterer  <mitch@imendio.com>

	* gtk/gtkmenushell.c: remove two antique function typedefs that
	are probably obsolete for ages.


svn path=/trunk/; revision=17297
2007-02-15 08:53:55 +00:00
Michael Natterer
17fed85c24 add new boolean settings gtk-enable-accels and gtk-enable-mnemonics which
2007-02-05  Michael Natterer  <mitch@imendio.com>

	* gtk/gtksettings.c: add new boolean settings gtk-enable-accels
	and gtk-enable-mnemonics which enable/disable accelerators and
	mnemonics (bug #72375, based on a patch from Tommi Komulainen).

	* gtk/gtkwindow.c (gtk_window_activate_key)
	* gtk/gtkmenushell.c (gtk_menu_shell_key_press): don't invoke them
	if the resp. setting is FALSE.

	* gtk/gtkaccellabel.c (gtk_accel_label_refetch)
	* gtk/gtklabel.c (gtk_label_set_pattern_internal): don't display
	them if the setting is FALSE.

	* gtk/gtklabel.c: added signal connection to the screen's settings
	object and traverse all widgets on the screen when the setting
	changes. It's slightly ugly to also update GtkAccelLabels here,
	but less ugly than connecting and traversing all widgets twice.


svn path=/trunk/; revision=17262
2007-02-05 14:11:39 +00:00
Michael Natterer
7f374a74ba Add new infrastructure for notifications of failed keyboard navigation and
2006-11-16  Michael Natterer  <mitch@imendio.com>

	Add new infrastructure for notifications of failed keyboard
	navigation and navigation with restricted set of keys.

	The patch handles configurable beeping, navigating the GUI with
	cursor keys only (as in phone environments), and configurable
	wrap-around. Fixes bugs #322640, #70986, #318827, #334726, #334742
	and #309291.

	* gtk/gtksettings.c: added properties gtk-keynav-cursor-only,
	gtk-keynav-wrap-around and gtk-error-bell.

	* gtk/gtkwidget.[ch]: added new signal "keynav-failed" and public
	API to emit it. Added New function gtk_widget_error_bell() which
	looks at the gtk-error-bell setting and calls gdk_window_beep()
	accordingly.

	* gtk/gtk.symbols: add the new widget symbols.

	* gtk/gtkcellrendereraccel.c
	* gtk/gtkimcontextsimple.c
	* gtk/gtkmenu.c
	* gtk/gtknotebook.c: use gtk_widget_error_bell() or look at the
	gtk-error-bell setting instead of calling gdk_display_beep()
	unconditionally.

	* gtk/gtkcombobox.c
	* gtk/gtkentry.c
	* gtk/gtkiconview.c
	* gtk/gtklabel.c
	* gtk/gtkmenushell.c
	* gtk/gtkspinbutton.c
	* gtk/gtktextview.c
	* gtk/gtktreeview.c: call gtk_widget_error_bell() on failed keynav.

	* gtk/gtkentry.c
	* gtk/gtklabel.c
	* gtk/gtkrange.c
	* gtk/gtktextview.c: consult gtk_widget_keynav_failed() on failed
	cursor navigation and leave the widget if it returns FALSE.

	* gtk/gtkmenushell.c
	* gtk/gtknotebook.c: only wrap around if gtk-keynav-wrap-around
	is TRUE.

	* gtk/gtkradiobutton.c: ask gtk_widget_keynav_failed() to decide
	whether to to wrap-around, and don't select active items on cursor
	navigation if gtk-keynav-cursor-only is TRUE. Should look at
	gtk-keynav-wrap-around too, will look into that.
2006-11-16 12:56:30 +00:00
Matthias Clasen
113f364a37 More of the same 2006-05-14 04:25:34 +00:00
Matthias Clasen
f26aad1916 Boilerplate reduction 2006-05-02 23:56:43 +00:00
Matthias Clasen
94eec04267 Intern some more strings.
2005-09-01  Matthias Clasen  <mclasen@redhat.com>

        * gdk/*.c: Intern some more strings.
        * gtk/gtkintl.h:
        * gtk/*.c: Define an I_() macro and use it instead of the
        bulky g_intern_static_string().
2005-09-01 05:11:46 +00:00
Matthias Clasen
c09cc89317 Intern type names in code generated by glib-mkenums, too.
2005-08-31  Matthias Clasen  <mclasen@redhat.com>

	* gdk/Makefile.am:
	* gtk/Makefile.am: Intern type names in code generated by
	glib-mkenums, too.

	* gtk/*.c:
	* gdk/x11/*.c:
	* gdk/*.c: Intern type names before registering the type to avoid
	unnecessary copies.
2005-08-31 16:53:43 +00:00
Matthias Clasen
b2343762b1 Ignore GrabBroken events which are caused by overgrabbing inside the
2005-06-27  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkmenushell.c (gtk_menu_shell_grab_broken): Ignore
	GrabBroken events which are caused by overgrabbing inside
	the application; menus rely on these for their operation.

	* gdk/gdkevents.h (struct _GdkEventGrabBroken): Add a
	grab_window field.

	* gdk/win32/gdkevents-win32.c (gdk_event_translate): Set
	grab_window to NULL when generating GrabBroken events for
	WM_KILLFOCUS messages.

	* gdk/x11/gdkmain-x11.c (_gdk_xgrab_check_unmap)
	(_gdk_xgrab_check_destroy): Set grab_window to NULL when
	generating GrabBroken events when the grab window becomes
	unviewable or is destroyed.

	* gdk/x11/gdkmain-x11.c (gdk_pointer_grab, gdk_keyboard_grab):
	Generate GrabBroken events when overriding a grab inside
	the application. In this case, set grab_window to the new
	grab_window.
2005-06-27 21:06:33 +00:00
Manish Singh
2f330b7737 add GDK_GRAB_BROKEN to the switch cases.
Sun Jun 26 00:04:36 2005  Manish Singh  <yosh@gimp.org>

        * gdk/gdkevents.c (gdk_event_get_time, gdk_event_get_state): add
        GDK_GRAB_BROKEN to the switch cases.

        * gtk/gtkmenushell.c (gtk_menu_shell_grab_broken): remove unused
        variables.

        * gtk/gtkpaned.c (gtk_paned_grab_broken): return TRUE.
2005-06-26 07:06:13 +00:00
Matthias Clasen
9b356ea0d8 Add a GrabBroken event to GDK, and a grab-broken-event signal to
2005-06-25  Matthias Clasen  <mclasen@redhat.com>

	Add a GrabBroken event to GDK, and a grab-broken-event
	signal to GtkWidget.  (#107320, Simon Cooke, initial patch
	by John Ehresman)

	* gdk/gdkevents.h: Add a GDK_GRAB_BROKEN event type,
	define a GdkEventGrabBroken event struct.

	* gdk/win32/gdkevents-win32.c (gdk_event_translate):
	Generate GrabBroken events in response to WM_KILLFOCUS.

	* gdk/x11/gdkmain-x11.c: Generate GrabBroken events
	when a grab is broken by the window becoming unviewable,
	or by another grab from the same client.

	* gtk/gtkwidget.h (GtkWidgetClass): Add grab_broken_event.

	* gtk/gtkwidget.c (gtk_widget_event_internal): Translate
	GrabBroken events into grab_broken_event signals.

	* gtk/gtkmain.c (gtk_main_do_event): Propagate GrabBroken
	events.

	* gtk/gtkmenushell.c (gtk_menu_shell_grab_broken): Deactivate
	the menu when the grab is broken.

	* gtk/gtkcolorsel.c (gtk_color_selection_grab_broken): Stop
	the color picker if the grab is broken.

	* gtk/gtkpaned.c (gtk_paned_grab_broken): Stop the drag if
	the grab is broken.
2005-06-25 07:10:40 +00:00
Matthias Clasen
80bf176f06 2005-06-10 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_expand):
	* gtk/gtktoolbar.c (gtk_toolbar_get_show_arrow):
	* gtk/gtktextview.c (gtk_text_view_get_iter_at_position):
	* gtk/gtkstock.c (gtk_stock_set_translate_func):
	* gtk/gtkspinbutton.c (gtk_spin_button_get_adjustment):
	* gtk/gtkscrolledwindow.h:
	* gtk/gtkmenushell.c (gtk_menu_shell_get_take_focus):
2005-06-10 04:45:40 +00:00
Matthias Clasen
30fc5201ed Fix up the docs a bit.
2005-05-02  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkmenushell.c (gtk_menu_shell_set_take_focus):
	(gtk_menu_shell_get_take_focus): Fix up the docs a bit.
2005-05-02 16:09:37 +00:00
Matthias Clasen
bdb14ae648 Keep a reference to the item. (#167920, Hazael Maldonado Torres)
2005-04-05  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkmenushell.c (gtk_menu_shell_activate_item): Keep a
	reference to the item.  (#167920, Hazael Maldonado Torres)
2005-04-05 13:52:32 +00:00
Michael Natterer
91cb92c018 Allow to pop up menus without grabbing the keyboard. Useful for stuff like
2005-03-31  Michael Natterer  <mitch@gimp.org>

	Allow to pop up menus without grabbing the keyboard. Useful for
	stuff like virtual keyboards. Fixes bug #159890

	* gtk/gtk.symbols
	* gtk/gtkmenushell.[ch]: added boolean property "take-focus"
	and public API gtk_menu_shell_set/get_take_focus().

	* gtk/gtkmenu.c (gtk_menu_popup)
	(popup_grab_on_window): don't grab the keyboard if take_focus
	is FALSE.

	* gtk/gtkmenuitem.c (_gtk_menu_item_popup_submen): propagate the
	parent menu_shell's take_focus property to the submenu which is
	about to be popped up.
2005-03-31 17:02:19 +00:00
Matthias Clasen
cca8dd6347 Make PLT-reduction work with gcc4, and don't include everything in
2005-03-20  Matthias Clasen  <mclasen@redhat.com>

	Make PLT-reduction work with gcc4, and don't include
	everything in gdkalias.h:

	* gtk/grk.symbols: Group symbols by header and source file.
	* gtk/makegtkalias.pl: Protect definitions by the same
	preprocessor symbols used to guard the headers. Move
	the alias declarations to a separate file which is
	produced when calling makegtkalias.pl -def
	* gdk/Makefile.am (gtkaliasdef.c): Add a rule to generate
	this file.
	* gtk/*.c: Include gtkalias.h after the other headers,
	include gtkaliasdef.c at the bottom.
	* gtk/*.h: Small cleanups.
2005-03-20 07:01:23 +00:00
Matthias Clasen
812e0cfdb7 Support vertical menubars (#166632):
2005-02-11  Matthias Clasen  <mclasen@redhat.com>

	Support vertical menubars  (#166632):

	* gtk/gtkenums.h (GtkPackDirection): New enumeration for pack
	directions, with values for left-to-right, right-to-left,
	top-to-bottom and bottom-to-top.

	* gtk/gtk.symbols:
	* gtk/gtkmenubar.h:
	* gtk/gtkmenubar.c: Add two properties, pack-direction and
	child-pack-direction, which specify how children and
	grandchildren of a menubar are packed, with getters and setters.

	* gtk/gtkmenubar.c (gtk_menu_bar_set_property):
	(gtk_menu_bar_get_property): Implement set_property and get_property.

	* gtk/gtkmenubar.c (gtk_menu_bar_size_request):
	(gtk_menu_bar_size_allocate): Take pack direction into account.

	* gtk/gtkmenubar.c (gtk_menu_bar_move_current): Implement
	move_current here move all the menubar-specific direction
	tweaking from the generic menushell implementation here.

	* gtk/gtkmenu.c (gtk_menu_move_current): Move  menu-specific
	direction tweaking from the generic menushell implementation here.

	* gtk/gtkmenuitem.c (gtk_menu_item_size_request):
	(gtk_menu_bar_size_allocate): Take pack direction into account.

	* gtk/gtkimagemenuitem.c (gtk_image_menu_item_size_request)
	(gtk_image_menu_item_size_allocate):
	(gtk_image_menu_item_toggle_size_request): Take child pack
	direction into account and pack the image vertically if
	necessary.

	* gtk/gtkmenushell.c (gtk_menu_shell_real_select_item):
	Set the submenu direction to left-right for menuitems in
	vertical menubars.
	(gtk_real_menu_shell_move_current): Simplify by moving
	direction tweaking to menu- and menubar-specific
	implementations. Take pack direction into account when
	doing fallbacks.

	* tests/testmenubars.c: Test menubars in various packing
	direction combinations.

	* tests/Makefile.am (noinst_PROGRAMS): Add testmenubars.
2005-02-11 07:15:11 +00:00
Matthias Clasen
dc347650e9 Fix RTL keynav for going from menubar to menu.
2005-02-09  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkmenushell.c (gtk_real_menu_shell_move_current): Fix RTL
	keynav for going from menubar to menu.
2005-02-09 16:49:11 +00:00
Matthias Clasen
e77e1e24c2 Return a boolean indicating whether an item in the submenu was selected.
2004-12-28  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkmenushell.c (gtk_menu_shell_select_submenu_first):
	Return a boolean indicating whether an item in the submenu
	was selected.
	(gtk_real_menu_shell_move_current): When going in child
	direction, don't get stuck at completely insensitive
	submenus.  (#162055, Billy Biggs)
2004-12-28 05:33:27 +00:00
Matthias Clasen
6b62d82581 2.6.0 second try 2004-12-16 19:13:58 +00:00
Matthias Clasen
8b927c6f58 Use _gtk_menu_item_popup_submenu() to make keynav into submenus work
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 16:27:30 +00:00
Matthias Clasen
f3a74ace5f Support no-Alt mnemnonics in menu bars (#101309, Owen Taylor)
2004-12-10  Matthias Clasen  <mclasen@redhat.com>

	Support no-Alt mnemnonics in menu bars  (#101309, Owen Taylor)

	* gtk/gtkwindow.c: Factor out mnemonic hash code into
	a separate file.

	* gtk/gtkmnemonichash.[hc]: Factored out mnemonic hash
	code from gtkwindow.c.

	* gtk/Makefile.am (gtk_c_sources): Add gtkmnemonichash.[hc].

	* gtk/gtkmenushell.c (struct _GtkMenuShellPrivate): Give
	menu shells their own mnemonic hash.

	* gtk/gtkmenushell.h: Add private api to support mnemonics.

	* gtk/gtklabel.c (gtk_label_setup_mnemonic): Add mnemonic to
	the menushell mnemonic hash when inside a menu.
2004-12-10 22:09:22 +00:00
Matthias Clasen
4e67511f2a Don't do the popup-on-click handling for menubars. (#159931, Søren
2004-11-29  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkmenushell.c (gtk_menu_shell_button_release): Don't
	do the popup-on-click handling for menubars.  (#159931,
	Søren Sandmann)

	* gtk/gtkmenuitem.c (gtk_real_menu_item_select): Don't
	handle popup delay if the submenu is already mapped.
2004-11-30 04:49:44 +00:00
Manish Singh
1d99ca890a gdk/abicheck.sh filter out G_GNUC stuff when doing the compare.
Thu Nov 25 14:32:35 2004  Manish Singh  <yosh@gimp.org>

        * gdk/abicheck.sh
        * gtk/abicheck.sh: filter out G_GNUC stuff when doing the compare.

        * gtk/gtkmenuitem.c (gtk_menu_shell_button_release): add
        GTK_MENU_ITEM() cast.
2004-11-25 22:35:52 +00:00
Matthias Clasen
6be4d66566 Open submenus on click. (#128968, Martin Jeppesen)
2004-11-24  Matthias Clasen  <mclasen@redhat.com>

	Open submenus on click.  (#128968, Martin Jeppesen)

	* gtk/gtkmenushell.c (gtk_menu_shell_button_release): Don't
	activate items with submenus after the timeout, just select
	them.

	* gtk/gtkmenuitem.c (gtk_real_menu_item_select): Make
	submenus popup immediately on click, regardless of popup
	delay.
2004-11-24 05:32:40 +00:00
Matthias Clasen
3612aee585 Add hidden aliases for exported symbols which are used internally in order
Mon Aug  9 12:48:04 2004  Matthias Clasen  <maclas@gmx.de>

	Add hidden aliases for exported symbols which are
	used internally in order to get rid of many PLT
	entries.  (#145519, Arjan van de Ven)

	* gtk/Makefile.am: Add rules to generate gtk.def and
	from gtk.symbols, and make make check check the abi
	with abicheck.sh.
	(gtk_private_h_sources): Add gtkinternals.h
	(gtk_built_private_headers): Add gtkalias.h
	(gtk_extra_sources): Add gtk.symbols
	(EXTRA_DIST): Add makegtkalias.pl and abicheck.sh

	* gtk/gtk.symbols: New file. Definition of the GTK+ ABI.
	The file can be processed by cpp to filter out certain
	subsets of symbols.

	* gtk/abicheck.sh: New file. Script to check the actually
	symbols exported from libgtk-x11.2.0.so against the symbols
	found in gtk.symbols.

	* gtk/makegtkalias.pl: New file. Perl script to generate the
	header containing the alias definitions for internally used
	exported symbols from a list of symbols.

	* gtk/gtkinternals.h: New file. An uninstalled header listing
	symbols which must be exported for some reason and do not appear
	in any other header.

	* gtk/*.c: Include gtkalias.h
2004-08-09 16:59:53 +00:00
Soeren Sandmann
01a5698e1d Make menus only stay up if you release within 500 milliseconds.
Wed Jun  2 00:39:58 2004  Soeren Sandmann  <sandmann@daimi.au.dk>

	* gtk/gtkmenushell.c (gtk_menu_shell_button_release): Make menus
	only stay up if you release within 500 milliseconds.
	(gtk_menu_shell_button_press): Set the activate_time to the event
	time when a button is pressed.

	* gtk/gtkmenu.c (gtk_menu_motion_notify, gtk_menu_enter_notify):
	Interprete button releases as activate when we have seen both an
	enter an a motion event.
2004-06-01 22:47:14 +00:00
Owen Taylor
3895bea4df #136672, reported by Christian Persch; fixes based on a patch by Soeren
Sun Mar 14 19:26:48 2004  Owen Taylor  <otaylor@redhat.com>

        #136672, reported by Christian Persch; fixes based
        on a patch by Soeren Sandmann.

        * gtk/gtkmenu.c: Change the handling of mixed gridded
        and non-gridded menu items; the old method was causing
        major performance problems even with the "avoid relayout
        on destruction" hack put in recently.

        Now we first lay out the gridded items and then put the
        non-gridded items into empty rows / after the gridded items.
        Layout is done in a central menu_shell_ensure_layout(). Also
        avoid emitting property notifications when we initially
        insert or attach items.

        * gtk/gtkmenushell.[ch] gtk/gtkmenu.c: Stop setting the
        unused menu_shell->menu_flag, and document it as unused
        in the header.

        * tests/testactions.c: Add a test of creating/removing
        lots of items.

        * test/testgtk.c: Add some more cruft to the menu test.
2004-03-15 02:03:59 +00:00
Federico Mena Quintero
80581c3011 Fixes #136082 and #135265, patch by Morten Welinder.
2004-03-05  Federico Mena Quintero  <federico@ximian.com>

	Fixes #136082 and #135265, patch by Morten Welinder.

	* configure.in: Use AC_SYS_LARGEFILE.

	* */*.c: #include <config.h>
2004-03-06 03:38:59 +00:00
Tim Janik
c454880a0c expose gtk_bindings_activate_event(), changed callers.
Mon Mar  1 23:52:15 2004  Tim Janik  <timj@gtk.org>

        * gtk/gtkbindings.[hc]: expose gtk_bindings_activate_event(), changed
        callers.

        * gtk/gtkwindow.[hc]: added gtk_window_propagate_key_event() to expose
        the key event propagation mechanism used for focus widgets.
        (gtk_window_key_release_event): use the same key event propagation logic
        as gtk_window_key_press_event().
2004-03-02 00:04:36 +00:00
Owen Taylor
6062e54945 export gtk_window_activate_key() (Request from Tim Janik)
Sun Feb 29 20:34:06 2004  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkwindow.[ch] gtk/gtkmenushell.c: export
        gtk_window_activate_key() (Request from Tim Janik)
2004-03-01 01:41:17 +00:00
Matthias Clasen
362158dc78 Right-justify labels in rtl mode. (#129071, chinen@jp.ibm.com)
Tue Feb  3 02:04:44 2004  Matthias Clasen  <maclas@gmx.de>

	* gtk/gtklabel.c (gtk_label_ensure_layout): Right-justify labels
	in rtl mode.  (#129071, chinen@jp.ibm.com)

Tue Feb  3 02:01:25 2004  Matthias Clasen  <maclas@gmx.de>

	* gtk/gtkmenushell.c (gtk_real_menu_shell_move_current): Exchange the
	meaning GTK_MENU_DIR_PARENT/CHILD and GTK_MENU_DIR_PREV/NEXT in rtl
	mode.  (#107528)
2004-02-03 01:03:56 +00:00
Matthias Clasen
b21fe1745c New function to emit the "cancel" signal on a menu shell.
Sun Dec 21 01:54:40 2003  Matthias Clasen  <maclas@gmx.de>

	* gtk/gtkmenushell.h:
	* gtk/gtkmenushell.c (gtk_menu_shell_cancel): New function
	to emit the "cancel" signal on a menu shell.

	* gtk/gtkmenu.c (gtk_menu_key_press):
	* gtk/gtkoptionmenu.c (gtk_option_menu_remove_menu):
	* gtk/gtkmenubar.c (_gtk_menu_bar_cycle_focus): Use the
	new function instead of directly emitting the
	signal.  (#81803, Owen Taylor)
2003-12-21 00:59:46 +00:00
Owen Taylor
a649119906 Remove usage of menu_shell->ignore leave which was to deal with stray
Wed Aug 13 17:01:49 2003  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkmenushell.[ch] (gtk_menu_shell_enter_notify):
        Remove usage of menu_shell->ignore leave which was
        to deal with stray events we no longer get because
        we do grabbing differently. Comment it as unused in
        the header. (#115837, Keith Bissett)
2003-08-13 21:13:09 +00:00
Manish Singh
dd74be94c6 demos/gtk-demo/main.c demos/gtk-demo/tree_store.c gdk/x11/gdkscreen-x11.c
Thu Feb 27 17:44:24 2003  Manish Singh  <yosh@gimp.org>

        * demos/gtk-demo/main.c
        * demos/gtk-demo/tree_store.c
        * gdk/x11/gdkscreen-x11.c
        * gtk/gtkcellrenderertoggle.c
        * gtk/gtkcolorsel.c
        * gtk/gtkdnd.c
        * gtk/gtkeditable.c
        * gtk/gtkentry.c
        * gtk/gtkmenu.c
        * gtk/gtkmenubar.c
        * gtk/gtkmenuitem.c
        * gtk/gtkmenushell.c
        * gtk/gtkrc.c
        * gtk/gtksettings.c
        * gtk/gtkstyle.c
        * gtk/gtktextbuffer.c
        * gtk/gtktextview.c
        * gtk/gtktreeviewcolumn.c
        * tests/testgtk.c
        * tests/testtext.c
        * tests/testtreeedit.c
        * tests/testtreefocus.c
        * tests/testtreeview.c: remove unnecessary G_OBJECT() casts.
2003-02-28 01:45:51 +00:00
Owen Taylor
f9a399961e Make up from the menu bar go to the end of the submenu. (#96114, Ian
Wed Jan 29 15:43:56 2003  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkmenushell.c (gtk_real_menu_shell_move_current):
        Make up from the menu bar go to the end of the submenu.
        (#96114, Ian Peters.)

        * gtk/gtkmenuitem.c (gtk_menu_item_mnemonic_activate):
        Only do the select-but-not-activate stuff if the
        menu is already active. Otherwise, just activate.
        (#101690, Arvind Samptur)
2003-01-29 21:02:03 +00:00
Owen Taylor
08a08cf1b5 Add a new binding signal, "move_scroll", and use it to hook up
Sat Dec 14 14:19:16 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkmenu.c: Add a new binding signal, "move_scroll",
        and use it to hook up Home/End/Page_Up/Page_Down keybindings.
        (#80484, Narayana Pattipati, Marius Andreiana)

        * gtk/gtkmenu.c (gtk_menu_scroll_item_visible): Fix some
        bugs in the computation of when an item is visible. (#99545)

        * gtk/gtkbindings.[ch] (_gtk_binding_signal_new) gtk/gtkmenushell.c:
        Move here, export privately.

        * gtk/gtkmenushell.c (_gtk_menu_shell_select_last): Export
        privately.

        * gtk/gtkmenushell.c (gtk_menu_shell_select_item): Don't
        select the item if it is already selected.
2002-12-14 22:43:52 +00:00
Matthias Clasen
7cb3f99fc7 Document 2.2 API additions. 2002-11-28 00:33:17 +00:00
Soeren Sandmann
4b08e835a4 gtkmenu.c, gtkmenubar.c, gtkmenuitem.c, gtkmenushell.c, gtkmenushell.h,
Sun Oct 20 23:58:03 2002  Soeren Sandmann  <sandmann@daimi.au.dk>

	* gtkmenu.c, gtkmenubar.c, gtkmenuitem.c, gtkmenushell.c,
	gtkmenushell.h, gtkmenushell.h

	- make the delay before submenus appear below menu bars a
	  GtkSetting
	- make the delay before submenus pops up a GtkSetting
	- make the stay up triangle slightly larger
	- don't pop up the first submenu immediately.
	- make the default delay for submenus 225 ms, and 0 for menubars.
	- make the default delay before popping down inside the stay-up
	  triangle 1000 ms

	Fixes #74950
2002-10-20 22:29:57 +00:00
Manish Singh
8409ada92f Deprecation cleanup
Fri Oct  4 18:40:50 2002  Manish Singh  <yosh@gimp.org>

        * gtkcheckmenuitem.[ch] gtkimagemenuitem.[ch] gtkmenu.[ch]
        gtkmenubar.[ch] gtkmenuitem.[ch] gtkmenushell.[ch]
        gtkradiomenuitem.[ch]: Deprecation cleanup
2002-10-05 01:51:16 +00:00
Owen Taylor
4d7d94f633 Make gtk_menu_shell_select_first() public. (#70374)
Mon Sep 23 17:50:23 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkmenushell.[ch] gtk/gtkentry.c gtk/gtkmenubar.c
        gtk/gtkmenuitem.c gtk/gtktextview.c: Make
        gtk_menu_shell_select_first() public. (#70374)
2002-09-23 21:53:20 +00:00
Matthias Clasen
083c3aef51 Mark abstract types as G_TYPE_FLAG_ABSTRACT. (#72383)
* gdk/gdkdraw.c (gdk_drawable_get_type):
	* gdk/gdkgc.c (gdk_gc_get_type):
	* gtk/gtkmenushell.c (gtk_menu_shell_get_type):
	* gtk/gtkimcontext.c (gtk_im_context_get_type):
	* gtk/gtkprogress.c (gtk_progress_get_type):
	* gtk/gtkoldeditable.c (gtk_old_editable_get_type):
	* gtk/gtkcellrenderer.c (gtk_cell_renderer_get_type):
	* gtk/gtkwidget.c (gtk_widget_get_type):
	* gtk/gtkseparator.c (gtk_separator_get_type):
	* gtk/gtkscrollbar.c (gtk_scrollbar_get_type):
	* gtk/gtkscale.c (gtk_scale_get_type):
	* gtk/gtkrange.c (gtk_range_get_type):
	* gtk/gtkpaned.c (gtk_paned_get_type):
	* gtk/gtkmisc.c (gtk_misc_get_type):
	* gtk/gtkitem.c (gtk_item_get_type):
	* gtk/gtkcontainer.c (gtk_container_get_type):
	* gtk/gtkbbox.c (gtk_button_box_get_type):
	* gtk/gtkbox.c (gtk_box_get_type):
	* gtk/gtkbin.c (gtk_bin_get_type):
	* gtk/gtkobject.c (gtk_object_get_type): Mark abstract types as
	G_TYPE_FLAG_ABSTRACT.  (#72383)
2002-09-21 23:26:14 +00:00
Owen Taylor
4e84b66628 When a menubar is up, use F10 to cycle menubars, not Control-Tab (#87159,
Thu Jul 25 14:14:46 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkmenushell.c: When a menubar is up, use F10 to cycle
        menubars, not Control-Tab (#87159, Calum Benson. Patch from
        Padraig O'Briain.)

        * gtk/gtkmenubar.c: When cycling menu bars, cancel
        after the last instead of wrapping around.
2002-07-25 18:17:28 +00:00
Owen Taylor
367cacdf1b Add an extra parameter to _gtk_menu_item_select_first() to allow us to
Fri Jul  5 20:18:23 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkmenushell.[ch] gtk/gtkmenubar.c gtk/gtkmenuitem.c
        gtk/gtkentry.c gtk/gtktextview.c: Add an extra parameter
        to _gtk_menu_item_select_first() to allow us to choose
        whether we want to select the first item predictably
        or to select the first sensitive item. Fixes problem
        with insensitive menu items and keynav. (#85796,
        reported by Bill Haneman and others.)
2002-07-06 00:21:43 +00:00
Owen Taylor
789d271164 Check to see if the menu item is selectable before setting
Wed Jun 12 17:31:15 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkmenushell.c (gtk_menu_shell_real_select_item):
        Check to see if the menu item is selectable before
        setting menu_shell->active_menu_item. This hopefully
        will keep gail from getting confused.
        (#84115, Remus Draica)
2002-06-12 21:32:25 +00:00
Alex Larsson
4632fb81c7 Integrate Erwann Chenede's multihead changes for the gtk/ directory.
Mon Apr 29 18:28:00 2002  Owen Taylor  <otaylor@redhat.com>

	Integrate Erwann Chenede's multihead changes for the gtk/ directory.

	* gtk/gtkclipboard.[ch]: Add gtk_clipboard_get_for_display(),
	make internals multihead aware.

	* gtk/gtkcolorsel.[ch]: Add
	gtk_color_selection_set_change_palette_with_screen_hook () [ugh!]
	make up for non-multihead safety of
	gtk_color_selection_set_change_palette_hook()

	* gtk/gtkinvisible.[ch] gtk/gtkmenu.[ch] gtkwindow.[ch]: Add
	gtk_{invisible,menu,window}_set_screen(); add "screen" properties
	for GtkWindow and GtkMenu.

	* gtk/gtkplug.[ch]: Add gtk_plug_construct_for_display(),
	gtk_plug_new_for_display(). Multihead fixes.

	* gtk/gtkselection.[ch]: Add gtk_selection_owner_set_for_display(),
	make internals multihead aware.

	* gtk/gtksettings.[ch]: Add gtk_settings_get_for_screen(), get
	rid of now-useless gtk_settings_constructor().

	* gtk/gtkstyle.[ch]: Add gtk_style_get_font_for_display(), fix
	check/radio button indicators bitmap handling to be multihead
	safe.

	* gtk/gtkwidget.[ch]: Add gtk_widget_get_screen(), gtk_widget_has_screen(),
	gtk_widget_get_display(), gtk_widget_get_clipboard(),
	gtk_widget_get_root_window().

	* gtk/gtkbindings.c gtk/gtkbutton.c gtk/gtkclist.c gtk/gtkcombo.c
	gtk/gtkctree.c gtk/gtkdnd.c gtk/gtkfilesel.c gtk/gtkgamma.c
	gtk/gtkhandlebox.c gtk/gtkhsv.c gtk/gtkimcontext.c gtk/gtklabel.c
	gtk/gtklist.c gtk/gtkmain.c gtk/gtkmenuitem.c gtk/gtkmenushell.c
	gtk/gtknotebook.c gtk/gtkoldeditable.c gtk/gtkoptionmenu.c
	gtk/gtkpaned.c gtk/gtkpreview.c gtk/gtksocket.c gtk/gtktext.c
	gtk/gtktextbuffer.c gtk/gtktextview.c gtk/gtktipsquery.c
	gtk/gtktooltips.c gtk/gtktreeview.c gtk/gtktreeviewcolumn.c:
	misc mechanical multihead-safety fixes.

	* gtk/gtkclipboard.c: Use a GtkImage rather than a pixmap for
	the dropper, look up the color palette only at realization time,
	other multihead fixes.

	* gtk/gtkcombo.c (gtk_combo_unrealize): Popdown the list when
	unrealizing.

	* gtk/gtkentry.c: Only claim ownership of the primary selection
	when realized, misc multihead fixes.

	* gtk/gtkfontsel.c: Only fill in fonts when attached to a screen,
	fix gtk_font_selection_get_font() for multihead.

	* gtk/gtkgc.c: make the depth => drawable hash per-screen.

	* gtk/gtkinvisible.c: Add a constructor that realizes the
	widget, so we get a realized widget with g_object_new() as
	well gtk_invisible_new() as before.

	* gtk/gtkmain.c: Get rid of unused gtk_visual/gtk_colormap
	variables.

	* gtk/gtktextdisplay.c: Add warnings if stipple bitmaps
	are used on the wrong screen.

	* gtk/gtktoolbar.c: Make handling of GtkSettings-based layout
	read properties and connect to settings when the screen is changed,
	rather than on init/finalize.

	* gtk/gtkwindow.c: Fix icon handing to be multihead safe ...
	default icon pixmaps/mask are only shared between windows on the
	same screen. Misc multihead fixes.

Sat Apr 27 13:49:53 2002  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkclipboard.c (gtk_clipboard_get_for_display):
	Update docs to reference GDK_SELECTION_CLIPBOARD rather GDK_NONE.

2002-04-29  Alex Larsson  <alexl@redhat.com>

	* gdk/linux-fb/gdkproperty-fb.c (gdk_property_get):
	Fix silly bug, noticed by Sven Neumann.

Sun Apr 28 22:43:55 2002  Jonathan Blandford  <jrb@gnome.org>

	* gtk/gtktreemodelsort.c (gtk_tree_model_sort_set_sort_func): Fix
	so that you can set a new sort func.
2002-04-29 22:53:45 +00:00
Owen Taylor
03498ba24f Export private _gtk_menu_shell_activate() to encapsulate cut-and-paste
Sat Apr  6 06:57:00 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkmenushell.[ch] gtk/gtkmenuitem.c: Export
        private _gtk_menu_shell_activate() to encapsulate
        cut-and-paste code.

        * gtk/gtkmenubar.c: Select the first item on the menu bar
        for F10 rather than acting as if the user pressed <Alt>F
        to select the file manager.
2002-04-11 14:28:11 +00:00
Owen Taylor
288909d466 Improve test to prevent infinite loop. (#74952, Thomas Leonard)
Wed Mar 20 11:32:07 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkentry.c: Improve test to prevent infinite
        loop. (#74952, Thomas Leonard)

        * gtk/gtkmenushell.c (gtk_real_menu_shell_cycle_focus):
        Fix warning when toplevel menu shell isn't a menu
        bar. (Thomas Leonard, #75602)
2002-03-20 17:04:32 +00:00
Owen Taylor
8627dbda08 Back out changes to propagate keys to parent menu shells, since that broke
Sun Mar  3 17:03:30 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkmenushell.c gtk/gtkmenubar.[ch]: Back out
        changes to propagate keys to parent menu shells, since
        that broke stuff; rather implement ::cycle-focus as
        a key binding on GtkMenuShell rather than on GtkMenuBar.

        * gtk/gtkmenushell.c (gtk_menu_shell_class_init): Add
        add bindings for ::cycle-focus. (In gtkmenubar.c, were
        mistakently bound to ::move-focus.)
2002-03-03 22:15:39 +00:00