Commit Graph

115 Commits

Author SHA1 Message Date
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
Havoc Pennington
727eb8afbd add g_return_if_fail for monitor number <= 0
2002-10-16  Havoc Pennington  <hp@redhat.com>

	* gdk/x11/gdkscreen-x11.c (gdk_screen_get_monitor_geometry): add
	g_return_if_fail for monitor number <= 0

	* gtk/gtkmenu.c (gtk_menu_position): handle case where pointer
	is outside the screen.

	* gtk/gtkwindow.c (get_monitor_center): factor out
	the code to position a window in center
	(gtk_window_compute_configure_request): use here
	(gtk_window_constrain_position): use here, the
	code here wasn't multihead-aware

	* gdk/x11/gdkevents-x11.c (get_real_window): function to
	return the window the event describes, rather than the window
	that received the event.
	(gdk_event_translate): use result of that function for
	filling in GdkEvent::window, which only matters for
	MapNotify/UnmapNotify and ConfigureNotify, in practice.

	Unbreaks various things using SubstructureNotifyMask.
2002-10-17 20:24:03 +00:00
Soeren Sandmann
a9d26e1478 Take arrows into account when clamping the offset. Fixes #95758.
Thu Oct 17 22:09:05 2002  Soeren Sandmann  <sandmann@daimi.au.dk>

	* gtk/gtkmenu.c (gtk_menu_scroll_to): Take arrows into
	account when clamping the offset. Fixes #95758.
2002-10-17 20:09:39 +00:00
Soeren Sandmann
a130f089ca Documentation fixes.
Sun Oct 13 18:50:14 2002  Soeren Sandmann  <sandmann@daimi.au.dk>

	* gtkmenu.c, gtkmenu.sgml, gtkitemfactory.c, gdkwindow.c,
	gtkwindow.c, gtkpaned.sgml, gtkdialog.c, gtkbox.h, gtkbutton.sgml,
	gtktreemodel.sgml,gtktable.sgml, gtktable.c:

	Documentation fixes.

	#85719, #90759, #95169, Owen Taylor;
	#89221, Yao Zhang, Matthias Clasen;
	#95592, Joost Faassen;
	#92637, Vitaly Tishkov;
	#94616, Ben Martin;
	#94772, sbaillie@bigpond.net.au;
2002-10-13 17:17:14 +00:00
Manish Singh
28bc53032b Deprecation cleanup
Wed Oct  9 17:40:13 2002  Manish Singh  <yosh@gimp.org>

        * gtk/gtkaccelmap.c gtk/gtkfixed.[ch] gtk/gtkkeyhash.c gtk/gtkmenu.c
        gtk/gtkobject.c gtk/gtkoldeditable.c gtk/gtkrc.c gtk/gtkspinbutton.[ch]
        gtk/gtktable.[ch] gtk/gtkthemes.c: Deprecation cleanup
