Preferrably should be made just into a local variable for libgtk like
_gdk_debug_flags for libgdk. But for now used by
gtk/tests/textbuffer.c and modules/printbackends/cups/gtkprintbackendcups.c.
Since we have a new mechanism for requesting sizes: GtkSizeRequestIface;
it makes no sense to maintain this cache on the GtkWidget structure...
removing the requisition cache however does not break the old "size-request"
signal which is there for backwards compatability reasons.
In any case widget->requisition should not have been accessed,
gtk_widget_get_child_requisition() would have been the correct way
to consult the cache.
This commit also deprecates the newly added gtk_widget_get_requisition()
API and makes it fallback on gtk_size_request_get_size().
These members of GtkWidgetAuxData can no longer be set after
the removal of deprecated gtk_widget_set_uposition(), now removed
these members completely and removed the access to them from
gtk_widget_size_allocate().
Allow windows to be dragged by clicking on empty areas in menubars
and toolbars. This is under theme control, via the GtkWidget::window-dragging
style property. The idea is that it makes sense to turn this on if a
theme makes the window frame and the menubar/toolbar appear visually
contiguous.
The main patch was written by Cody Russell, with a contribution by
Ayan George. See bug 611313.
Includes fixing all callers to use the cairo region API instead. This is
usually just replacing the function names, the only difference is
gdk_region_get_rectangles() being replaced by
cairo_region_num_rectangles() and cairo_region_get_rectangle() which
required a bit more work.
https://bugzilla.gnome.org/show_bug.cgi?id=613284
This commit makes a few massive changes to the extended layout
code:
a.) gtkextendedlayout.c --> gtksizerequest.c
b.) _is_height_for_width --> get_request_mode()
c.) get_desired_size(), get_desired_width(), get_desired_height() -->
get_size(), get_width(), get_height()
This is the first partial commit and only effects portions
of the tree that have already been merged in master (in order to
easily cherry pick this commit).
Conflicts:
gtk/Makefile.am
gtk/gtk.h
gtk/gtk.symbols
gtk/gtkextendedlayout.h
Currently the only users of the GTK_HAS_FOCUS flag are setting it
before sending a focus change event. This is normally needed by
GtkWindow, but there are widgets that require controlling the focus
of widgets that are semantically their children even though they are
parented to another top-level. Case in point: the quick search entry
for GtkTreeView.
Over the years people have been hacking the focus change out of
gtkwindow.c and gtktreeview.c, thus leaking the direct access of the
GTK_HAS_FOCUS flag.
The simplest way to avoid that is to add a function that sends the
focus change event and controls the setting of the flag, thus removing
the need for external widgets to do the same.
https://bugzilla.gnome.org/show_bug.cgi?id=593671
Removed _gtk_size_group_compute_requisition and
_gtk_size_group_get_child_requisition in favor of
_gtk_size_group_bump_requisition() which does an orientation
contextual computation of the size group and returns the
collective value in one pass.
This commit changes gtk_extended_layout_get_desired_size() for
per dimension variants. Furthermore this commit reverts the actions
done in size-groups for now as it needs a different approach.
The natural width/height parameters added to aux_info have been changed
for a per width cache for heights and a per height cache for widths.
gtk-demo is still working, currently sizegroups are not taken
into account as mentioned above - size groups need to be alerted both
when the widths and heights are updated independantly and then that
information needs to repropagate also to other extended layout implementors.
Ever since size groups gtk_widget_size_request() can be used in place
of gtk_widget_get_child_requisition(), deprecating both now in favor
of gtk_extended_layout_get_desired_size().
As it is not allowed to called gtk_extended_layout_get_desired_size()
on a GtkWidget directly; gtk_widget_get_desired_size() was really an
ambiguous api. This patch removes the added GtkWidget api, calls
the appropriate sizegroup code which in turn envokes the interface
vtable, this patch also accordingly makes GtkWidget a prerequisite
of GtkExtendedLayout (the api doesnt work for cell renderers anyway,
patch comming...).
When doing size-requests and get_natural_size() calls, use 0 as
the base value instead of -1, because size_request code assumes
that widget->requesition is initialized at 0.
Because "size-request" signal can be handled by signal connections as well
as by third party derived classes it is necessary to always fire the
"size-request" signal for every recalculation of the widget requisition,
now gtksizegroup.c:do_size_request() fires the signal first and allows it
to overflow the minimum/natural sizes returned by extended layout
implementations.
GtkWidget->get_natural_size() is now left assigning default -1 values to
ensure they both get overridden by the size-request handling.
This commit was created using a script that searched for all docstrings
containing a parameter and the string 'or %NULL'.
Gdk backends and demos excluded as they are not part of a public API
https://bugzilla.gnome.org/show_bug.cgi?id=610474
There are no side effect of setting these flags and we don't fire g_object
notifies also. Thus set/unset right away without costly check of current state.
Deprecate widget flag macros GTK_WIDGET_STATE, GTK_WIDGET_SAVED_STATE,
GTK_WIDGET_FLAGS, GTK_WIDGET_TOPLEVEL, GTK_WIDGET_NO_WINDOW and
GTK_WIDGET_COMPOSITE_CHILD.
Also deprecate the type macros GTK_WIDGET_TYPE, GTK_OBJECT_TYPE_NAME and
GTK_OBJECT_TYPE which have become redundant.
Instances of GTK_WIDGET_TOPLEVEL are replaced with gtk_widget_is_toplevel,
GTK_WIDGET_TYPE is replaced with G_OBJECT_TYPE, GTK_WIDGET_COMPOSITE_CHILD
is replaced with use of the "composite-child" property and uses of
GTK_WIDGET_NO_WINDOW are adjusted to use gtk_widget_get_has_window.
Uses of GTK_WIDGET_SAVED_STATE and GTK_WIDGET_FLAGS inside GtkWidget are
changed to direct flag usage.
Documentation is updated to refer to gtk_widget_set_has_window and
gtk_widget_get_has_window.
Gail and tests are updated as well.
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=69872
GtkIconSize is an extensible enumeration (via
gtk_icon_size_register()), so methods that claim to take/return a
GtkIconSize need to actually use "int" to work correctly with bindings
that are strict about enum values.
https://bugzilla.gnome.org/show_bug.cgi?id=604895
The Gtk-custom.c file in gir-repository contained a number of
introspection annotations. Merge those into the GTK source files.
Some documentation was moved from the tmpl/ files to accomodate
the addition of annotations.
This commit was created using a script that searched for all docstrings
containing a parameter and the string 'or %NULL'.
Gdk backends and demos excluded as they are not part of a public API
https://bugzilla.gnome.org/show_bug.cgi?id=610474
There are no side effect of setting these flags and we don't fire g_object
notifies also. Thus set/unset right away without costly check of current state.
Deprecate widget flag macros GTK_WIDGET_STATE, GTK_WIDGET_SAVED_STATE,
GTK_WIDGET_FLAGS, GTK_WIDGET_TOPLEVEL, GTK_WIDGET_NO_WINDOW and
GTK_WIDGET_COMPOSITE_CHILD.
Also deprecate the type macros GTK_WIDGET_TYPE, GTK_OBJECT_TYPE_NAME and
GTK_OBJECT_TYPE which have become redundant.
Instances of GTK_WIDGET_TOPLEVEL are replaced with gtk_widget_is_toplevel,
GTK_WIDGET_TYPE is replaced with G_OBJECT_TYPE, GTK_WIDGET_COMPOSITE_CHILD
is replaced with use of the "composite-child" property and uses of
GTK_WIDGET_NO_WINDOW are adjusted to use gtk_widget_get_has_window.
Uses of GTK_WIDGET_SAVED_STATE and GTK_WIDGET_FLAGS inside GtkWidget are
changed to direct flag usage.
Documentation is updated to refer to gtk_widget_set_has_window and
gtk_widget_get_has_window.
Gail and tests are updated as well.
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=69872
GtkIconSize is an extensible enumeration (via
gtk_icon_size_register()), so methods that claim to take/return a
GtkIconSize need to actually use "int" to work correctly with bindings
that are strict about enum values.
https://bugzilla.gnome.org/show_bug.cgi?id=604895
The Gtk-custom.c file in gir-repository contained a number of
introspection annotations. Merge those into the GTK source files.
Some documentation was moved from the tmpl/ files to accomodate
the addition of annotations.
Add gtk_widget_get_visible(). For symmetry reasons and for convenience
when a widget's visibility state is available as a boolean condition,
also add gtk_widget_set_visible() (which simply calls show()/hide()).
Add the following functions based on a patch from Christian Dywan:
- gtk_widget_set/get_can_focus()
- gtk_widget_set/get_can_default()
- gtk_widget_has_default()
- gtk_widget_has_focus() for GTK_WIDGET_HAS_FOCUS()
- gtk_widget_get_sensitive() for GTK_WIDGET_SENSITIVE()
- gtk_widget_is_sensitive() for GTK_WIDGET_IS_SENSITIVE()
gtk/gtkmenuitem.c: Override custom_tag_finished() for "accelerator" and search
the correct toplevel GtkWindow to attach accelerators to menu items.
gtk/gtkwidget.[ch]: Added _gtk_widget_buildable_finish_accelerator() to allow
subclasses to specify a toplevel window to associate with when parsing <accelerator>
tags
Setting a tooltip on a widget unfortunately triggers several roundtrips
to the X server. We reduce this overhead by only doing it if the
widget is visible, and by deferring to an idle. See bug 585626.
Let descriptions of accessible actions be translated, by specifying
the description as content of the <action> element, and allowing
"translatable", "context" and "comment" as attributes. (#518642)
2009-03-19 Claudio Saavedra <csaavedra@igalia.com>
Bug 574283 – unused assignment and dead code in
gtk_widget_set_tooltip_window()
* gtk/gtkwidget.c: (gtk_widget_set_tooltip_window): Remove
an unused assignment, improving checks, and clean up method.
svn path=/trunk/; revision=22575
GtkNotebook tabs
* gtk/gtkwidget.c (_gtk_widget_synthesize_crossing): Be a little
more careful when navigating up the parent chain.
* gdk/gdkwindow.c (_gdk_window_destroy_hierarchy): Reset the
pointer window thats stored on the screen when it is destroyed.
svn path=/trunk/; revision=22420
* gtk/gtkwidget.c (gtk_widget_get_snapshot): Use a different approach
to snapshotting that is in line with what is done in the client-side
windows branch, and that works for widgets regardless if they are
double-buffered or not. Patch by Alex Larsson.
* gdk/gdkwindow.c (_gdk_window_calculate_full_clip_region): Clip
to the parent.
svn path=/trunk/; revision=22187
2008-09-29 Kristian Rietveld <kris@imendio.com>
Bug 487624 - Tooltips doesn't get updated if ther's no mouse motion
over widget
* gtk/gtkwidget.c (gtk_widget_set_property): after updating
tooltip text or markup, call gtk_widget_trigger_tooltip_query()
so that existing visible tooltips are updated.
svn path=/trunk/; revision=21544
2008-09-17 Matthias Clasen <mclasen@redhat.com>
Bug 551722 – gtk_widget_set_scroll_adjustments() should check the
signal signature
* gtk/gtkwidget.c (gtk_widget_set_scroll_adjustments): Check the
signature of the signal. Patch by Christian Persch
svn path=/trunk/; revision=21410
2008-09-16 Michael Natterer <mitch@imendio.com>
* gtk/gtkwidget.c (_gtk_widget_set,get_pointer_window): don't
access widget->window if the widget is not realized.
svn path=/trunk/; revision=21403
2008-09-04 Michael Natterer <mitch@imendio.com>
* gtk/gtkwidget.c (gtk_widget_get_draw_rectangle): when extending
the draw rectangle by the "draw-border" style property, subtract
"left" from "x" and "top" from "y", not the other way around.
svn path=/trunk/; revision=21285
2008-09-02 Michael Natterer <mitch@imendio.com>
* gtk/gtkwidget.c (gtk_widget_get_allocation): removed this
function because there is massive disagreement about how to
implement it. Needs some general discussion in the next
development cycle about how our C api should evolve.
* gtk/gtk.symbols: changed accordingly.
svn path=/trunk/; revision=21259
2008-08-29 Michael Natterer <mitch@imendio.com>
* gtk/gtkwidget.h: move the gtk_widget_get_parent() and
gtk_widget_get_parent_window() prototypes together with their
respective setters.
* gtk/gtkwidget.c: move gtk_widget_get_parent_window() together
with its setter.
svn path=/trunk/; revision=21240
2008-08-01 Hans Breuer <hans@breuer.org>
* gdk/makefile.msc : build gdkwindowimpl
* gtk/gtkwidget.c : fix c99ism - declaration needs to be at the
start of a block
* tests/makefile.msc : update
svn path=/trunk/; revision=20926
2008-07-31 Cody Russell <bratsche@gnome.org>
Bug 56070 – Can't click button after setting it sensitive.
* gtk/gtkwidget.[ch]
* gtk/gtkwindow.c
* gtk/gtkmain.c
* gtk/gtkbutton.c
* gtk/gtkprivate.h
* gdk/gdkevents.h: Synthesize crossing events events where necessary.
* gtk/tests/crossingevents.c: Add unit tests for crossing events.
Big thanks to Ed Catmur, Matthias Clasen, and everyone else who
has worked on and helped out with this.
svn path=/trunk/; revision=20924
2008-07-03 Murray Cumming <murrayc@murrayc.com>
* gtk/gtkwidget.c (gtk_widget_set_property): tooltip-text and
tooltip-markup properties: Interpret an empty string as a NULL
string because an empty tooltip is silly. This will help
language bindings that do not bother to have the two types of
empty/null strings.
Bug #541399.
svn path=/trunk/; revision=20814
2008-06-30 Cody Russell <bratsche@gnome.org>
* Practically everything changed.
Change all references of GIMP Toolkit (and variations of it)
to GTK+ Toolkit, showing no mercy at all to our beloved
ancestry. (#540529)
svn path=/trunk/; revision=20709
2008-06-30 Michael Natterer <mitch@imendio.com>
Some unrelated cleanups found while reviewing
the offscreen window patch:
* gdk/gdkwindow.c: add missing Since: 2.14 to the redirection
functions, fix some function header indentation, update
documentation of redirect_to_drawable().
* gdk/x11/gdkwindow-x11.c
* gdk/x11/gdkpixmap-x11.c: fix function header
formatting/indentation.
* gtk/gtkwidget.c: use I_() on "damage_event".
svn path=/trunk/; revision=20708
2008-06-20 Johan Dahlin <jdahlin@async.com.br>
* gtk/gtkwidget.c (gtk_widget_get_allocation): Remove unused variable
and check if the widget is a GtkWidget subclass, not the uninitialized
allocation.
svn path=/trunk/; revision=20644
Don't store the accel path as a string in gtkmenu/gtkmenuitem.
The accel path will be interned anyway, so keeping a string copy around
is just a waste of memory.
Improve the documentation to mention this.
svn path=/trunk/; revision=20331
2008-05-21 21:04:28 Tim Janik <timj@imendio.com>
* gtk/gtkwidget.c gtk_widget_get_snapshot(): grow snapshot area from
widget's allocation to cover extra widget windows placed outside the
widget allocation (spinbutton arrows are the prime example for this).
svn path=/trunk/; revision=20123
2008-03-18 10:49:20 Tim Janik <timj@imendio.com>
* Applied pixmap redirection patch by Alexander Larsson with
various updates from:
Bug 318807 – Offscreen windows and window redirection.
Updates:
* updated docs to mention "Since 2.16".
* tests/testgtk.c: fixed snapshooting pixmap leak.
convert pixmap to pixbuf after snapshooting, to compensate for different
bit depths (occurs when snapshooting ARGB visuals and displaying the
pixmap in an RGB visual).
* gdk/gdkwindow.[hc]: made GdkWindowRedirect private.
* gdk/gdkwindow.c: removed damage idle handler, there's no aparent
need for it. enqueue damage notification as GDK_DAMAGE events
for each painting redirection at the start of the event queue.
consider windows with a redirection fully visible when invalidating,
and when updating from backing store. cleaned up stale variables.
* gdk/gdkevents.c: added _gdk_event_queue_prepend().
* gtk/gtkwidget.c: fixed coordinates for !NO_WINDOW widgets in
gtk_widget_get_snapshot; this fixes garbage snap offsets for gammacurve,
tree, drawingarea, text, handlebox, etc.
clip the redirected window hierarchy to window sizes, the visible
rectangles don't need to be taken into account here.
extended snapshooting docs to recommend gdk_pixbuf_get_from_drawable()
in case pixmap visuals could mismatch.
* gdk/x11/gdkwindow-x11.c: removed _gdk_windowing_window_get_visible_rect().
Base patch:
* tests/testgtk.c: add a "Snapshot" test to demonstrate snapshooting
of possibly obscured widgets into an offscreen pixmap.
* gtk/gtkwidget.[hc]: add GtkWidget::damage-event signal, add
gtk_widget_get_snapshot() to render a widget's contents to a GdkPixmap.
* gtk/gtkmain.c: dispatch GDK_DAMAGE events.
* gdk/gdkwindow.c: moved outer gdk_window_new() and gdk_window_reparent()
implementations here, adapted them to propagate redirects to child windows.
gdk_window_end_paint(): copy repainted window contents to redirection pixmap,
clipped to visible region. queue GDK_DAMAGE event delivery.
gdk_window_redirect_to_drawable(): install window painting redirection.
gdk_window_remove_redirection(): remove previously installed redirection.
* gdk/x11/gdkwindow-x11.c: added _gdk_windowing_window_get_visible_rect(),
renamed _gdk_window_new() and _gdk_window_reparent().
* gdk/gdkwindow.h: added GdkWindowRedirect* to GdkWindowObject, export
gdk_window_redirect_to_drawable() and gdk_window_remove_redirection().
* gdk/gdkevents.h: added GDK_DAMAGE event type.
* gdk/gdkevents.c: extract time and state from GDK_DAMAGE events.
* gdk/gdkinternals.h: added internal prototypes.
svn path=/trunk/; revision=20122
2008-01-25 Johan Dahlin <johan@gnome.org>
* gtk/gtkwidget.c: (gtk_widget_buildable_interface_init),
(gtk_widget_buildable_get_internal_child), (free_action),
(free_relation), (gtk_widget_buildable_parser_finished),
(accessibility_start_element),
(gtk_widget_buildable_custom_tag_start),
(gtk_widget_buildable_custom_finished):
Implement accessible support, fixes#454653.
* gtk/gtk-builder-convert:
Add support for migrating old glade files
* tests/buildertest.c: (test_widget), (test_file):
Add accessible tests and improve the test_file function to display
toplevels and run dialogs.
svn path=/trunk/; revision=19403
* gtk/gtkwidget.c: Store the event mask and extension event mode
directly in the gobject data pointer, instead of in an allocated
gint. Bug #506604.
svn path=/trunk/; revision=19381
* gtk/gtkbuilder.c, gtk/gtkbuilderprivate.h: Use proper sign
for value argument of _gtk_builder_flags_from_string.
* gtk/gtkwidget.c: Don't alias the child pointer passed
to gdk_window_get_user_data.
svn path=/trunk/; revision=19306
2007-12-14 Ray Strode <rstrode@redhat.com>
* gtk/gtkwidget.c: Suggest g_signal_connect (..., "realize", ...)
instead of g_signal_connect_after (..., "realize", ...) as an
alternative to gtk_widget_realize () (bug 503537).
svn path=/trunk/; revision=19181
2007-07-20 Ryan Lortie <desrt@desrt.ca>
* gtk/gtkwidget.c (gtk_widget_is_composited): add note that the
semantics of this call, when mixed with the new
gdk_window_set_composited(), will change in the future.
* gdk/x11/gdkevents-x11.c (gdk_event_translate): only grab Damage
events that belong to us.
svn path=/trunk/; revision=18506
2007-07-16 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkwidget.c: Apply a patch by Xan Lopez to document
a lot of GtkWidget signals. (#172424)
svn path=/trunk/; revision=18474
2007-07-09 Kristian Rietveld <kris@imendio.com>
Replace non-deprecated API using old tooltips API, deprecate
old tooltips API for real. (#451575).
* gtk/gtk.symbols: updated.
* gtk/gtkwidget.c (gtk_widget_real_show_help): don't call
_gtk_tooltips_toggle_keyboard_mode() anymore.
* gtk/gtkmenutoolbutton.[ch] (gtk_menu_tool_button_set_arrow_tooltip):
deprecated,
(gtk_menu_tool_button_set_arrow_tooltip_{text,markup}): replacements.
* gtk/gtktoolitem.[ch] (gtk_tool_item_real_set_tooltip): use
new API,
(gtk_tool_item_set_tooltip): deprecated,
(gtk_tool_item_set_tooltip_{text,markup): replacements.
(GtkToolItemClass:set_tooltip): deprecated.
* gtk/gtktooltips.[ch]: strip out all unused parts, made
gtk_tooltips_set_tip() call gtk_widget_set_tooltip_text(),
deprecate all of gtk_tooltips_*.
* gtk/gtktoolbar.[ch] (gtk_toolbar_get_tooltips): always return
TRUE,
(GtkToolbar:tooltips): deprecated, renamed.
* gtk/gtkaction.c (gtk_action_sync_tooltip): use new API to
set the tooltip text.
* tests/autotestfilechooser.c: #undef GTK_DISABLE_DEPRECATED for now,
will be removed GtkFileChooserDefault has been converted.
svn path=/trunk/; revision=18418
2007-07-08 Johan Dahlin <jdahlin@async.com.br>
* gtk/gtkwidget.c (gtk_widget_buildable_custom_tag_start):
Parse <accessibility> but don't do anything yet.
* gtk/gtk-builder-convert (GtkBuilderConverter._parse):
Do not strip atk/accessibility tags
* tests/buildertest.c (test_widget):
Test this
svn path=/trunk/; revision=18399
2007-06-15 Mathias Hasselmann <mathias.hasselmann@gmx.de>
* docs/reference/gtk/gtk-sections.txt, gtk/gtk.symbols,
gtk/gtkwidget.c, gtk/gtkwidget.h, tests/testtooltips.c: Introduce
convenience property "GtkWidget:tooltip-text" taking care of escaping
it for unwanted markup entities. Add functions to set tooltip text:
gtk_widget_set_tooltip_text(), gtk_widget_set_tooltip_markup(),
gtk_widget_get_tooltip_text(), gtk_widget_get_tooltip_markup().
* gtk/gtktooltip.c, gtk/gtktooltip.h: Add gtk_tooltip_set_text()
to set the tooltip text without using markup.
Patches from Emmanuele Bassi (#447643).
svn path=/trunk/; revision=18142
2007-06-04 Michael Natterer <mitch@imendio.com>
Move "move-focus" signals from several widgets to GtkWidget to
enable more flexible costomization of keyboard navigation via
bindings. Fixes bug #414947.
* gtk/gtkwidget.c: add "move-focus" binding signal, default to
calling the toplevel GtkWindow's "move-focus" vfunc.
* gtk/gtktextview.[ch]
* gtk/gtkwindow.[ch]: remove "move-focus" signals and add compat
code that makes sure that both emitting the signal on the widget
and overriding the virtual functions keeps working as before.
* gtk/gtktoolbar.c: remove "move-focus" signal here too and use
GtkWidget's signal. This change slightly changes keyboard
navigation in toolbars. I'll fix the behavior if somebody can
explain me if and how exactly the new behavior is broken.
svn path=/trunk/; revision=18025
2007-05-23 Kristian Rietveld <kris@imendio.com>
* gtk/gtktooltip.c (find_widget_under_pointer): translate coordinates
from the window they were received on to the event widget's window;
correct for no-window widgets after that, bail out on failure. This
makes the coordinates given by GtkWidget::query-tooltip truly relative
to widget->window. (#435188).
* gtk/gtkwidget.c (gtk_widget_class_init): update docs for
GtkWidget::query-tooltip.
svn path=/trunk/; revision=17896
2007-03-28 Kristian Rietveld <kris@imendio.com>
* gtk/gtkwidget.c (gtk_widget_set_tooltip_window): don't unref
tooltip_window, since this is handled by set_qdata_full() already.
(#412001, Torsten Schoenfeld).
svn path=/trunk/; revision=17566
2007-03-14 Michael Natterer <mitch@imendio.com>
Make gtk_widget_set_extension_events() work on already realized
widgets (bug #379550, Tommi Komulainen)
* gdk/x11/gdkinput.c (gdk_input_set_extension_events): allow to be
called multiple times without leaking and work correctly when
already realized (don't rely on a configure event following).
* gtk/gtkwidget.c (gtk_widget_set_extension_events_internal): new
internal function which walks the GdkWindow tree and sets the
extension events on all windows that belong to the widget.
(gtk_widget_realize)
(gtk_widget_set_extension_events): use the new function.
svn path=/trunk/; revision=17515
2007-02-06 Kristian Rietveld <kris@imendio.com>
New tooltips API.
* gtk/Makefile.am
* gtk/gtk.h
* gtk/gtk.symbols: build system foo.
* gtk/gtkmain.c (gtk_main_do_event): call tooltip event handler
hook for appropriate events.
* gtk/gtkmarshalers.list: add BOOLEAN:INT,INT,BOOLEAN,OBJECT.
* gtk/gtkrc.c: add style for gtk-tooltip.
* gtk/gtksettings.c (gtk_settings_class_init): make the
different tooltip timeouts configurable.
* gtk/gtkwidget.[ch]: add new properties, signals, make sure
tooltips are hidden on unmap, destroy, update window event
mask on realize, hook into focus change and show help
handlers.
* gtk/gtkwindow.h: move GtkWindow typdef to gtkwidget.h ...
* gtk/gtktooltip.[ch]: new files.
* tests/Makefile.am
* tests/testtooltips.c: add test application.
svn path=/trunk/; revision=17264
2007-01-24 Michael Natterer <mitch@imendio.com>
* gtk/gtkwidget.c (gtk_widget_set_state): revert generic disabling
of PRELIGHT state for the reasons given in bug #135666. Widget
states are sometimes abused or otherwise used wrongly for historic
reasons, causing this part of the patch to break e.g. menu items.
svn path=/trunk/; revision=17211
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.
Wed May 10 15:57:53 2006 Tim Janik <timj@imendio.com>
* applied unified patch for configurable scroll arrow sizes from
bug #333632 and bug #325282.
* gtk/gtkwidget.c (gtk_widget_class_init): added ::scroll-arrow-hlength
and ::scroll-arrow-vlength style properties. fixed upper limit for
::separator-width and ::separator-height to be MAXINT.
* gtk/gtkmenu.c: use GtkWidget::scroll-arrow-vlength to determine the
scroll arrow size, instead of using a hard coded constant.
* gtk/gtknotebook.c: use GtkWidget::scroll-arrow-vlength and
GtkWidget::scroll-arrow-hlength to determine scroll arrow sizes.
added GtkNotebook::arrow-spacing style property to configure the
spacing between scroll arrows.
Tue Apr 25 10:25:28 2006 Søren Sandmann <sandmann@redhat.com>
* tests/testgtk.c (create_alpha_window): Create 'composited' label.
* tests/testgtk.c (on_composited_changed): New function, change
the label to say whether the screen is composited or not.
* gtk/gtkwindow.c (gtk_window_on_composited_changed): When
composited status change, invalidate the window and propagate the signal;.
* gtk/gtkwindow.c (gtk_window_map): Set the appropriate type hint
if reset_type_hint is TRUE.
* gtk/gtkwindow.c (gtk_window_set_type_hint): If hint is one of
the old hints, store a shadow copy in the public window->type_hint
bitfield, otherwise set this field to normal. Set the private
field to the type hint.
* gtk/gtkwindow.c (gtk_window_init): Initialize priv->type_hint.
* gtk/gtkwindow.c (struct _GtkWindowPrivate): New field
"reset_type_hint" indicating whether the type hint needs to be
reset. New field type_hint containing a GdkWindowTypeHint.
* gtk/gtkwidget.c (propagate_composited_changed): New function to
propagate changes in composited status.
(gtk_widget_class_init): Add composited_changed signal.
* gtk/gtkwidget.h (struct _GtkWidgetClass): New signal composited-changed.
* gtk/gtkwidget.c (gtk_widget_is_composited): New function.
* gtk/gtktooltips.c (gtk_tooltips_draw_tips): Set transient for.
* gtk/gtktooltips.c (gtk_tooltips_force_window): Set the type hint
* gtk/gtkmenuitem.c (gtk_menu_item_position_menu): Compute whether
the item belongs to a menubar. Set the type_hint appropriately
depending on the outcome.
* gtk/gtkmenu.c (gtk_menu_position): Set the default type hint here.
* gtk/gtkmenu.c (gtk_menu_attach_to_widget): connect to hierarchy
changed on the attach widget.
* gtk/gtkmenu.c (attach_widget_hierarchy_changed): New function to
set the transient_for property for menus.
* gtk/gtkdnd.c (set_icon_stock_pixbuf): Set the appropriate type hint.
* gtk/gtkcombo.c (gtk_combo_popup_list): Make the popup window
transient for the toplevel.
* gtk/gtkcombobox.c (gtk_combo_box_set_popup_widget): Set
transient-for, for the popup window.
* gdk/x11/gdkwindow-x11.c (gdk_window_get_type_hint): Support for
new window types.
* gdk/x11/gdkwindow-x11.c (gdk_window_set_type_hint): Add support
for new window types.
* gdk/x11/gdkscreen-x11.c (_gdk_x11_screen_process_owner_change):
New function called whenever the compositing manager comes and goes.
* gdk/x11/gdkscreen-x11.c (gdk_screen_is_composited): New function.
* gdk/x11/gdkscreen-x11.c
(_gdk_x11_screen_request_cm_notification, make_cm_atom,
check_is_composited): New functions
* gdk/x11/gdkevents-x11.c (gdk_event_translate): Call
_gdk_x11_screen_process_owner_change when an
XFixesSelectionNotifyEvent is received.
* gdk/x11/gdkdisplay-x11.c (gdk_display_open): Call
_gdk_x11_screen_request_cm_notification() on all screens.
* gdk/quartz/gdkscreen-quartz.c (gdk_screen_is_composited): Dummy
implementation.
* gdk/gdkscreen.c (gdk_screen_class_init): New signal,
'composited-changed'.
* gdk/gdkwindow.h: Add new EWMH window types.
* gdk/win32/gdkscreen-win32.c (gdk_screen_is_composited)
2006-04-05 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkmain.c (gtk_grab_add, gtk_grab_remove, gtk_grab_notify)
(gtk_grab_notify_foreach): Rework the code which emits ::grab-notify
signals to ensure that we emit enough signals. Also optimize the
code to not do unnecessary tree walking.
* gtk/gtkwidget.c (gtk_widget_class_init): Document ::grab-notify.
2006-03-09 Ross Burton <ross@openedhand.com>
* gtk/gtkwidget.c:
* gtk/gtkrange.c:
* gtk/gtktogglebutton.c:
Turn off prelighting when gtk-touchscreen-mode is enabled (#135666)
2006-03-03 Michael Natterer <mitch@imendio.com>
Applied modified patch from maemo-gtk which makes separators more
themeable. Fixes bug #332022.
* gtk/gtkwidget.c: added style properties "wide-separators",
"separator-width" and "separator-height".
* gtk/gtkhseparator.c
* gtk/gtkvseparator.c
* gtk/gtkmenuitem.c
* gtk/gtktoolbar.c: honor the new settings and paint separators
using gtk_paint_box() if wide-separators is true.
2006-02-19 Matthias Clasen <mclasen@redhat.com>
Support input shapes: (#331070)
* gdk/gdk.symbols:
* gdk/gdkdisplay.h:
* gdk/gdkwindow.h:
* gdk/x11/gdkdisplay-x11.c (gdk_display_supports_shapes)
(gdk_display_supports_input_shapes): Functions to determine
if a display supports shaped windows or input shapes.
* gdk/x11/gdkwindow-x11.c (gdk_window_input_shape_combine_region):
(gdk_window_input_shape_combine_mask):
(gdk_window_set_child_input_shapes):
(gdk_window_merge_child_input_shapes): Input shape versions
of the window shape API.
* gtk/gtk.symbols:
* gtk/gtkwidget.h:
* gtk/gtkwidget.c (gtk_widget_input_shape_combine_mask):
New function to set an input shape on a widget.
2006-01-23 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkwidget.c: Add link-color and visited-link-color style
properties. (#113649, Leena Gunda)
* gtk/gtkaboutdialog.c: Use the new style properties here instead
of the about dialogs own link-color property.
2005-09-22 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkwidget.c (gtk_widget_class_init): Fix the documentation
for the grab-broken-event signal, noticed by Damon Chaplin.
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-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-26 Matthias Clasen <mclasen@redhat.com>
* gdk/gdk.symbols:
* gdk/gdkscreen.h:
* gdk/gdkscreen.c: Make the GdkScreen font options api
public, and add properties GdkScreen::font-options and
GdkScreen::resolution. (#314004)
* gdk/gdkpango.c:
* gtk/gtksettings.c:
* gtk/gtkwidget.c: Adjust all callers.
* gdk/gdkintl.h: Simplify and use glib/gi18n-lib.h.
* gdk/gdkpango.c: Include gdkintl.h, not gtkintl.h.
* gdk/gdkscreen.c: Include gdkintl.h.
2005-08-23 Owen Taylor <otaylor@redhat.com>
Fix for #314004, reported by Michael Reinsch:
* gdk/gdk.symbols:
* gdk/gdkscreen.[ch]: Add gdk_screen_get/set_font_options_libgtk_only()
Add gdk_screen_get/set_resolution_libgtk_only()
* gdk/gdkpango.c (gdk_pango_context_get_for_screen): Set
the options for the screen on the newly created context.
* gtk/gtksettings.c (settings_update_font_options/dpi) gtkwidget.c:
Move font options and dpi code from gtkwidget.c to gtksettings.c, set
the font options on the screen.
* gtk/gtkwidget.c (gtk_widget_update_pango_context): Just get
the font options from the screen and set them on the context.
2005-07-19 Owen Taylor <otaylor@redhat.com>
* gtk/gtksettings.c gtk/gtkwidget.c: Change machinery for
following font rendering xsettings to set cairo font
options on PangoContext
* gdk/x11/gdkxftdefaults.c gdk/x11/gdkevents-x11.c gdkscreen-x11.h
gdkprivate-x11.h: Get default values for rendering options
(such as antialiasing, dpi) from the Xft resources for the
display, borrowing a bit of code from Xft.
* gtk/gtksettings.c (gtk_settings_class_init): Fix docs for
values of gtk-xft-hintstyle.
2005-07-21 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkwidget.c (gtk_widget_modify_bg, gtk_widget_modify_base):
Add hints on how to handle "no window" widgets. (#136347)
2005-07-18 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkwidget.c (gtk_widget_set_double_buffered): Add a note
about the need to handle expose events. We really need a chapter
on the GTK+ drawing model that we can refer to here... (#310765,
Steve Chaplin)
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.