2003-09-20 Tor Lillqvist <tml@iki.fi>
* gtk-zip.sh.in: Don't use zip -r on the etc directory, to avoid
including editor backup files. List files we want explicitly.
* gtk/gtkmain.c (_gtk_get_lc_ctype): New function. On Unix, just
calls setlocale (LC_CTYPE, NULL). On Windows, looks for the
LC_ALL, LC_CTYPE and LANG environment variables, than calls
g_win32_getlocale().
(gtk_get_default_language): Code snippet moved to above function,
call it.
* gtk/gtkimmulticontext.c (gtk_im_multicontext_get_slave)
* gtk/gtkrc.c (gtk_rc_context_parse_file): Call
_gtk_get_lc_ctype() instead of setlocale().
2003-09-19 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkkeys-win32.c (update_keymap): Handle dead keysyms
present on the US-International keyboard. For clarity, order
keysyms in case statement according to numeric value.
(gdk_keymap_translate_keyboard_state): Handle Caps Lock
correctly. (#120176, Ken Rastatter and Owen Taylor)
2003-09-18 Matthias Clasen <maclas@gmx.de>
* gtk/gtkaction.c (gtk_action_finalize): Call g_closure_unref() to
unref a closure, not g_object_unref(). (#122637, Marco Pesenti Gritti)
2003-09-18 Matthias Clasen <maclas@gmx.de>
Install accelerators on actions, not on proxies, support
accelerator-only actions:
* gtk/gtkmenu.c (get_accel_path): New function to get the accel path
and its lock status either via _gtk_widget_get_accel_path() or by
looking at the accel_path stored in the menu item itself and determining
its lock status by peeking into the contained accel label. This was
already (accidentally) committed a week ago.
* gtk/gtkaction.h (gtk_action_set_accel_group):
(gtk_action_[dis]connect_accelerator): New functions.
* gtk/gtkaction.c (struct _GtkActionPrivate): Add accel_group,
accel_closure and accel_count. We must have a reference to the accel_group,
since we need it in connect_proxy. The count is necessary to ensure
that the accelerator isn't removed before the last proxy requesting
it has been unmerged.
(connect_proxy): Connect the accelerator to the
action now, only set the accel_path on the menuitem.
(remove_proxy): Disconnect the accelerator from the action, not from
the menuitem.
(gtk_action_set_accel_group): Set the accel group.
(gtk_action_[dis]connect_accelerator): Count the number of times
this functions have been called and install/remove the accelerator if
the count leaves/reaches zero.
* gtk/gtkuimanager.h (GtkUIManagerItemType): Add
GTK_UI_MANAGER_ACCELERATOR.
* gtk/gtkuimanager.c (NodeType): Add NODE_TYPE_ACCELERATOR.
(start_element_handler): Create NODE_TYPE_ACCELERATOR nodes from
<accelerator> elements.
(gtk_ui_manager_add_ui): Create NODE_TYPE_ACCELERATOR nodes when
type is GTK_UI_MANAGER_ACCELERATOR.
(update_node): Set the accel group on actions before creating their
proxies. Don't set the accel group on created menus. For
NODE_TYPE_ACCELERATOR nodes, [dis]connect the actions' accelerator.
(print_node): Also emit <accelerator> elements.
* tests/testmerge.c (dump_accels): Add a "Dump Accels" button.
2003-09-17 Matthias Clasen <maclas@gmx.de>
* gtk/gtkuimanager.c (text_handler): Report unexpected character
data as error from the GMarkup parser, otherwise things like
gtk_ui_manager_add_ui_from_string (ui, "Hi there!", -1, &error)
pass unexpectedly.
* gtk/gtkuimanager.c (update_smart_separators): New function which
implements "smart" separators by iterating once over the entries of a
menu, hiding and showing separators as necessary.
(update_node): Mark separators used as fences of placeholders as
hidden. Explicitly added separators are marked as smart. Call
update_smart_separators after updating a menu or toolbar node.
Connect update_smart_separators to "notify::visible" signal on menu
and tool items.
* tests/merge-[12].ui: Test smart separators.
* gtk/tmpl/gtkuimanager.sgml: Add a paragraph about smart separators.
2003-09-15 Matthias Clasen <maclas@gmx.de>
* gtk/gtkactiongroup.[hc]: (gtk_action_group_add_radio_actions):
(gtk_action_group_add_radio_actions_full): Add value parameter to allow
setting the currently selected group member before connecting signals.
(GtkToggleActionEntry): Separate struct for constructing toggle actions,
including a boolean to initialize the action state before connecting
signals.
(gtk_action_group_add_toggle_actions):
(gtk_action_group_add_toggle_actions_full): New functions to construct
toggle actions from an array of GtkToggleActionEntries.
* demos/gtk-demo/appwindow.c:
* tests/testactions.c:
* tests/testmerge.c: Adjust to new action group API.
* gtk/gtk-sections.txt: Add gtk_action_group_add_toggle_actions[_full].
Sun Sep 14 16:59:52 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtktoolbar.c (gtk_toolbar_init): Name the arrow
"gtk-toolbar-arrow" so themes can special-case it.
Sun Sep 14 15:49:00 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtktoolbar.c (toolbar_item_is_homogeneous): Unref the
PangoFontMetrics. Patch from Steve Chaplin (#122257).
2003-09-14 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkwindow-win32.c (show_window_internal): Remove
special-case code for WS_EX_TRANSPARENT (GDK_INPUT_ONLY) windows,
the usefulness of which was already in doubt. Removing it fixes
bugs #118575 and #121851.
Fri Sep 12 16:32:53 2003 Jonathan Blandford <jrb@redhat.com>
Merge from stable.
* gtk/gtktreeview.c (gtk_tree_view_button_press): only save the
pressed button (used to determine if we want to initiate a drag later
on) if the current grab widget is either NULL or tree_view (Reported
by Jeroen Zwartepoorte).
Wed Sep 10 22:25:04 2003 Kristian Rietveld <kris@gtk.org>
The table menu patch! Turns GtkMenu into a table, so you can attach
menu items in numerous new ways! Be creative!
Contains some bug fixes and RTL adaptions from Matthias Clasen.
* gtk/gtkmenu.c [toplevel]: introduce ATTACH_INFO_KEY, extend
GtkMenuPrivate, introduce AttachInfo, add child properties enum,
(gtk_menu_free_private), (gtk_menu_get_private): we have to free
the heights array in the private struct,
(gtk_menu_class_init): reorder code a bit, install child properties,
(get_attach_info), (get_child_attach): new utility functions,
(gtk_menu_set_child_property), (gtk_menu_get_child_property): introduce
child properties, for the attach info,
(gtk_menu_remove): remove AttachInfo from menu item,
(gtk_menu_real_insert): implemented algorithm to automagically place
inserted menu items at the correct place in the table,
(gtk_menu_size_request), (gtk_menu_size_allocate),
(compute_child_offset): reworked/rewritten to support table menus,
(gtk_menu_attach): new function,
(find_child_containing), (gtk_menu_move_current): new functions to
get table menu keynav right.
* gtk/gtkmenu.h: add gtk_menu_attach() prototype.
2003-09-10 Matthias Clasen <maclas@gmx.de>
* gtk/gtksocket.c (gtk_socket_filter_func): Only remove
PropertyNotify events from the stream if they have been handled,
in order to enable extending the plug<->socket communication via
properties.
Wed Sep 10 01:06:44 2003 Kristian Rietveld <kris@gtk.org>
Big TreeView DnD fixage, makes drops on empty models work, makes
TreeStore DnD work and gets rid of gtk-tree-model-drop-append.
Related bugs #95362 and #113314. I don't want to touch this code
ever again.
* gtk/gtktreeprivate.h (GtkTreePrivate): add empty_view_drop field.
* gtk/gtktreednd.c (gtk_tree_get_row_drag_data): add check
for selection_data->length.
* gtk/gtktreeview.c (struct DestRow), (dest_row_free),
(set_dest_row), (get_dest_row): we don't store just the row ref
anymore, but a struct with the row ref and additional info,
(set_destination_row): handle drops on empty space and some
style fixes,
(get_logical_dest_row): also return path_down_mode/drop_append_mode
flags, handle dropping childs on their new parents, rewrite
drop append handling into something saner,
(gtk_tree_view_drag_motion): show a "drop possible arrow" on empty
spaces,
(gtk_tree_view_drag_drop): updates for updated backend,
(gtk_tree_view_drag_data_received): updates for updated backend,
path down mode (treestore DnD) handling,
(gtk_tree_view_set_drag_dest_row): set empty_view_drop flag,
when we are trying to drop a row on an empty model,
(gtk_tree_view_get_drag_dest_row): handle empty_view_drop flag.
* gtk/gtkliststore.c (gtk_list_store_drag_data_received),
(gtk_list_store_row_drop_possible): style and drop-append fixes.
* gtk/gtktreestore.c (gtk_tree_store_drag_data_received): ditto.
2003-09-08 Alexander Larsson <alexl@redhat.com>
* gtk/gtkeventbox.[hc]:
Implement gtk_event_box_get/set_input_only()
* tests/testgtk.c:
Tests for the new input only event boxes
Mon Sep 8 21:44:20 2003 Kristian Rietveld <kris@gtk.org>
Fixes from David Hampton <hampton@employees.org> via gtk-devel-list.
* gtk/gtktreemodelfilter.c (gtk_tree_model_filter_elt_get_path): fix
the call to gtk_tree_model_filter_add_root,
(gtk_tree_model_filter_row_changed): bail out if c_path is not above
the virtual root, allow building levels on the second try to convert
the child path to a filter path,
(gtk_tree_model_filter_convert_iter_to_child_iter): pass the virtual
root when calling gtk_tree_model_filter_elt_get_path.
2003-09-07 Matthias Clasen <maclas@gmx.de>
* gtk/gtkuimanager.c (update_node): Fix a C99ism. (#121640,
Josh Beam)
Fixes for accelerator handling during (un)merging:
* gtk/gtkuimanager.c (update_node): Move setting info-action
after the switch, since the old action is needed in some cases.
In cases of proxy type mismatch, disconnect the old proxy from
the old action.
* gtk/gtkaction.c (remove_proxy): Renamed from
gtk_action_remove_proxy(). Move unsetting of the accelerator
here from disconnect_proxy() in order to catch all cases of
removing a proxy.
(gtk_action_disconnect_proxy): Fix logic in g_return_if_fail()
to fail if proxy isn't a proxy of action.
2003-09-06 Matthias Clasen <maclas@gmx.de>
* gtk/gtkaction.c (gtk_action_connect_proxy): Disconnect from
prev_action, not from action. (Fix by David Hampton)
Fri Sep 5 14:15:10 2003 Owen Taylor <otaylor@redhat.com>
* Back out locale-dependent interpretation of
KP_Decimal, the official XFree86 interpretation
is that KP_Decimal => . KP_Separator => ,
always, independent of locale.
(#105161, Frederic Crozat,
http://bugs.xfree86.org/show_bug.cgi?id=534)
2003-09-04 Matthias Clasen <maclas@gmx.de>
* tests/testmerge.c: Test buttons and toggle buttons as proxies.
* gtk/gtktoggleaction.c (connect_proxy):
(gtk_toggle_action_real_toggled): Support toggle buttons as proxies. Note
that a "draw_as_radio" property is needed for check buttons similar to
check menu items, in order to fully support button proxies for radio actions.
* gtk/gtkaction.c (connect_proxy): Allow buttons as proxies.
2003-09-04 Matthias Clasen <maclas@gmx.de>
* tests/testmerge.c (toggle_dynamic): Test gtk_ui_manager_add_ui().
* gtk/gtkuimanager.h: Add GtkUIManagerItemType enum which is needed for the
'type' argument of gtk_ui_manager_add_ui().
* gtk/gtkuimanager.[hc] (gtk_ui_manager_add_ui): Add 'type' and 'top' arguments
to make this function as powerful as the XML methods of adding UI. (#120647)
* gtk/gtk-sections.txt: Add GtkUIManagerItemType.
* tests/merge-2.ui: Use "position" instead of "pos".
* gtk/gtkuimanager.c (start_element_handler): No need
to be terse: Change the name of the "pos" attribute
to "position".
* gtk/tmpl/gtkuimanager.sgml: Change the name of the "pos"
attribute to "position".
* gtk/gtkuimanager.c: Un-prefix GtkUIManagerNodeType and
GtkUIManagerNode to shorten the names and to make the
GTK_UI_MANAGER_<TYPE> names available for a public enum.
Wed Sep 3 23:18:17 2003 Kristian Rietveld <kris@gtk.org>
Merge from stable.
* gtk/gtkmenu.c (gtk_menu_real_move_scroll): for the END case,
use end_position - page_size instead of G_MAXINT, since
gtk_menu_scroll_to doesn't CLAMP anymore internally. (Fixes#121237,
reported by Havoc Pennington).
2003-09-02 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkdisplay-win32.c (gdk_display_open): Don't call
CloseHandle() on the HMODULE returned from GetModuleHandle().
Didn't cause any harm, but didn't do anything useful either. When
running a GTK+ program under MS's debugger, the CloseHandle() call
would cause a "first-chance exception" in ntdll.dll to show up.
(The exception is caught appropriately if you let it proceed, but
it confuses the person using the debugger). Thanks to Bruce
Hochstetler for noticing.
Tue Sep 2 21:01:19 2003 Kristian Rietveld <kris@gtk.org>
Merge from stable.
* gtk/gtktreeview.c (gtk_tree_view_button_press): revert the change
to only select when button 1 is pressed introduced in the fix of
bug #120187.
2003-09-02 Matthias Clasen <maclas@gmx.de>
* gtk/gtkuimanager.c: Shorten the names of some static
functions.
Support adding and removing merge nodes dynamically (#120647,
Anders Carlsson):
* gtk/gtkuimanager.[ch] (gtk_ui_manager_new_merge_id): Renamed
gtk_ui_manager_next_merge_id to gtk_ui_manager_new_merge_id
and made it public.
(gtk_ui_manager_add_ui): New function to add UI elements
without juggling XML fragments, currently restricted to menuitems,
toolitems and separators. Actions still come from registered
action groups.
Mon Sep 1 19:39:14 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gdk/gdkwindow.c (gdk_window_get_bg_gc): Fix bug where the
background pixmap was being offset twice, once by the ts_origin in
gdk_window_get_bg_gc(), and once by gdk_draw_rectangle().
2003-09-01 Matthias Clasen <maclas@gmx.de>
* gtk/gtkuimanager.[ch] (gtk_ui_manager_ensure_update): Make
this public again, since it's occasionally useful. (#121128,
Marco Pesenti Gritti)
* gtk/gtkaction.c: Add an "is_important" property and propagate
it to toolitem proxies. (#121058, Marco Pesenti Gritti)
Mon Sep 1 00:32:30 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* tests/testtoolbar.c (main): connect to "delete_event" so the
application will actually quit when you close the window
2003-09-01 Matthias Clasen <maclas@gmx.de>
* gtk/gtkuimanager.c (gtk_ui_manager_get_widget)
(gtk_ui_manager_get_action): g_return_if_fail() if
path is NULL.
(gtk_ui_manager_get_node): Avoid a segfault if path is empty.
(gtk_ui_manager_finalize): Remove the idle on finalize. (#121125,
Marco Pesenti Gritti)
2003-08-31 Matthias Clasen <maclas@gmx.de>
* gtk/gtkactiongroup.c: Add some docs.
* gtk/gtkuimanager.[hc]: Get rid of the remove_widget signal. It
wasn't emitted anyway.
2003-08-30 Matthias Clasen <maclas@gmx.de>
* tests/testmerge.c (add_widget): Connect to "destroy" on toolbar,
rather than to "remove" on handlebox.
* gtk/gtkuimanager.[hc] (gtk_ui_manager_activate): New method to
activate an action found by following a path. (#120658)
* tests/testmerge.c: Add a button to test gtk_ui_manager_activate().
2003-08-30 Matthias Clasen <maclas@gmx.de>
* tests/testmerge.c (add_widget): Put toolbars in handleboxes.
* gtk/gtkuimanager.[hc]: Add a boolean property, "add_tearoffs" with
setter and getter. If it is set, add tearoff menu items to regular
menus, but not to popups. Add a signal "changed", which gets emitted
when the merged ui has changed.
* tests/testmerge.c: Add button to test the generation of tearoff
menu items.
2003-08-30 Matthias Clasen <maclas@gmx.de>
* gtk/gtkuimanager.[hc]: Add a boolean property, "add_tearoffs" with
setter and getter. If it is set, add tearoff menu items to regular
menus, but not to popups.
* tests/testmerge.c: Add button to test the generation of tearoff
menu items.
2003-08-29 Matthias Clasen <maclas@gmx.de>
* gtk/gtkactiongroup.c (gtk_action_group_add_radio_actions_full): Actually group the actions
together rather than putting each in its own group.
Fri Aug 29 21:40:01 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtkactiongroup.c (gtk_action_group_add_radio_actions_full):
Fix use of uninitialized variable.
* gtk/gtktextutil.c
(_gtk_text_util_append_special_char_menuitems): add const cast to
get rid of warning
2003-08-29 Matthias Clasen <maclas@gmx.de>
* gtk/gtkcheckmenuitem.c (gtk_check_menu_item_class_init): Install "draw_as_radio"
as a separate property, not as an alias of "inconsistent".
Fri Aug 29 20:32:07 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtktoolbar.c: Only treat buttons as homogeneous when they
are narrower than 13 time the estimated character width of the
font. (#107781, David Bordoley)
* gtk/gtktoggletoolbutton.c (gtk_toggle_tool_button_init): Check
here if the GtkToggleButton is active. This may be the case if it
is a radio button.
* gtk/gtktoolbar.c: Clarify documentation wrt. GtkSignalFunc
vs. void (*) (GtkWidget, gpointer). (#107495, Mariano
Suarez-Alvarez).
* gtk/gtkcheckmenuitem.[ch]: new "draw_as_radio"
property. (#111207, David Bordoley).
* gtk/gtktoggletoolbutton.c
(gtk_toggle_tool_button_create_menu_proxy): use new
"draw_as_radio" property on the menu item when the item is a radio
tool button
* gtk/gtktoolbutton.c (gtk_tool_button_create_menu_proxy): Fixes
to only pay attention to the "use_underline" property when the
button label comes from the "label" property.
2003-08-28 Matthias Clasen <maclas@gmx.de>
* gtk/gtkuimanager.c: Change the XML format:
<Root> element is replaced by <ui>,
<menu> element is replaced by <menubar>,
<submenu> element is replaced by <menu>,
<dockitem> element is replaced by <toolbar>,
<popups> element is gone,
verb attribute is replaced by action,
name defaults to action or the element name.
* gtk/gtkactiongroup.[hc]: Replace GtkActionGroupEntry by GtkActionEntry
and GtkRadioActionEntry. GtkActionEntry is simplified by removing
the user_data, entry_type and extra_data fields, GtkRadioActionEntry is
further simplified by removing the callback. The user_data can now be
specified as an argument to gtk_action_group_add_actions(). There is
a new method gtk_action_group_add_radio_actions(), which is similar
to gtk_action_group_add_actions(), but takes GtkRadioActionEntrys
and a callback parameter in addition to the user_data. The callback
is connected to the ::changed signal of the first group member.
There are _full() variants taking a GDestroyNotify of
gtk_action_group_add_[radio_]actions().
* gtk/gtkradioaction.[hc]: Add a ::changed signal which gets emitted
on every member of the radio group when the active member is changed.
Add an integer property "value", and a getter for the value of "value"
on the currently active group member.
* tests/testactions.c:
* tests/testmerge.c:
* tests/merge-[123].ui:
* demos/gtk-demo/appwindow.c: Adjust to these changes.
* gtk/gtktoolbar.c (gtk_toolbar_append_element): Trivial doc fix.
Tue Aug 26 09:57:38 2003 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkkeys-x11.c (update_keymaps): Fix variable
declaration not at start of block. (#120371, Damien Carbery)
2003-08-26 Matthias Clasen <maclas@gmx.de>
* gtk/gtkuimanager.[hc] (gtk_ui_manager_add_ui_from_string): Use gssize
for length, not gsize.
* gtk/gtkuimanager.c: Refactor the XML format a bit: rename <Root> to
<ui> and make it optional in strings. Rename verb to action, <dockitem>
to <toolbar>, <menu> to <menubar>, <submenu> to <menu>.
* demos/gtk-demo/appwindow.c:
* tests/testactions.c:
* tests/testmerge.c:
* tests/merge-1.ui:
* tests/merge-2.ui:
* tests/merge-3.ui: Adjust to the new XML format.
Mon Aug 25 19:55:55 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtktextview.c (gtk_text_view_update_layout_width):
Since we add one to the layout's reported width to
account for the cursor, we need to subtract one when
setting the wrap width for the layout. (Fixes infinite
loop (#120325, Federico Crozat)
* gtk/gtktextlayout.c (gtk_text_layout_get_line_display):
Be a bit more careful about rounding when converting
wrapped width from Pango units to pixels.
Mon Aug 25 17:28:04 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c (gtk_notebook_forall): Don't
include page->menu_label - causes various problems,
including #12047.
Mon Aug 25 23:21:43 2003 Kristian Rietveld <kris@gtk.org>
Merge from stable.
Fixes#115871, reported by Michael Natterer.
* gtk/gtktreeprivate.h: added GtkTreeSelectMode enum,
added ctrl_pressed and shift_pressed bitfields,
(_gtk_tree_selection_internal_select_node): replace GdkModifierType
arg with GtkTreeSelectMode.
* gtk/gtktreeselection.c (gtk_tree_selection_set_mode),
(gtk_tree_selection_select_path), (gtk_tree_selection_unselect_path),
(_gtk_tree_selection_internal_select_node): all updated for
GdkModifierType -> GtkTreeSelectMode move.
* gtk/gtktreeview.c (gtk_tree_view_button_press): set ctrl_pressed
and shift_pressed around selection handling block,
(gtk_tree_view_real_select_cursor_row),
(gtk_tree_view_real_toggle_cursor_row),
(gtk_tree_view_real_selection_cursor_parent),
(gtk_tree_view_real_set_cursor): use ctrl_pressed and shift_pressed,
instead of checking the event state. And also updates for the
GdkModifierType -> GtkTreeSelectMode move.
Wed Aug 20 21:26:49 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtkplug.c (gtk_plug_focus): Send the focus on
to the parent when there was no focus widget before
and no focus widget after - that is, when there are
no focusable widgets. (#108678, help tracking it
down from Padraig O'Briain, Federico Mena Quintero, )
* gtk/gtkxembed.[ch]: Move various shared utilities
for the XEMBED protocol eused by GtkPlug and GtkSocket
here.
* gtk/gtkxembed.[ch] gtkplug.c gtksocket.c: Implement
a flag bit that is sent with focus mesages to indicate
that the focus has wrapped around on the toplevel;
use this bit to catch infinite loops when there is no
focusable widget at ll in the entire toplevel.
* tests/testsocket.c (child_read_watch): Remove an
extraneous unref.
* gtk/gtkplug.c gtk/gtksocket.c gtk/gtkxembed.h:
Up XEMBED protocol version to 1, add logic for
sending the right version in XEMBED_EMBEDDED_NOTIFY.
* gtk/gtksocket.c (gtk_socket_add_window): Send
the embedder window in the XEMBED_EMBEDDED_NOTIFY
as the spec requires.
Mon Aug 25 16:15:41 2003 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkkeys-x11.c: Fix up CapsLock and
NumLock handling for non-XKB. Add a special case
hack for NumLock on Sun servers. (Patch from
Robert Basch, #115819)
2003-08-25 Matthias Clasen <maclas@gmx.de>
* gtk/gtkactiongroup.[hc] (gtk_action_group_set_translate_func,
gtk_action_group_set_translation_domain): Hooks for translation of
label and tooltip in GtkActionGroupEntries. (#120620)
2003-08-24 Matthias Clasen <maclas@gmx.de>
* gtk/gtkaction.[ch]:
* gtk/gtktoggleaction.[ch]:
* gtk/gtktoggleactionprivate.h:
* gtk/gtkradioaction.[ch]:
* gtk/gtkactiongroup.[ch]:
* gtk/gtkmenumerge.[ch]: A model-view separation for menus and
toolbars, using the EggMenu code by James Henstridge.
* gtk/gtk.h: Include new headers.
* gtk/Makefile.am: Add new files.
* tests/testactions.c: Test for actions.
* tests/testmerge.c: Test for menu merging.
* tests/merge-[123].ui: Test data for testmerge.
* tests/Makefile.am: Add testactions and testmerge.
* demos/gtk-demo/appwindow.c: Use GtkMenuMerge to construct the
menubar and toolbar.
Sat Aug 23 21:40:18 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtkrc.c (gtk_rc_context_parse_one_file): Fix
problem where rc_file->directory wasn't always getting
set. (#120549, Luis Villa)
2003-08-22 Christian Rose <menthos@menthos.com>
* configure.in: Added "ne" to ALL_LINGUAS.
* po/ne.po: Added Nepali translation by
Pawan Chitrakar <pawan@nplinux.org>.
Thu Aug 21 16:00:36 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtkrc.c: Keep a list of current GtkRcFiles
being parsed, not just the directories for those
files. Use that to catch recursion. (Part of
#114988)
Merge from stable.
Fix option menu scrolling (#119821, Owen Taylor).
* gtk/gtkmenu.c (gtk_menu_scroll_to): remove logic introduced
by #80484 and the CLAMP,
(get_menu_height): new function,
(gtk_menu_real_move_scroll): sort of moved the CLAMP here to correct
new_offset to handle page up/down right.
Thu Aug 21 15:17:42 2003 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkkeys-x11.c: Change the interpretation
of consumed_modifiers so that it contains:
- Modifiers combinations actually found in
state.
- Single modifier modifier combinations.
But not multi-modifier combinations that aren't
in event->state. Document. (#100439)
Thu Aug 21 20:53:46 2003 Kristian Rietveld <kris@gtk.org>
Slightly modified patch from Yann Rouillard to improve selection
behavior with the mouse. Fixes#120187.
* gtk/gtktreeview.c (gtk_tree_view_button_press): only
select/deselect items on the first button press of button 1,
expand checks for row_activated to include triple clicks.
Thu Aug 21 01:33:51 2003 Kristian Rietveld <kris@gtk.org>
Merge from stable.
* gtk/gtkspinbutton.c (gtk_spin_button_size_request): always round
approximate digit widths up, to avoid truncation, convert to
pango pixels when we have the full string width instead of converting
the approx digit width to pango pixels, take inner border and
interior focus into account correctly. (Fixes#116368, patch from
Morten Welinder).
Wed Aug 20 22:04:47 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gdk/gdkwindow.c: Make the layers in the paint stack have their
own pixmap instead of sharing one.
* tests/testgtk.c (create_get_image): Fixes to make the window fit
on an 800x600 screen
Wed Aug 20 22:03:25 2003 Kristian Rietveld <kris@gtk.org>
Merged from stable.
* gtk/gtkspinbutton.c (start_spinning): change the type of step
to gdouble, since it gets it's data from a gdouble (Fixes#113547).
Mon Aug 18 17:19:12 2003 Owen Taylor <otaylor@redhat.com>
* modules/input/gtkimcontextxim.[ch]: Substantially
rework the handling of status windows:
- Store the current StatusWindow in the
GtkIMContextXIM structure and vice-versa, so we
don't have to hunt the window hierarchy on
cleanup.
- Use the Gtkidget hierarchy instead of/or as well
as the GdkWindow hierarchy when finding the toplevel;
this helps for things like GtkHandlebox
- Watch GtkWidget::hierarchy_changed to catch
changes in the toplevel without changes in the
GdkWindow (reparenting)
- Never create the GtkWindow for the status window
unless we have text to display.
- Various cleanups, add lots of comments.
(#115077, much help from Takuro Ashie and Hidetoshi
Tajima in tracking this down and figuring out a fix.)
* modules/input/gtkimcontextxim.c (gtk_im_context_xim_focus_in):
* modules/input/gtkimcontextxim.c: Track the current
screen for each toplevel so that we show the status
window on the right screen. (#116340, James Su)
* modules/input/gtkimcontextxim.c: If create a new IC
when we currently have the focus, call XSetICFocus()
on it.
* modules/input/gtkimcontextxim.c (get_im): Fix bug
with multiple open screens.
Tue Aug 19 14:37:46 2003 Owen Taylor <otaylor@redhat.com>
* gtk/gtkimmulticontext.[ch] (struct _GtkIMMulticontext):
Replace client_window field with 'priv' pointer,
retaining binary compatibility.
* gtk/gtkimmulticontext.c (gtk_im_multicontext_set_slave):
save use_preedit/cursor_location/focus status and set
up the new slave appropriately. (#118651, Botond Botyanszki)
Tue Aug 19 13:58:50 2003 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkgeometry-x11.c (gdk_window_scroll):
Don't use impl->position_info.clip_rect for toplevels.
(#107068, reported by Thomas Mirlacher)
Mon Aug 18 11:48:51 2003 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkdrawable-x11.c (convert_to_format):
Add a fallback for unaligned source data for
FORMAT_ARGB_MASK. (#117217)