2002-10-10 01:02:25 +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
92fa223146 Fix error in computing length and a memory leak. (Fixes #94072, reported
Thu Oct  3 19:00:55 2002  Owen Taylor  <otaylor@redhat.com>

        * gdk/x11/gdkselection-x11.c (gdk_selection_property_get):
        Fix error in computing length and a memory leak.
        (Fixes #94072, reported by Hema Seetharamaiah)

        * gtk/gtkmenu.c (gtk_menu_motion_notify): Fix &event
        used instead of event.
2002-10-03 23:23:16 +00:00
Owen Taylor
ef33adff83 Add a 'type' parameter, make public.
Thu Oct  3 14:13:33 2002  Owen Taylor  <otaylor@redhat.com>

        * gdk/gdkevents.c (gdk_event_new): Add a 'type'
        parameter, make public.

        * gdk/gdkevents.c (gdk_event_copy): Copy the screen.

        * gdk/gdkevents.c gdk/linux-fb/gdkmain-fb.c
        gdk/x11/gdkevents-x11.c gdk/win32/gdkevents-win32.c:
        _gdk_event_new() => gdk_event_new().

        * gdk/win32/gdkevents-win32.c (real_window_procedure):
        Fix event_private->screen breakage that results from evil
        encapsulation breakage here.

        * gtk/gtkclist.c gtk/gtkcombo.c gtk/gtkcontainer.c
        gtk/gtkdialog.c gtk/gtkdnd.c gtk/gtkdrawingarea.c
        gtk/gtkimcontextsimple.c gtk/gtklist.c gtk/gtkmenu.c
        gtk/gtknotebook.c gtk/gtkplug.c gtk/gtkselection.c
        gtk/gtktext.c gtk/gtktreeitem.c gtk/gtktreeview.c
        gtk/gtkviewport.c gtk/gtkwindow-decorate.c gtk/gtkwindow.c
        tests/testgtk.c: Remove most usage of stack-allocated
        GdkEvent structures.

        * gtk/gtktreeview.c: Use a cut-and-paste of the full
        send_focus_event() from gtkwindow.c that does the necessary
        notification of the ::has-focus property and setting of
        the HAS_FOCUS flag.x

        * gtk/gtkdnd.c: Clean up some mess/duplicated code; removing
        an extraneous use of a GdkEvent.
2002-10-03 20:53:30 +00:00
Padraig O'Briain
7995a9ef97 Add gtk_menu_focus() so we do not waste time trying to focus a menu item.
* gtk/gtkmenu.c: Add gtk_menu_focus() so we do not waste time
trying to focus a menu item. (bug #91258)
2002-10-01 09:57:55 +00:00
Soren Sandmann
77eee887f3 Minor documentation fixes
2002-08-10  Soren Sandmann  <sandmann@daimi.au.dk>

	* docs/reference/gtk/tree_widget.sgml,
	docs/reference/gtk/tmpl/gtkdialog.sgml,
	docs/reference/gtk/tmpl/gtkentry.sgml,
	docs/reference/gtk/tmpl/gtkfilesel.sgml,
	docs/reference/gtk/tmpl/gtkfontsel.sgml,
	docs/reference/gtk/tmpl/gtkfontseldlg.sgml,
	docs/reference/gtk/tmpl/gtktreemodel.sgml,
	docs/reference/gtk/tmpl/gtkwidget.sgml, gdk/x11/gdkdisplay-x11.c,
	gtk/gtkbbox.c, gtk/gtkbox.c, gtk/gtkbutton.c, gtk/gtkcellrenderer.c,
	gtk/gtkcellrendererpixbuf.c, gtk/gtkcellrenderertext.c,
	gtk/gtkcheckmenuitem.c, gtk/gtkcontainer.c, gtk/gtkcurve.c,
	gtk/gtkdialog.h, gtk/gtkentry.c, gtk/gtkfilesel.c, gtk/gtkfontsel.c,
	gtk/gtkframe.c, gtk/gtkhandlebox.c, gtk/gtkiconfactory.c,
	gtk/gtkimage.c, gtk/gtkinvisible.c, gtk/gtkitemfactory.c,
	gtk/gtklabel.c, gtk/gtklayout.c, gtk/gtkmenu.c, gtk/gtkprogress.c,
	gtk/gtkprogressbar.c, gtk/gtkscrolledwindow.c, gtk/gtksizegroup.c,
	gtk/gtktable.c, gtk/gtktextiter.c, gtk/gtktexttag.c,
	gtk/gtktexttag.h, gtk/gtktextview.c, gtk/gtktogglebutton.c,
	gtk/gtktoolbar.c, gtk/gtktreemodel.c, gtk/gtktreeselection.c,
	gtk/gtktreestore.c, gtk/gtktreeview.c, gtk/gtktreeviewcolumn.c,
	gtk/gtkviewport.c, gtk/gtkwidget.c, gtk/gtkwidget.h,
	gtk/gtkwindow.c:

	Minor documentation fixes

	(#89254, patch from Brett Nash;
	 #85809, patch from daten@dnetc.org;
	 #76391, patch from Ross Burton;
	 #74559, Manuel Clos;
	 #73569, #72005, Alexey A. Malyshev;
	 #70061, patch from Dennis Bj"orklund;
	 #64566, #63388, #58328, #57499, #81007, #77349, Vitaly Tishkov;
	 #78932, Vitaly Tishkov, patch from Ross Burton;
	 #73306)
2002-08-10 09:55:41 +00:00
Owen Taylor
786b3e298f Fix menus resizing dynamically while they are popped up or torn off.
Fri Aug  2 18:00:46 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkmenu.c: Fix menus resizing dynamically while
        they are popped up or torn off. (#78949)
2002-08-02 22:03:23 +00:00
Michael Meeks
dc1a2846cf destroy the transfer window if the grab fails so we don't get events on
2002-05-30  Michael Meeks  <michael@ximian.com>

	* gtk/gtkmenu.c (gtk_menu_popup): destroy the transfer
	window if the grab fails so we don't get events on this
	window after the menu is finalized with a duff GtkWidget
	pointer: #82366
2002-05-31 16:44:03 +00:00
Soeren Sandmann
25e0ae0186 add gtk_menu_style_set(). fixes #79345
Thu May 30 07:59:38 2002  Soeren Sandmann  <sandmann@daimi.au.dk>

	* gtk/gtkmenu.c (gtk_menu_style_set): add
	gtk_menu_style_set(). fixes #79345
2002-05-30 06:05:42 +00:00
Ettore Perazzoli
ff784b978b If the menu is scrolled down or up, and some of the widget area is empty,
* gtk/gtkmenu.c (gtk_menu_paint): If the menu is scrolled down or
up, and some of the widget area is empty, don't fill it in with
GTK_SHADOW_IN rectangles that make it looks strange.  Fixes
#72695.
2002-05-16 14:00:45 +00:00
Owen Taylor
f47470a9ef Fix format of selection data to be 8 rather than GTK_TYPE_POINTER.
Tue May 14 17:30:57 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkctree.c gtk/gtkclist.c: Fix format of
        selection data to be 8 rather than GTK_TYPE_POINTER.
        (#79751, James Henstridge)

        * gtk/gtkmenu.c (gtk_menu_key_press): Call
        gtk_accelerator_valid() with cleaned up
        accel_key/accel_mods, not the raw values from
        the event. (#80513, Havoc Pennington.)

        * gtk/gtkmenu.c (gtk_menu_set_tearoff_state): Remove
        some dead code that set the tearoff window not
        resizable and removed decorations. (#80235)
2002-05-14 21:36:32 +00:00
Erwann Chenede -
2325caf979 remove virtualization and made it cross platform. fix #79961 fixed
2002-05-01 Erwann Chenede - <erwann.chenede@sun.com>

  * gdk/gdkscreen.[hc] (gdk_screen_x11_get_monitor_at_window):
    remove virtualization and made it cross platform. fix #79961
  * gdk/x11/gdkdisplay-x11.c (check_solaris_xinerama):
    fixed initialization bugs.
  * gdk/x11/gdkscreen-x11.[hc] (gdk_screen_get_monitor_geometry):
  * tests/testxinerama.c:
  * gtk/gtkwindow.c (gtk_window_compute_configure_request):
  * gtk/gtkmenu.c (gtk_menu_position):
    take a GdkRectangle argument instead of returning
    a GdkRectangle * and propagated the changes. fix #79974
2002-05-01 17:22:54 +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
Tim Janik
b0d72c4d93 don't install/change accelerators from locked accel groups.
Tue Apr 16 07:53:49 2002  Tim Janik  <timj@gtk.org>

        * gtk/gtkmenu.c (gtk_menu_key_press): don't install/change accelerators
        from locked accel groups.

        * gtk/gtkwidget.c (_gtk_widget_get_accel_path): export whether the
        accel path is from a locked accel group.
2002-04-16 05:57:45 +00:00
Owen Taylor
441488cdb4 Shuffle the ordering around some more (position before realizing) fixing
Tue Mar 26 14:46:50 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkmenu.c (gtk_menu_popup): Shuffle the ordering around
        some more (position before realizing) fixing problems with
        arrows popping up at the wrong time (#73386), hopefully not
        introducing other problems. (Reported by Ettore Perrazoli, others)
2002-03-26 19:59:34 +00:00
Soeren Sandmann
7678a1ed16 Fix test for "active submenu".
Fri Mar 15 13:31:51 2002  Soeren Sandmann  <sandmann@daimi.au.dk>

	* gtk/gtkmenu.c (gtk_menu_leave_notify): Fix test for "active
	submenu".
2002-03-15 13:15:17 +00:00
Soeren Sandmann
f280f6d080 change offset of cursor corner of navigation region from (-2, 2) to (-2,
Sun Mar  3 20:48:12 2002  Soeren Sandmann  <sandmann@daimi.au.dk>

	* gtk/gtkmenu.c (gtk_menu_set_submenu_navigation_region): change
	offset of cursor corner of navigation region from (-2, 2) to
	(-2, 0).
2002-03-03 19:50:50 +00:00
Owen Taylor
86e7c7dfe9 Fix double set of bindings for page-up/down. (#72605, Tor Lillquist)
Mon Feb 25 22:10:47 2002  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkscrolledwindow.c (gtk_scrolled_window_class_init): Fix
	double set of bindings for page-up/down. (#72605, Tor Lillquist)

	* gtk/gtkmenu.c (gtk_menu_key_press): Remove consumed modiifers
	when setting up accelerator to make accelerators look prettier.
	(#65416, Guillermo S. Romero)
2002-02-26 03:23:45 +00:00
Owen Taylor
8fe564e37a Add some docs for GTK_NEED_REQUEST GTK_NEED_ALLOCATION.
Mon Feb 18 16:44:00 2002  Owen Taylor  <otaylor@redhat.com>

        * docs/widget_system.txt: Add some docs for GTK_NEED_REQUEST
        GTK_NEED_ALLOCATION.

        * gtk/gtkmenu.c (gtk_menu_popup): Scroll the menu
        to the right place before showing the menu to
        avoid spurious enter events.

        * gtk/gtkmenu.c (gtk_menu_realize): Only scroll
        if there is an active menu item.

        * gtk/gtkwidget.c (gtk_widget_init): Set RESIZE_NEEDED
        ALLOC_NEEDED initially.
2002-02-18 22:08:41 +00:00
Owen Taylor
2e8d083c3c Released 1.3.14
Sun Feb 17 21:30:49 2002  Owen Taylor  <otaylor@redhat.com>

        * Released 1.3.14

        * configure.in: Version 1.3.14, interface, binary age 0.

        * gdk/gdkregion-generic.c (miSubtractO): Fix out-of-bounds
        read. (#71619, reported by Morten Welinder)

        * gtk/gtkmenu.c (gtk_menu_class_init): Fix setting default.

        * gtk/gtkfilesel.c (gtk_file_selection_class_init): Add
        a select_multiple property to go along with thenew
        get/set_select_multiple.

        * gdk/gdkwindow.c: Patch from Soeren Sandmann to improve
        update debugging code. (#71703)
2002-02-18 03:29:00 +00:00
Tim Janik
f42cc7f7fb fix figuring accel path and changing behaviour.
Wed Feb 13 13:26:39 2002  Tim Janik  <timj@gtk.org>

        * gtk/gtkmenu.c: fix figuring accel path and changing behaviour.
2002-02-13 12:28:33 +00:00
Darin Adler
6ec06edbbf isspace -> g_ascii_isspace Remove gdki8n.h include. Remove <ctype.h>
* demos/gtk-demo/main.c: (load_file): isspace -> g_ascii_isspace
	* gdk/x11/gdkim-x11.c: Remove gdki8n.h include.
	* gdk/x11/gdkkeys-x11.c: Remove <ctype.h> include.
	* gdk/x11/gdkmain-x11.c: Remove <ctype.h> include.
	* gtk/fnmatch.c: Remove <ctype.h> include.
	* gtk/gtkaccelgroup.c: Remove <ctype.h> include.
	* gtk/gtkaccellabel.c: (gtk_accel_label_refetch): toupper ->
	g_unichar_toupper, toupper -> g_unichar_totile
	* gtk/gtkbindings.c: Remove <ctype.h> include.
	* gtk/gtkfontsel.c: Remove <ctype.h> include.
	* gtk/gtkiconfactory.c: Remove <ctype.h> include.
	* gtk/gtkinputdialog.c: Remove <ctype.h> include.
	* gtk/gtklabel.c: Remove <ctype.h> include.
	* gtk/gtkmain.c: Remove <ctype.h> include.
	* gtk/gtkmenu.c: Remove <ctype.h> include.
	* gtk/gtkoldeditable.c: Remove <ctype.h> include.
	* gtk/gtkrc.c: Remove <ctype.h> include.
	* gtk/gtktextbtree.c: Remove <ctype.h> include.
	* gtk/gtktextiter.c: Remove <ctype.h> include.
	* gtk/gtktextsegment.c: Remove <ctype.h> include.
2002-02-08 19:12:34 +00:00
Padraig O'Briain
402f5b9d93 Fix leak of GdkEvent (#70519)
* gtk/gtkmenu.c (gtk_menu_popup):
Fix leak of GdkEvent (#70519)
2002-02-04 17:46:33 +00:00
Owen Taylor
ae7521bd9d Non-exported _gtk_menu_select_first() function that selects the first item
Sat Feb  2 20:16:04 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkmenushell.c (_gtk_menu_shell_select_first):
        Non-exported _gtk_menu_select_first() function that
        selects the first item of the menu in a standard
        way. (Skipping tearoffs.)

        * gtk/gtkmenushell.c gtk/gtkentry.c gtk/gtktextview.c
        gtkmenuitem.c: Use _gtk_menu_shell_select_first().

        * gtk/gtkmenuitem.c (gtk_real_menu_item_select): Remember
        if we are starting the timeout from a keypress so
        we can set menushell->ignore_enter properly.

        * gtk/gtknotebook.c (focus_child_in): Return something
        meaningful if there are no children.

        * gtk/gtkmenu.c (gtk_menu_key_press): Fix precendence
        problem.
2002-02-03 01:25:32 +00:00
Owen Taylor
0ed21b67d9 Fix some bugs in the determination of xgrab_shell.
Sat Feb  2 19:15:42 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkmenu.c (gtk_menu_popup): Fix some bugs in
        the determination of xgrab_shell.
2002-02-03 00:18:41 +00:00
Owen Taylor
d6622d38d6 Add a GtkSetting (gtk-entry-select-on-focus) controlling whether the
Sat Feb  2 17:43:00 2002  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkentry.c (gtk_entry_grab_focus): Add a GtkSetting
	(gtk-entry-select-on-focus) controlling whether the
	contents of an entry are selected on focus in.

	* gtk/gtkmenu.c (gtk_menu_key_press): Add a GtkSetting
	(gtk-can-change-accels) controlling whether accelerators can be
	changed on the fly or not. (#51902)

	* gtk/gtkmenu.c (gtk_menu_key_press): Allow unmodified
	accelerators, now that accelerator changing can be turned
	off for those who won't expect it. (#61285)

	* gtk/gtkaccelgroup.c (gtk_accelerator_valid): Allow
	Backspace/Delete/KP_Delete as valid accelerators.

	* gtk/gtkmenu.c (gtk_menu_key_press): Allow setting of
	Delete/Backspace as accelerators by making them toggle
	the menu item between empty and the pressed key.
	(#58605)

	* tests/testgtkrc: Remove the objectionably short cursor blink
	time setting.
2002-02-02 22:52:22 +00:00
Owen Taylor
2ee08d8ec6 To get around the fact that we may have a owner_events = FALSE grab in
Sat Feb  2 16:43:31 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkmenu.c (gtk_menu_popup): To get around the fact
        that we may have a owner_events = FALSE grab in effect
        when we pop up a window, make a temporary grab on a
        different window, then grab on the real window. Fixes
        a problem where if a context menu popped up under the
        cursor, the first item would be stuck unselected.
        (#59812, reported by Arnaud Charlet.)
2002-02-02 21:50:46 +00:00
Owen Taylor
67ad02989f Remove the "select first item if popped up from keypress" hack -- was
Sat Feb  2 11:37:21 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkmenu.c (gtk_menu_popup): Remove the
        "select first item if popped up from keypress" hack --
        was causing more problems than it was worth
        (#53191, #68483)

        * gtk/gtktextview.c (popup_targets_received):
         gtk/gtkentry.c (popup_targets_received): If activated
        from keyboard, select first item of popup menu.
2002-02-02 17:52:01 +00:00
Matthias Clasen
5c886d0b6c Documentation additions.
* gtk/gtkoldeditable.c, gtk/gtkrc.c,
        gtk/gtkstyle.c: Documentation additions.

        * gtk/gtkmenu.c (gtk_menu_set_accel_path),
        gtk/gtkmenuitem.c (gtk_menu_item_set_accel_path),
        gtk/gtkwidget.c (gtk_widget_add_accelerator): Typo and markup fixes.

        * gtk/gtkitemfactory.c (gtk_item_factory_add_foreign): Document.

        * gtk/gtkaccelmap.c (gtk_accel_map_add_filter): Explain intended use.

        * gtk/running.sgml: Add ids to some elements to make them
        addressable as link targets.
2002-01-14 23:24:02 +00:00
Owen Taylor
095d7c33d7 Call gdk_window_get_pointer() on menu->bin_window not menu->window, so we
Thu Dec 27 15:38:20 2001  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkmenu.c (gtk_menu_stop_navigating_submenu_cb):
        Call gdk_window_get_pointer() on menu->bin_window not
        menu->window, so we get the correct window for the
        menu item. (#65213, Guillermo S. Romero)
2001-12-27 20:43:58 +00:00
Owen Taylor
aae695ab65 Allow unsetting the title by setting to NULL. Move docs inline. Update the
Thu Dec 27 15:13:44 2001  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkmenu.c (gtk_menu_set_title): Allow unsetting
	the title by setting to NULL. Move docs inline.
	Update the title if the tearoff window already
	exists. Code cleanup. (Fixes #65190, reported by
	Vitaly Tishkov.)
2001-12-27 20:22:16 +00:00
Owen Taylor
af7ab9c630 Remove support for "prepainting" the menu before realizing other than via
Wed Dec 12 16:18:26 2001  Owen Taylor  <otaylor@redhat.com>
        * gtk/gtkmenu.c (gtk_menu_realize): Remove support for
        "prepainting" the menu before realizing other than
        via gtk_style_set_background() - this was broken when
        we added menu scroll support.
        * gtk/gtkmenu.c (gtk_menu_paint): Pay attention to the
        window in the expose event -- fixes problem with border
        flashing during scrolling.
2001-12-12 21:30:08 +00:00
James Henstridge
44b9c2d13f check GTK_MENU_ITEM (menu_item)->accel_path first when looking up the
2001-12-12  James Henstridge  <james@daa.com.au>

	* gtk/gtkmenu.c (gtk_menu_key_press): check GTK_MENU_ITEM
	(menu_item)->accel_path first when looking up the accel path.
2001-12-12 12:21:52 +00:00
Kristian Rietveld
209d0867e6 add checks for empty menu items to behave like insensitive items (#59456)
Thu Nov 29 21:35:56 2001  Kristian Rietveld  <kristian@planet.nl>

        * gtk/gtkmenu.c (gtk_menu_motion_notify): add checks for
        empty menu items to behave like insensitive items (#59456)

        * gtk/gtkmenuitem.c (gtk_real_menu_item_activate_item): select
        next item if the first item in the menu is a tear off item
        (#59456-2, suggestion by Matthias Clasen)

        * gtk/gtkmenushell.c (gtk_menu_shell_button_press),
        (gtk_menu_shell_button_release), (gtk_menu_shell_entry_notify),
        (gtk_menu_shell_leave_notify), (gtk_real_menu_shell_move_current),
        (gtk_real_menu_shell_activate_current): add check, so empty
        menu items behave like insensitive items (#59456)

        * gtk/gtkmenuitem.[ch]: add _gtk_menu_item_is_selectable to make
        the checks more readable ...

        * gtk/gtkmenushell.c (gtk_menu_shell_button_press),
        (gtk_menu_shell_button_release): causes the menu to dropdown if the
        caption is clicked again (#64977)
2001-11-29 20:36:12 +00:00
Owen Taylor
476d2a84b7 Move accounting of menu->tearoff_scrollbar width to here and make sure we
Wed Nov 28 18:19:12 2001  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkmenu.c (gtk_menu_set_tearoff_hints): Move
        accounting of menu->tearoff_scrollbar width to here
        and make sure we have the correct requisition.

        * gtk/gtkmenu.c (gtk_menu_position): Fix fixme
        by using gtk_window_move().

        * gtk/gtkmenu.c (gtk_menu_set_tearoff_state): Force
        the requisition to be updated by calling
        gtk_widget_size_request() (#65440)

        * gtk/gtktearoffmenuitem.c (gtk_tearoff_menu_item_activate):
        queue resize before calling gtk_menu_set_tearoff_state().
2001-11-28 23:26:17 +00:00
Tim Janik
9800f731e0 applied patch from owen to get rid of accel map notifiers. changed things
Tue Nov 20 21:25:08 2001  Tim Janik  <timj@gtk.org>

	* applied patch from owen to get rid of accel map notifiers.
	changed things to fix reentrancy and API as discussed on gtk-devel.

	* gtk/gtkaccelgroup.[hc]:
	(gtk_accel_group_finalize): unregister this accel group from all
	accel map paths.
	(accel_closure_invalidate): handle invalidation of closures by
	disconnecting their accelerators.
	(quick_accel_add): move closure connection and changed notification
	into this function to reduce code duplication. don't emit change
	notification on closurers without accelerators.
	(quick_accel_remove): rewrite, do the exact opposite of quick_accel_add
	for a GtkAccelGroupEntry.
	(gtk_accel_group_connect): get rid of the accel_path_quark argument.
	(gtk_accel_group_connect_by_path): new function to add accelerators
	with an accel path.
	(gtk_accel_group_disconnect_closure): new function, disconnect a
	closure from of an accel group.
	(gtk_accel_group_disconnect): loop over all closure for a accel_ley,
	accel_mods pair and remove them.
	(_gtk_accel_group_reconnect): new function that basically does
	gtk_accel_group_disconnect_closure() and
	gtk_accel_group_connect_by_path() once an accel path changed.
	(gtk_accel_groups_disconnect_closure): remove this, there's
	gtk_accel_group_disconnect_closure().

	* gtk/gtkaccelmap.[hc]: keep list of accel groups per entry now,
	nuke notifiers.
	(_gtk_accel_path_is_valid): make this non-static for
	gtkwidget.c and gtkaccelgroup.c assertions.
	(gtk_accel_map_add_notifer): removed this function.
	(gtk_accel_map_remove_notifer): same.
	(_gtk_accel_map_add_group):
	(_gtk_accel_map_remove_group): (un-)register accel groups, with
	accel paths for correct propagation.
	(gtk_accel_map_add_entry): return void.
	(gtk_accel_map_lookup): return gboolean instead of GQuark.

	* gtk/gtkitemfactory.c (gtk_item_factory_add_foreign): always
	set accel_path on widgets.

	* gtk/gtkwidget.[hc]:
	(accel_path_changed): got rid of this, changes are handled by
	accel maps internally now.
	(_gtk_widget_set_accel_path): get things to work without notifiers.
	(gtk_widget_list_accel_closures): list accel closures of a widget.

	* gtk/gtkwindow.[hc]: rename ::accels_changed, to ::keys_changed.
2001-11-20 23:43:03 +00:00
Tim Janik
d07573c090 added gtkaccelmap.sgml. other updates.
Mon Nov 12 23:06:38 2001  Tim Janik  <timj@gtk.org>

        * added gtkaccelmap.sgml. other updates.

Mon Nov 12 23:08:37 2001  Tim Janik  <timj@gtk.org>

	* gtk/maketypes.awk: fix type utils generation on unix.

	* gtk/gtkaccelmap.[hc]: new files, implementing a global accelerator
	registry.

	* gtk/gtkaccelgroup.[hc]: major API/implementation revamp:
	removed GTK_ACCEL_SIGNAL_VISIBLE, gtk_accel_group_get_default,
	gtk_accel_group_get_entry, gtk_accel_group_(un)lock_entry,
	gtk_accel_group_add/remove, gtk_accel_group_handle_add/remove,
	gtk_accel_group_create_add/remove, gtk_accel_group_entries_from_object.
	introduced ::accel_changed signal for change notification, and
	gtk_accel_group_connect/disconnect to connect closures to accel groups.
	made gtk_accel_group_attach/detach and gtk_accel_group_activate private
	functions.
	deprecated gtk_accel_group_ref/unref.

	* gtk/gtkaccellabel.[hc]: changes to make accellabels pay attention
	to accel group changed notification and basically operate on closures.
	removed gtk_accel_label_get_accel_object and
	gtk_accel_label_set_accel_object.
	introduced gtk_accel_label_set_accel_closure, and for convenience,
	gtk_accel_label_set_accel_widget.

	* gtk/gtkitemfactory.[hc]: removed accelerator propagation code
	which mostly moved into gtkaccelmap.[hc].
	removed gtk_item_factory_parse_rc*, gtk_item_factory_dump_*
	and gtk_item_factory_print_func.

	* gtk/gtkmain.c: call _gtk_accel_map_init().

	* gtk/gtkmenuitem.[hc]: introduced gtk_menu_item_set_accel_path(),
	that associates an accelerator path with menu items, through which
	persistent accelerator settings on menu items are enabled.

	* gtk/gtkmenu.[hc]: added gtk_menu_set_accel_path() so accelerator
	paths of menu item can be default constructed to allow installation
	of accelerators on menu items that don't come with an accelerator
	binding by default.

	* gtk/gtksettings.c: fix STRING type rc settings by special casing
	them appropriately in the parser.

	* gtk/gtksignal.[hc]: allow a class function offset of 0 for
	gtk_signal_newv().

	* gtk/gtkwidget.[hc]: accelerator API revamp.
	removed ::accelerator_add/remove signals, gtk_widget_accelerator_signal,
	gtk_widget_accelerators_locked, gtk_widget_remove_accelerators and
	gtk_widget_(un)lock_accelerators.
	accelerators maintained through gtk_widget_add/remove_accelerator()
	are not runtime changable now, the correct sequence to setup a
	widget for runtime changable accelerators is now:
	  gtk_accel_map_add_entry(accel_path, key, mods);
	  _gtk_widget_set_accel_path(widget, accel_path, accel_group);

	* gtk/gtkwindow.[hc]: accelerator changes, proxy and coalesce accel
	group changes (as well as mnemonic changes) through the new signal
	::accels_changed.

Sat Nov 10 12:08:56 2001  Tim Janik  <timj@gtk.org>

	* gtk/gtksettings.c (_gtk_settings_parse_convert): properly handle
	GString->string conversions.
2001-11-13 00:53:47 +00:00
Hans Breuer
e2e6940366 to simplify parsing for exported functions: - made implementation
2001-10-27  Hans Breuer  <hans@breuer.org>

	* gtk/gtkbbox.c gtk/gtkctree.c gtk/gtkhbbox.c
	  gtk/gtkimmulticontext.c gtk/gtklabel.c gtk/gtkliststore.c
	  gtk/gtkmenu.c gtk/gtkpaned.c gtk/gtkrc.c gtk/gtkscale.c
	  gtk/gtkstyle.c gtk/gtktextbuffer.c gtk/gtktextlayout.c
	  gtk/gtktexttag.c gtk/gtktexttagtable.c gtk/gtktextview.c
	  gtk/gtktreestore.c gtk/gtkvbbox.c :
	to simplify parsing for exported functions:
	- made implementation signature static, when the local
	  prototype already was
	- put the functions return value on it's own line
	- added as space between the function name and the
	  opening bracket

	* gtk/gtk.def : added the remaining exported functions
2001-10-27 00:41:12 +00:00
Kristian Rietveld
be317eb291 weight value should be an int
Sat Sep 22 16:50:34 2001  Kristian Rietveld  <kristian@planet.nl>

        * gtk/gtktexttag.c (gtk_text_tag_set_property): (case PROP_WEIGHT):
        weight value should be an int

Sat Sep 22 15:17:41 2001  Kristian Rietveld  <kristian@planet.nl>

        * gtk/gtkmenu.c (gtk_menu_select_item): move most code
        to gtk_menu_scroll_item_visible(). Only call
        gtk_menu_scroll_item_visible() if the menu widget has been
        realized. Fixes bug #55310.
2001-09-22 14:55:02 +00:00
Owen Taylor
8de6598f6a Break compatibility and make gtk_image_new() take no arguments. The
Fri Aug 24 23:09:05 2001  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkimage.[ch] docs/Changes-2.0.txt: Break compatibility
	and make gtk_image_new() take no arguments. The compiler will
	catch it, and it is vastly more useful than having
	gtk_image_new() be a deprecated alias for gtk_image_new_from_image().

	* gtk/gtkmenu.c (gtk_menu_set_property): Apply patch
	to add tearoff-title property (#51319, Lee Mallabone)
2001-08-25 03:15:26 +00:00
Owen Taylor
f0f3c6bfd2 Deprecate gtk_menu_bar_append/prepend/insert, forgot to do this when we
Thu Aug 23 19:10:01 2001  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkmenubar.h (gtk_menu_bar_insert): Deprecate
	gtk_menu_bar_append/prepend/insert, forgot to do this
        when we deprecated gtk_menu_append/prepend/insert.

        * gtk/gtkmenu.h (gtk_menu_insert): Add casts to deprecated
        compat macros.

	       * gtk/gtkmenu.c: Fix problem with static gtk_menu_insert() being
	renamed by compat macro.

	* gtk/gtkfontsel.h: Deprecated gtk_font_selection_get_font(),
        gtk_font_selection_dialog_get_font(). (Suggested by
	       Vitaly Tishkov, #59383)
2001-08-23 23:30:43 +00:00
James Henstridge
e70939234c commiting patch after comments from Alex on IRC
2001-07-15  James Henstridge  <james@daa.com.au>

	* gtk/gtkwindow.c (gtk_window_add_accel_group): cast to GObject.
	(gtk_window_remove_accel_group): same here.
	(gtk_window_key_press_event): same here.

	* gtk/gtkwidget.c (gtk_widget_add_accelerator): cast to GObject.
	(gtk_widget_remove_accelerator): same here.
	(gtk_widget_remove_accelerators): same here.

	* gtk/gtkplug.c (gtk_plug_accel_entries_changed): same here.

	* gtk/gtkmenushell.c (gtk_menu_shell_key_press): cast to GObject
	instead of GtkObject.

	* gtk/gtkmenu.c (gtk_menu_key_press): update since GtkAccelGroup
	now takes GObjects.

	* gtk/gtkitemfactory.c (gtk_item_factory_propagate_accelerator):
	pass a GObject to gtk_accel_group_entries_from_object.
	(gtk_item_factory_create_item): s/accel_widget/accel_object/

	* gtk/gtk-boxed.defs: remove GtkAccelGroup boxed def.

	* gtk/gtkaccellabel.c: convert to handle GObject accel objects.

	* gtk/gtkaccellabel.h: fix header to reflect that arbitrary
	GObjects can have accelerators set now.  Add compatibility
	defines.

	* gtk/gtkmarshal.list: add missing marshallers.

	* gtk/gtkaccelgroup.[ch]: convert to a GObject, and allow setting
	accelerators on plain GObjects.  gtk_accel_group_object_destroy
	has been converted into a weak reference, and
	gtk_accel_group_delete_entries is now a destroy notify for that
	piece of data.
2001-07-25 13:36:02 +00:00
Owen Taylor
aa49527fa7 Enforce the widget/child realization/mapping invariants.
Sat Jul  7 02:50:14 2001  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkwidget.c (gtk_widget_set_parent): Enforce
	the widget/child realization/mapping invariants.

	* gtk/gtkwidget.[ch] gtk/gtkprivate.h: Add functions
	gtk_widget_[get/set]_child_visible() to control
	whether visible children of a mapped window are
	mapped.

	* docs/widget_system.txt: Updated for changes in
	container contract, and addition of GTK_CHILD_VISIBLE.

	* gtk/gtkcontainer.c: Add generic map()/unmap()
	functions that work for almost all containers.

	* gtk/gtknotebook.c gtk/gtkpacker.c: Use
	gtk_widget_set_child_visible() where necessary.

	* gtk/*.c: Remove excess map(), unmap(), and
	realization/mapping invariant enforcing code
	from many containers.
2001-07-19 14:57:15 +00:00
Owen Taylor
4e2b60ac4d Patch from Matthias Clasen to remove remove all instances of
Wed Jul 18 19:28:46 2001  Owen Taylor  <otaylor@redhat.com>

	* gtk/*.c: Patch from Matthias Clasen to remove remove
	all instances of g_return_if_fail (foo != NULL); that are
	immediately before a g_return_if_fail (GTK_IS_FOO (foo));
	since the second check catches the NULL anyways.
2001-07-18 23:39:26 +00:00
Owen Taylor
b613a74cb2 Fix idles and timeouts to be properly surrounded by
Wed Jul 18 18:23:05 2001  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkbutton.c gtk/gtkentry.c gtk/gtkmenu.c gtk/gtktextview.c
	gtktreeview.c: Fix idles and timeouts to be properly surrounded by
	GDK_THREADS_ENTER()/LEAVE() pairs.

	* gtk/gtkdialog.c gtk/gtkclipboard.c: Surround calls
	to g_main_loop_run() with GDK_THREADS_LEAVE()/ENTER()
	pairs. (Problem found by M. Meeks)
2001-07-18 22:43:41 +00:00
Owen Taylor
79d45ab85d Formatting fixes from multihead brnach. [ mostly foo(bar) => foo (bar) ]
Thu Jul 12 13:43:27 2001  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtkclist.c gtk/gtkcolorsel.c gtk/gtkcombo.c
	  gtk/gtkctree.c gtk/gtkcurve.c gtk/gtkentry.c
	  gtk/gtkfontsel.c gtk/gtkhandlebox.c
	  gtk/gtkimcontextsimple.c gtk/gtkmain.c gtk/gtkmenu.c
	  gtk/gtkmenuitem.c gtk/gtkoptionmenu.c gtk/gtkpixmap.c
	  gtk/gtkselection.c gtk/gtktextdisplay.c gtk/gtktextview.c
	  gtk/gtktooltips.c gtk/gtkwidget.c gtk/gtkwindow.c:
	Formatting fixes from multihead brnach. [ mostly foo(bar) => foo (bar) ]
2001-07-12 17:50:14 +00:00