Javier Jardón [Sun, 6 Feb 2011 00:38:38 +0000 (00:38 +0000)]
configure.ac: Remove some obsolescent macros
AC_C_CONST: current C compilers support const
AC_TYPE_SYGNAL: obsolete when assuming C89 or better
AC_HEADER_STDC: current systems have conforming header files
Hans Breuer [Sun, 6 Feb 2011 14:03:32 +0000 (15:03 +0100)]
win32: no more GdkNativeWindow and related changes
- replace GdkNativeWindow with HWND, remove type casts
- no more GdkDisplayClass::get_drag_protocol but GdkWindowImpl::get_drag_protocol
- remove *_client_message*()
gtk: gtk_cell_renderer_get_state(): a row can be both selected and insensitive
so pull the SELECTED state flag out of the !sensitive branch. Also,
don't make FOCUSED depend on SELECTED here, it's up to the widget to
decide whether or not that is possible.
Carlos Garnacho [Sun, 6 Feb 2011 01:40:06 +0000 (02:40 +0100)]
GtkStyleContext is meant to have a GdkScreen
It is used to get the default providers, without them
the style context can't do much. A check for NULL screen
is done before any sensitive call to
gtk_style_context_set_screen(), in the hope that any widget
will open the display before doing anything related to
styling. Fixes bug #641429, reported by Bastien Nocera.
Fixed gtk_recent_chooser_menu_set_current_filter to update the local pointer.
Before this patch, unsetting the filter manually before disposing
the recent chooser menu (or unsetting the filter twice), would cause
warnings (or invalid memory accesses).
Added set_transient_for() implementation for GdkOffscreenWindow
Just a noop that is better than crashing in the case this is called
(it can be called for a toplevel GtkWindow that is parented into
another widget by setting gtk_widget_set_parent_window to an offscreen
window).
Added default implementations of various GtkCellArea vfuncs.
Having default implementations on abstract classes that do nothing
or print errors make life easier for language bindings implementors,
inside GTK+ this makes little or no difference.
Added default implementation of GtkCellRendererClass.get_request_mode()
Having default implementations on abstract classes that do nothing
or print errors make life easier for language bindings implementors,
inside GTK+ this makes little or no difference.
Martin Pitt [Wed, 2 Feb 2011 16:51:48 +0000 (17:51 +0100)]
[GI] Annotate gtk_drag_{dest,source}* as methods
As these do not start with gtk_widget_*, the GI scanner does not recognize them
as methods. With the recently added (method) annotation [1] it is now possible
to mark them as proper methods of GtkWidget.
Martin Pitt [Wed, 2 Feb 2011 14:11:06 +0000 (15:11 +0100)]
[GI] Mark mis-detected constructors as such
constructors which take an object of the same class as its first argument are
mis-detected as method call with "self" argument by the GIR scanner. Using the
new (constructor) annotation from bug 561264, mark some of them as proper
constuctors, so that you can call them with NULL as first argument from
bindings; in particular, this fixes gdk_window_new() and the
gtk_radio_button_new_with*() constructors.
Matthias Clasen [Wed, 2 Feb 2011 05:40:02 +0000 (00:40 -0500)]
Fix another GtkFixed regression, in gtk_fixed_forall()
b3f6f67c changed the loop from while() to for() in gtk_fixed_forall(),
but that's wrong since the callback can have side-effects on the list,
in case the current child gets removed. And that's the case when the
widget is destroyed.
Patch by Vincent Untz
https://bugzilla.gnome.org/show_bug.cgi?id=641196
Benjamin Otte [Tue, 1 Feb 2011 17:11:35 +0000 (18:11 +0100)]
API: gdk: Change get_drag_window() API
The previous function gdk_drag_get_protocol_for_display() took native
window handles, so it had to be changed. Because it didn't do what it
was named to do (it didn't return a protocol even though it was named
get_protocol) and because it doesn't operate on the display anymore but
on the actual window, it's now called gdk_window_get_drag_protocol().
Matthias Clasen [Tue, 1 Feb 2011 14:42:53 +0000 (09:42 -0500)]
Make xim work with XI2
We cannot totally ignore core key events, since XFilterEvent generates
those at times and relies on them having an effect.
https://bugzilla.gnome.org/show_bug.cgi?id=640965
Matthias Clasen [Tue, 1 Feb 2011 06:28:45 +0000 (01:28 -0500)]
Make treeview expanders work reliably
It turns out that the gtk_grab_remove() can trigger a do_prelight()
call, which may end up changing prelight_node, and then the state
gets messed up. Moving the grab removal until after we're done with
button_pressed_node and prlight_node makes expanders work reliably.
One thing that is still not right is that the expander doesn't get
prelight again after the animation is done, if you manage to release
without any additional motion events.
Benjamin Otte [Tue, 1 Feb 2011 05:30:27 +0000 (06:30 +0100)]
gdk: Remove GdkEventClient
... and all APIs making use of it.
That code like it hasn't been touched in years, Google codesearch
didn't find any users and most importantly it's a horrendous API, so
let's just make it die instead of having to port it over to
non-GdkNativeWindow usage, which would be required for multi-backend
GDK.
Matthias Clasen [Mon, 31 Jan 2011 22:34:37 +0000 (17:34 -0500)]
Bandaid fix for icon view subclassing
I've decided that it is isn't feasible to make cell areas runtime-settable
in the time we have left before 3.0, therefore, I'm going with the
approach to allow init() functions to instantiate the default cell area
and issue a warning if a construct property is ignored.
This is not ideal, but it keeps existing icon view and combo box
subclasses working.
Fixed GtkToolPalette ->forall implementation to be gtk_widget_destroy friendly
The forall() loop was buggy as it was skipping items in the list when
the current item gets removed from the groups array as a result of
calling the callback (causing memory leaks).