Matthias Clasen [Wed, 24 Dec 2003 00:14:15 +0000 (00:14 +0000)]
Add GtkClipboardTargetReceivedFunc, gtk_clipboard_request_targets() and
Wed Dec 24 01:12:53 2003 Matthias Clasen <maclas@gmx.de>
* gtk/gtkclipboard.[hc]: Add GtkClipboardTargetReceivedFunc,
gtk_clipboard_request_targets() and
gtk_clipboard_wait_for_targets(). (#101774, Dom Lachowicz)
Matthias Clasen [Mon, 22 Dec 2003 00:37:04 +0000 (00:37 +0000)]
Fix building with --disable-modules --with-included-loaders, create an
Mon Dec 22 01:35:36 2003 Matthias Clasen <maclas@gmx.de>
* Makefile.am (gdk-pixbuf.loaders): Fix building with
--disable-modules --with-included-loaders, create an
empty gdk-pixbuf.loaders file. (#124496, Arno Charlet, fix
proposed by Owen Taylor)
Matthias Clasen [Sun, 21 Dec 2003 23:41:26 +0000 (23:41 +0000)]
Use gtk_paint_arrow instead of draw_arrow_left/draw_arrow_right. Removed.
Mon Dec 22 00:40:39 2003 Matthias Clasen <maclas@gmx.de>
* gtk/gtkcalendar.c (gtk_calendar_paint_arrow): Use
gtk_paint_arrow instead of draw_arrow_left/draw_arrow_right.
* gtk/gtkcalendar.c (draw_arrow_left):
(draw_arrow_right): Removed.
* gtk/gtkcalendar.c (gtk_calendar_realize_arrows):
* gtk/gtkcalendar.c (gtk_calendar_state_changed): Set the
arrow_state to GTK_STATE_INSENSITIVE if the calendar is
insensitive. (#97376)
Matthias Clasen [Sun, 21 Dec 2003 22:28:14 +0000 (22:28 +0000)]
Fix memory leaks caused by the failure to free the result of
Sun Dec 21 23:17:01 2003 Matthias Clasen <maclas@gmx.de>
* gtk/gtkuimanager.c (update_node):
(update_smart_separators):
(_gtk_menu_is_empty):
(find_menu_position):
* gtk/gtktreeview.c (gtk_tree_view_search_dialog_destroy):
* gtk/gtkcombobox.c (gtk_combo_box_relayout_item):
(gtk_combo_box_relayout): Fix memory leaks caused by the
failure to free the result of gtk_container_get_children().
(#127576, Yao Zhang)
Soeren Sandmann [Sun, 21 Dec 2003 16:37:43 +0000 (16:37 +0000)]
Set the right properties when the window becomes a toplevel. When a window
Sun Dec 21 17:34:22 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gdk/x11/gdkwindow-x11.c (gdk_window_reparent): Set the right
properties when the window becomes a toplevel. When a window that
was previously a toplevel becomes a toplevel again, restore its
window type. Also make sure the focus window is removed from the
XID hash when it is destroyed. (#117579, reported by Morten
Welinder, patch reviewed by Owen Taylor).
Matthias Clasen [Sun, 21 Dec 2003 00:59:46 +0000 (00:59 +0000)]
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)
move item insertion logic here from gtk_menu_real_insert(),
Fri Dec 19 21:52:46 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtkmenu.c (gtk_menu_do_insert): move item insertion logic
here from gtk_menu_real_insert(),
(gtk_menu_real_insert): just call gtk_menu_do_insert(),
(gtk_menu_reorder_child): run _do_insert after inserting the child
(unbreaks _reorder_child, reported by Tim Janik).
Matthias Clasen [Fri, 19 Dec 2003 00:47:26 +0000 (00:47 +0000)]
Test extra_width, not extra_height, when determining whether to set
Fri Dec 19 01:47:34 2003 Matthias Clasen <maclas@gmx.de>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_request):
Test extra_width, not extra_height, when determining whether to
set extra_width. (#129647, Jan Arne Petersen)
Matthias Clasen [Fri, 19 Dec 2003 00:39:10 +0000 (00:39 +0000)]
Fix the behaviour of insensitive actions, which was broken when
Fri Dec 19 01:35:34 2003 Matthias Clasen <maclas@gmx.de>
Fix the behaviour of insensitive actions, which was broken
when gtk_action_activate() was changed to pay attention to
sensitivity (#129557, Christian Persch)
* gtk/gtkaction.h:
* gtk/gtkaction.c (_gtk_action_emit_activate): New auxiliary
function to emit an activate signal without regard to sensitivity.
* gtk/gtkradioaction.c:
* gtk/gtktoggleaction.c: Always use _gtk_action_emit_activate()
instead of gtk_action_activate().
clear the extra_attrs list if we set "text" after "markup". (Fixes
Thu Dec 18 17:52:56 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_set_property):
clear the extra_attrs list if we set "text" after "markup".
(Fixes #121933, Federico Mena Quintero).
added language and language_set properties like GtkTextTag has. (#103800,
Thu Dec 18 01:41:50 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_class_init),
(gtk_cell_renderer_text_finalize),
(gtk_cell_renderer_text_get_property),
(gtk_cell_renderer_text_set_property), (get_layout): added language
and language_set properties like GtkTextTag has. (#103800, reported
by Owen Taylor).
Jonathan got the logical flag backwards in the expand_collapse_cursor_row
Thu Dec 18 01:21:59 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_class_init): Jonathan got
the logical flag backwards in the expand_collapse_cursor_row
bindings, fixing.
(gtk_tree_view_real_expand_collapse_cursor_row): invert expand
flag when !logical and in RTL. (Fixes #107527, reported by
Noah Levitt).
Migrating all cell renderers to use the new instance private data
Thu Dec 18 00:57:18 2003 Kristian Rietveld <kris@gtk.org>
Migrating all cell renderers to use the new instance private data
construction.
* gtk/gtktreeprivate.h: remove GtkCellRendererInfo, as it is no
longer being used.
* gtk/gtkcellrenderer.c (gtk_cell_renderer_init),
(gtk_cell_renderer_class_init), (gtk_cell_renderer_get_property),
(set_cell_bg_color), (gtk_cell_renderer_render): remove old
GtkCellRendererInfo handling, migrate to instance private data.
* gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_editing_done),
(gtk_cell_renderer_text_start_editing): moved focus_out_id
from GtkCellRendererInfo to text renderer private data.
if we set a new stock_id and there was a previous stock_id, unref the
Wed Dec 17 23:50:56 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtkcellrendererpixbuf.c (gtk_cell_renderer_pixbuf_set_property):
if we set a new stock_id and there was a previous stock_id, unref
the pixbuf (since it was used to renderer the previous stock_id
and stock_id might have been set to NULL now). (Fixes #122966).
Check that index is not bigger than level array length
also when depth is 1. Now get_iter_first correctly return
FALSE when the model is empty (#129411).
only try to strcmp or strlen if we managed to normalize and casefold the
Wed Dec 17 23:31:19 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_search_equal_func): only
try to strcmp or strlen if we managed to normalize and casefold
the string correctly. Fixes crashes with non-UTF8 strings.
(#121617, Patch from Tim-Philipp Müller).
Murray Cumming [Wed, 17 Dec 2003 17:52:47 +0000 (17:52 +0000)]
Actually call the default signal handlers instead of calling the
2003-12-07 Murray Cumming <murrayc@usa.net>
* gtk/gtktreemodel.c:
(row_inserted_marshal, row_deleted_marshal, rows_reorderered_marshal)
Actually call the default signal handlers instead of calling the
marshallers themselves in an endless loop. These default signal handler
callbacks are not actually set so this is only noticed by gtkmm at
the moment. Bug 123923.
Added a "volumes-changed" signal. Added the following methods:
2003-12-16 Federico Mena Quintero <federico@ximian.com>
* gtk/gtkfilesystem.h (struct _GtkFileSystemIface): Added a
"volumes-changed" signal. Added the following methods:
list_volumes
volume_free
volume_get_base_path
volume_get_is_mounted
volume_mount
volume_get_display_name
volume_render_icon
* gtk/gtkfilesystem.c (gtk_file_system_base_init): Create the
"volumes-changed" signal.
(gtk_file_system_list_volumes): New function.
(gtk_file_system_volume_free): New function.
(gtk_file_system_volume_get_base_path): New function.
(gtk_file_system_volume_get_is_mounted): New function.
(gtk_file_system_volume_mount): New function.
(gtk_file_system_volume_get_display_name): New function.
(gtk_file_system_volume_render_icon): New function.
* gtk/gtkfilechooserdefault.c (struct _GtkFileChooserDefault):
Added a field for the "volumes-changed" signal connection.
(gtk_file_chooser_default_set_property): Connect to
"volumes-changed" on the file system.
(gtk_file_chooser_default_finalize): Disconnect from
"volumes-changed".
* gtk/gtkfilechooserdefault.c (shortcuts_remove_rows): New helper
function.
(shortcuts_get_index): New helper function.
(shortcuts_insert_path): Can now insert volumes as well as paths.
(shortcuts_append_paths): Don't take is_file_system_root.
(shortcuts_add_volumes): New function.
(shortcuts_append_file_system_roots): Removed.
(create_shortcuts_model): Use shortcuts_add_volumes().
(remove_bookmark_button_clicked_cb): Check that the index is
within range.
(bookmarks_check_add_sensitivity): Take volumes into account.
(shortcuts_get_selected_index): New helper function.
(remove_bookmark_button_clicked_cb): Use
shortcuts_get_selected_index().
(bookmarks_check_remove_sensitivity): Likewise.
(shortcuts_select_func): Likewise.
(shortcuts_row_activated_cb): Handle volumes as well as normal
paths.
(shortcuts_activate_volume): New function.
(struct _GtkFileChooserDefault): Removed the bookmarks_set and
bookmarks_iter fields.
(shortcuts_append_bookmarks): Use shortcuts_remove_rows().
(bookmarks_changed_cb): Use shortcuts_add_bookmarks().
(remove_bookmark_rows): Removed.
(shortcuts_add_bookmarks): New function; moved most of the code
over from shortcuts_append_bookmarks().
(shortcuts_append_bookmarks): Add the separator node here, and
then call shortcuts_add_bookmarks().
Matthias Clasen [Tue, 16 Dec 2003 00:56:48 +0000 (00:56 +0000)]
Do not interpret distant clicks as double-clicks (#116541, Bernhard
Tue Dec 16 01:46:46 2003 Matthias Clasen <maclas@gmx.de>
Do not interpret distant clicks as double-clicks (#116541,
Bernhard Walle):
* gdk/gdkdisplay.h (struct GdkDisplay): Add new fields
double_click_distance, button_x and button_y.
* gdk/gdkdisplay.c (gdk_display_init): Initialize the new fields.
* gdk/gdkdisplay.h:
* gdk/gdkevents.c (gdk_display_set_double_click_distance):
New function to set the double click distance on a display.
* gdk/gdkevents.c: Take double click distance into account
when generating single, double or triple clicks.
* gtk/gtksettings.c: Add new setting "gtk-double-click-distance".
* gdk/x11/gdkevents-x11.c: Add the XSetting
"Net/DoubleClickDistance" and map it to "gtk-double-click-distance".
Matthias Clasen [Mon, 15 Dec 2003 00:00:19 +0000 (00:00 +0000)]
Add new properties, xalign and yalign, with getter and setter
Mon Dec 15 00:56:54 2003 Matthias Clasen <maclas@gmx.de>
* gtk/gtkbutton.[hc]: Add new properties, xalign and yalign, with
getter and setter gtk_button_[sg]et_alignment(), to set the
alignment of the child. (#70961, Jody Goldberg)
Tor Lillqvist [Sun, 14 Dec 2003 02:20:14 +0000 (02:20 +0000)]
Calls to OpenClipboard() must be followed by calls to CloseClipboard().
2003-12-14 Tor Lillqvist <tml@iki.fi>
* gdk/win32/gdkselection-win32.c: Calls to OpenClipboard() must be
followed by calls to CloseClipboard(). Add a missing call to
CloseClipboard(). Found by Adam Wright, fixes #104944. Use
API_CALL macro in more places.
Tor Lillqvist [Sun, 14 Dec 2003 01:57:54 +0000 (01:57 +0000)]
Merge from stable:
2003-12-14 Tor Lillqvist <tml@iki.fi>
Merge from stable:
* gdk/gdkdisplaymanager.c: Mark default_display static.
* gdk/win32/gdkdnd-win32.c: Mark current_dest_drag static.
* gdk/win32/gdkkeys-win32.c: Disable some overly verbose debugging
output.
* gdk/win32/gdkevents-win32.c: Clean up the debugging output from
--gdk-debug=events. In general, output just one line of debugging
output for each Windows message, plus one line for each GDK event
generated. Indent all lines according to window procedure nesting
level.
(inner_window_procedure): Rename from real_window_procedure.
(find_real_window_for_grabbed_mouse_event): Don't get misled when
the point is in the non-client (decoration) area of the window
returned by WindowFromPoint(). Return the root window in that
case.
(build_pointer_event_state): Test also MK_XBUTTON1 and
MK_XBUTTON2 (buttons 4 and 5).
(synthesize_enter_event): Track the mouse leaving the window in
the event being generated, not the one mentioned in the Windows
message.
(propagate): Test for NULL parent earlier. Improves event
generation from a grabbed pointer. Part of fix for #107320.
(handle_stuff_while_moving_or_resizing): New function, to
dispatch the main loop (once).
(resize_timer_proc): New function, set to be called by an inerval
timer during resizes/moves. Calls handle_stuff_while_moving_or_resizing().
(gdk_event_translate): Drop unused return_exposes parameter.
Handle WM_XBUTTONDOWN and UP messages (buttons 4 and 5).
On WM_SYSKEYUP, generate a key release event also for just the Alt
key.
On WM_MOUSELEAVE, generate a leave event of type
GDK_NOTIFY_ANCESTOR (and not UNKNOWN) if the mouse left a
top-level window, and left the app completely.
On WM_ENTERSIZEMOVE, set a flag, and start an interval timer that
calls resize_timer_proc() at regular intervals. On
WM_EXITSIZEMOVE, kill the timer.
On WM_WINDOWPOSCHANGED, generate a configure event if necessary,
and dispatch the main loop (by calling
handle_stuff_while_moving_or_resizing()). Fixes #99540, idea by
Herman Bloggs.
* gdk/win32/gdkmain-win32.c (_gdk_win32_message_to_string): Handle
also wintab messages.
* gdk/win32/gdkwindow-win32.c (gdk_window_set_skip_taskbar_hint):
Instead of using WS_EX_TOOLWINDOW, implement by setting/unsetting
the window's owner. Fixes #118093, reported by Maxime Romano.
Tim Evans [Sun, 14 Dec 2003 01:06:56 +0000 (01:06 +0000)]
Implement gdk_window_set_icon_list() for Win32, with support for big and
Tue Dec 8 09:41:00 2003 Tim Evans <t.evans@aranz.com>
* gdk/win32/gdkwindow-win32.[ch]: Implement
gdk_window_set_icon_list() for Win32, with support for big and
small icons and support for alpha-channel icons under Windows
XP. Replaces the previous implementation of gdk_window_set_icon().
(#128762)
A trick for a faster treeview, step 1. Patch to short circuit
Sat Dec 13 16:13:27 2003 Kristian Rietveld <kris@gtk.org>
A trick for a faster treeview, step 1. Patch to short circuit
_build_tree(), inspired by Jonathan (#80868).
* gtk/gtktreeview.c (gtk_tree_view_init): don't put _IS_LIST in
flags by default,
(gtk_tree_view_build_tree): don't even try to recurse when the
model says that it is a list, remove flag unsetter,
(gtk_tree_view_set_model): change flag setting logic.
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_get_flags):
propagate whether or not the child model has _IS_LIST set.
Matthias Clasen [Sat, 13 Dec 2003 01:33:17 +0000 (01:33 +0000)]
Undo the last change, since it broke logical keynav. Fix stepper direction
Sat Dec 13 02:33:17 2003 Matthias Clasen <maclas@gmx.de>
* gtk/gtkrange.c (gtk_range_scroll): Undo the last change,
since it broke logical keynav.
* gtk/gtkrange.c (range_get_scroll_for_grab): Fix stepper
direction in inverted scrollbars here instead.
Matthias Clasen [Fri, 12 Dec 2003 23:40:58 +0000 (23:40 +0000)]
Implement "gravity" for RTL mode in a better way: Keep the distance from
Sat Dec 13 00:39:24 2003 Matthias Clasen <maclas@gmx.de>
* gtk/gtkviewport.c (viewport_set_hadjustment_values): Implement
"gravity" for RTL mode in a better way: Keep the distance from
the upper end of the page to the upper bound constant. This also
fixes problems with the initial position of the viewport in RTL
mode. (#129063)
Matthias Clasen [Wed, 10 Dec 2003 23:58:23 +0000 (23:58 +0000)]
Changes to allow "no input" windows (#64613):
Thu Dec 11 00:35:12 2003 Matthias Clasen <maclas@gmx.de>
Changes to allow "no input" windows (#64613):
* gdk/gdkwindow.h (struct _GdkWindowObject): Add a new boolean
field accept_focus.
* gdk/gdkwindow.h (gdk_window_set_accept_focus): New function to
set it.
* gtk/gtkwindow.[hc]: Add a boolean property "accept_focus"
and gtk_window_get_focus() and gtk_window_set_focus().
* gdk/win32/gdkwindow-win32.c (gdk_window_new):
* gdk/linux-fb/gdkwindow-fb.c (gdk_window_new):
* gdk/x11/gdkwindow-x11.c (gdk_window_set_new):
Initialize the accept_focus field to TRUE.
* gdk/win32/gdkwindow-win32.c (gdk_window_set_accept_focus):
* gdk/linux-fb/gdkwindow-fb.c (gdk_window_set_accept_focus):
* gdk/x11/gdkwindow-x11.c (gdk_window_set_accept_focus):
Implementations for the various backends. The Win32 and linux-fb
implementations set the accept_focus field, but don't use it yet
to actually implement noinput windows. The X implementation updates
the WM_HINTS to select the globally active input model (see the
ICCCM) if accept_focus is FALSE.
* gdk/x11/gdkevents-x11.c (gdk_wm_protocols_filter): Ignore the
WM_TAKE_FOCUS message if accept_focus is FALSE.
Added toolbar items for the filter separator and the filter item.
2003-12-10 Federico Mena Quintero <federico@ximian.com>
* gtk/gtkfilechooserdefault.c (struct _GtkFileChooserDefault):
Added toolbar items for the filter separator and the filter item.
(toolbar_create): Add the filter widgets here.
(filter_create): Renamed from create_filter(). Don't store the
alignment in the impl structure, just return it.
(toolbar_show_filters): New function.
(gtk_file_chooser_default_add_filter): Use toolbar_show_filters().
(gtk_file_chooser_default_remove_filter): Likewise.
(gtk_file_chooser_default_constructor): Don't create the filter
widget here.
(struct _GtkFileChooserDefault): Added a field for a current
folder label.
(gtk_file_chooser_default_constructor): Create the folder label.
(gtk_file_chooser_default_set_current_folder): Set the current
folder label.
* tests/testfilechooser.c (main): Dramatically improved the
usability of the extra widget through careful word choice.
Mark McLoughlin [Wed, 10 Dec 2003 13:49:58 +0000 (13:49 +0000)]
Utility functions for multi-screen applications which need to ensure
2003-12-10 Mark McLoughlin <mark@skynet.ie>
Utility functions for multi-screen applications which need
to ensure launched applications appear on a certain screen.
See bug #95897.
* gdk/gdkspawn.h: header for multi-screen launching
support.
* gdk/Makefile.am: install gdkspawn.h.
* gdk/x11/Makefile.am:
* gdk/x11/gdkspawn-x11.c:
(gdk_spawn_make_environment_for_screen): private function
to create an environment vector with DISPLAY set appropriately
for the screen.
(gdk_spawn_on_screen): multi-screen version of g_spawn_async().
(gdk_spawn_on_screen_with_pipes): version of g_spawn_async_with_pipes().
(gdk_spawn_command_line_on_screen): version of g_spawn_command_line_async().
Use "Home" rather than "Username's Home" (#125964).
2003-12-09 Federico Mena Quintero <federico@ximian.com>
* gtk/gtkfilechooserdefault.c (shortcuts_append_home): Use "Home"
rather than "Username's Home" (#125964).
(shortcuts_selection_changed_cb): New callback, check the
sensitivity of the Remove Bookmark button at the right time.
(shortcuts_row_activated_cb): It is not necessary to check the
sensitivity here.
Use the behavior of the GtkFileSelection to determine selected paths in
2003-12-08 Jan Arne Petersen <jpetersen@uni-bonn.de>
* gtk/gtkfilechooserdefault.c:
(gtk_file_chooser_default_get_paths), (entry_activate): Use the
behavior of the GtkFileSelection to determine selected paths in
single selected, GTK_FILE_CHOOSER_ACTION_SAVE mode.
2003-12-08 Federico Mena Quintero <federico@ximian.com>
Michael Meeks [Mon, 8 Dec 2003 17:13:13 +0000 (17:13 +0000)]
Based on a patch by Martin Kretzschmar; #122448
2003-12-02 Michael Meeks <michael@ximian.com>
Based on a patch by Martin Kretzschmar; #122448
* gdk/gdk.h: new gdk_threads_lock, gdk_threads_unlock, point to
implementation of GDK_THREADS_ENTER / GDK_THREADS_LEAVE.
(GDK_THREADS_ENTER, GDK_THREADS_LEAVE): use gdk_threads_[un]lock
function pointers. Deprecate the global gdk_threads_mutex variable.
* gdk/gdk.c (gdk_threads_impl_lock, gdk_threads_impl_unlock): new,
extracted from GTK_THREADS_ENTER/LEAVE macros.
(gdk_threads_init): init gtk_threads_[un]lock if not set.
(gdk_threads_set_lock_functions): impl.
* gdk/gdkglobals.c: add definitions of gdk_threads_[un]lock.