Commit Graph

212 Commits

Author SHA1 Message Date
Michael Catanzaro
62da080bd0 tooltip: fix line wrapping
We enable line wrap on the internal GtkLabel, but nowadays this does
nothing unless we also set a max number of characters.

https://bugzilla.gnome.org/show_bug.cgi?id=737929
2014-10-06 21:30:18 -04:00
Bastien Nocera
c849b8edd6 tooltip: Fix warning with GtkCellRendererAccel
(gnome-shell-extension-prefs:22382): GLib-GObject-WARNING **: invalid cast from 'GtkInvisible' to 'GtkWindow'
(gnome-shell-extension-prefs:22382): Gtk-CRITICAL **: gtk_window_set_transient_for: assertion 'parent == NULL || GTK_IS_WINDOW (parent)' failed

 #1  0x00007fffeeb81a12 in g_log (log_domain=log_domain@entry=0x7fffeeea3464 "GLib-GObject", log_level=log_level@entry=G_LOG_LEVEL_WARNING, format=format@entry=0x7fffeeeaa878 "invalid cast from '%s' to '%s'") at gmessages.c:1079
 #2  0x00007fffeee9c2a9 in g_type_check_instance_cast (type_instance=0xb314c0, iface_type=iface_type@entry=9020048) at gtype.c:4021
 #3  0x00007ffff0a06e25 in gtk_tooltip_set_last_window (tooltip=tooltip@entry=0xbb8c10, window=<optimized out>) at gtktooltip.c:910
 #4  0x00007ffff0a08dfd in _gtk_tooltip_handle_event (event=event@entry=0xbf72c0) at gtktooltip.c:1538
 #5  0x00007ffff090d7a9 in gtk_main_do_event (event=0xbf72c0) at gtkmain.c:1785
 #6  0x00007ffff0496ab2 in gdk_event_source_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at gdkeventsource.c:364
 #7  0x00007fffeeb7a8c3 in g_main_dispatch (context=0x807300) at gmain.c:3067

https://bugzilla.gnome.org/show_bug.cgi?id=736131
2014-09-06 19:05:46 -04:00
Carlos Garnacho
3df8b95e0e tooltip: Use subsurfaces on wayland
This places tooltips in the right place, and avoids having those attempt
to steal the focus.

https://bugzilla.gnome.org/show_bug.cgi?id=735531
2014-08-28 16:41:14 +02:00
Matthias Clasen
821955a998 Avoid a compiler warning 2014-07-21 14:13:06 -04:00
Matthias Clasen
c8c6da4ca4 GtkTooltip: Drop an unused variable
The toplevel_window was never set, and the only place where it
was used was causing us to hide tooltips needlessly. So removing
it is a double win.

https://bugzilla.gnome.org/show_bug.cgi?id=733321
2014-07-21 12:40:57 -04:00
Matthias Clasen
77cb6d8b4a GtkTooltip: Ignore shadow when finding widgets
When placing tooltips, the csd shadow will get 'pushed up' and
may end up underneath the pointer. We don't want this to cause
the tooltip to be hidden, because that leads to flickering, so
ignore the shadow when finding the widget under the pointer.
2014-06-11 00:04:04 -04:00
Matthias Clasen
a39985a43e Request csd for tooltips
Use the new private GtkWindow api to request
client-side decorations for tooltips.

https://bugzilla.gnome.org/show_bug.cgi?id=731187
2014-06-09 14:15:28 -04:00
Matthias Clasen
179d6a4c7b GtkTooltip: take csd shadows into account for placement
When placing tooltips, we don't want the shadow to influence
our choice.

https://bugzilla.gnome.org/show_bug.cgi?id=731187
2014-06-09 14:15:28 -04:00
Matthias Clasen
49bb39ecf5 GtkTooltip: remove hardcoded tooltip drawing
This is old code from dating back many years. Nowadays, we can
just use css drawing and csd windows to achieve much the same
effect.

Themes will need some adjustment for this change.

https://bugzilla.gnome.org/show_bug.cgi?id=731187
2014-06-09 14:15:27 -04:00
Matthias Clasen
55b0019589 GtkTooltip: Avoid extra work
When we are hiding the label or icon anyway, no need to change
it right before, causing reallocation overhead.
2014-02-20 18:31:10 -05:00
William Jon McCann
7a208fbbf3 docs: use proper apostrophe
https://wiki.gnome.org/Design/OS/Typography
2014-02-07 13:06:10 -05:00
William Jon McCann
0ce016650b docs: Use markup for links 2014-02-07 09:42:12 -05:00
Matthias Clasen
30cc1512e6 Docs: Use markdown for lists
This greatly reduces the amount of xml in the docs.
2014-02-02 01:07:39 -05:00
Yosef Or Boczko
719dd636a9 Replace all margin-left and margin-right with margin-start and margin-end
https://bugzilla.gnome.org/show_bug.cgi?id=710238
2013-11-15 02:54:35 +01:00
Bastien Nocera
438cd857c4 all: Add names to timeouts
Add names to every timeout we setup, so it's easier to track their
usage, and debug possible misbehaviour.

https://bugzilla.gnome.org/show_bug.cgi?id=710651
2013-10-23 13:31:18 +02:00
Olivier Brunel
14414d5946 tooltip: Fix possible wrong placement
When showing a tooltip on the edge of a monitor, the tooltip could be wrongly
placed and be shown going from one monitor to the next.

This happened because the current_window wasn't set visible, and when it wasn't
the returned allocated size would be 1, hence wrong calculations.

Signed-off-by: Olivier Brunel <jjk@jjacky.com>

https://bugzilla.gnome.org/show_bug.cgi?id=698730
2013-10-15 21:13:48 -04:00
William Jon McCann
e61c124509 Deprecate and hardcode values for gtk-tooltip* timeouts 2013-07-08 15:02:28 -04:00
William Jon McCann
a9e82cd46a Deprecate and ignore gtk-enable-tooltips setting
It is enabled by default except on touch input devices.
2013-06-30 14:28:02 -04:00
William Jon McCann
424e1d0059 Start deprecating some GtkStock API 2013-06-25 19:05:32 -04:00
Carlos Garnacho
a33f0ff839 Find tooltip/dnd widget running through container children in inverse order
Usually, educated GtkContainers' forall() implementation returns children
in an order that's safe for the default draw() implementation in GtkContainer.
So for widgets with some stacking notions (eg. GtkOverlay),
_gtk_widget_find_at_coords() needs to recurse within containers in reverse
order so it finds the topmost widget.

As this function is used in both tooltips and DnD code, this improves behavior
of "floating" widgets wrt those two. This could for example be seen in the
"Transparent" GTK+ demo, where dropping text on the entry results on the text
going to the textview.

https://bugzilla.gnome.org/show_bug.cgi?id=699239
2013-05-12 21:17:01 -04:00
Thomas Wood
8d5d9c50b1 tooltip: set the transient parent when using the Wayland backend
Set the transient parent window on tooltips so that they can be
positioned correctly when using the Wayland backend.

https://bugzilla.gnome.org/show_bug.cgi?id=693313
2013-02-12 15:30:56 +00:00
William Jon McCann
92ddf14457 Don't leak a ref to the tooltip window
https://bugzilla.gnome.org/show_bug.cgi?id=683896
2012-09-16 21:36:18 -04:00
Benjamin Otte
7844e8089c types: Clean up gtkwidget.h includes
In particular gtksettings.h and gtkstylecontext.h needed to be included
in lots of places now.

Also, I order the includes alphabetically in a bunch of headers.
2012-03-03 19:45:03 +01:00
Carlos Garnacho
51189ae260 tooltips: Use the source device instead of gtk-touchscreen-mode
This makes tooltips behavior dynamic based on the interacting device.
2012-03-01 16:25:22 -05:00
Javier Jardón
9d0febc9a6 Change FSF Address 2012-02-27 17:06:11 +00:00
Matthias Clasen
020c1846b7 Use the workarea when placing popups
This uses the new workarea API to avoid placing popups underneath
panels, docks, etc.
2011-12-18 14:29:16 -05:00
Paolo Borelli
5a471fefdb Remove unused alignment from GtkTooltip. 2011-12-04 19:20:23 +01:00
Benjamin Otte
98d215635e tooltip: Don't use deprecated API 2011-11-02 02:32:54 +01:00
Benjamin Otte
5ada0fc382 tooltip: Remove unused variables 2011-11-02 02:32:54 +01:00
Rui Matos
d56484f6ed tooltip: only update shape if the window is realized
If we get a composited-changed signal before the tooltip is ever realized we
have nothing to do.

This actually prevents a segfault in maybe_update_shape() because calling
gtk_widget_get_window() on a non-realized widget returns NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=662467
2011-10-23 16:26:18 +01:00
Cosimo Cecchi
febc29852b tooltip: add support for opacity and rounded corners for tooltips
Rounded corners now will always work, using XShape in case we're not
running a composite manager.
Also, setting an RGBA visual (if available) on the tooltip toplevel
enables them to be transparent if the theme specifies so.

https://bugzilla.gnome.org/show_bug.cgi?id=599617
2011-10-19 15:15:00 -04:00
Matthias Clasen
6f39855c08 More include cleanups 2011-08-28 01:54:55 -04:00
Matthias Clasen
6176e23b30 Don't use a GtkAlignment 2011-06-07 22:31:34 -04:00
Kristian Rietveld
0b3b2a943a tooltips: treat scroll events like key/button press instead of motion
This avoids tooltips from staying visible when scrolling using scroll
events.  Suggested by Paul Davis.
2011-05-01 16:39:21 +02:00
Benjamin Otte
c7e5d0c63d tooltip: Use the actual size of the window we're going to show
It's easy by realizing the window first.

Don't try to guess the alorithm used by gtkwindow.c for sizing the
window, it might not be what we expect.
2011-04-27 00:27:29 +02:00
Matthias Clasen
d9fcc4c630 Silence new gcc warnings
gcc 4.6.0 has started to warn about set-but-unused variables.
So don't do that, then.
2011-01-23 21:51:38 -05:00
Carlos Garnacho
554e649a68 Make GtkTooltip use GtkStyleContext 2011-01-04 03:06:17 +01:00
Benjamin Otte
9746991548 API: gdk: Make gdk_display_get_window_at_device_position() a device API
It's now called gdk_device_get_window_at_position(). It doesn't make
sense to keep device-specific API part of the display.
2010-12-27 18:46:41 +01:00
Benjamin Otte
45d98d108e tooltip: Don't use deprecated APIs 2010-12-27 01:05:40 +01:00
Benjamin Otte
85bd61778f API: gdk: GDK_DISPLAY_OBJECT() => GDK_DISPLAY()
GDK_DISPLAY_OBJECT is now deprecated. No need to keep failures from
gtk1 around.
2010-12-21 12:07:07 -05:00
Michael Natterer
fb5dd9f72f Move all GdkDevice members to private and add one missing accessor 2010-11-23 20:25:13 +01:00
Michael Natterer
3a0afce509 gtk: remove "gboolean homogeneous" from gtk_box_new()
Because it's FALSE in virtually all use cases.
2010-10-31 19:22:28 +01:00
Javier Jardón
a9894d4cf4 Use gtk_box_new() instead gtk_[v|h]box_new() 2010-10-30 05:22:58 +02:00
Javier Jardón
ccaf842919 docs: Move documentation to inline comments: GtkTooltip 2010-10-03 00:59:39 +02:00
Benjamin Otte
d9c9259861 Move GtkSizeRequest into GtkWidget
It doesn't make sense to keep them separate as GtkSizeRequest requires a
GtkWidget and GtkWidget implements GtkSizeRequest, so you can never have
one without the other.
It also makes the code a lot easier because no casts are required when
calling functions.

Also, the names would translate to gtk_widget_get_width() and people
agreed that this would be a too generic name, so a "preferred" was added
to the names.

So this patch moves the functions:
gtk_size_request_get_request_mode() => gtk_widget_get_request_mode()
gtk_size_request_get_width() => gtk_widget_get_preferred_width()
gtk_size_request_get_height() => gtk_widget_get_preferred_height()
gtk_size_request_get_size() => gtk_widget_get_preferred_size()
gtk_size_request_get_width_for_height() =>
  gtk_widget_get_preferred_width_for_height()
gtk_size_request_get_height_for_width() =>
  gtk_widget_get_preferred_height_for_width()
... and moves the corresponding vfuncs to the GtkWidgetClass.

The patch also renames the implementations of the vfuncs in widgets to
include the word "preferrred".
2010-09-26 15:11:45 +02:00
Benjamin Otte
1d3f6b30b0 API: Rename gtk_cairo_paint_*() to gtk_paint_*()
Large patch, but just renaming.
Indentation should still mostly be correct because I took care of
keeping the indentation for this function name.
2010-09-26 15:11:42 +02:00
Benjamin Otte
c54968e964 tooltip: Connect to draw signal 2010-09-26 15:11:40 +02:00
Benjamin Otte
2ee8fdb79b gtk: gdk_drawable_get_display() => gdk_window_get_display() 2010-09-26 15:11:33 +02:00
Benjamin Otte
9f47be2216 gtk: gdk_drawable_get_screen/visual => gdk_window_get_screen/visual 2010-09-26 15:11:33 +02:00
Javier Jardón
b140884fec Use gtk_size_request_get_size() instead deprecated gtk_widget_size_request()
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=629598

Signed-off-by: Javier Jardón <jjardon@gnome.org>
Signed-off-by: Tristan Van Berkom <tristanvb@openismus.com>
2010-09-15 03:02:58 +02:00
Javier Jardón
3f101bb08c gtk/gtktooltip.c: use accessor functions to access GtkWidget 2010-08-22 21:25:22 +02:00
Matthias Clasen
dcdb00adb4 Avoid warnings with tooltips on toplevels
This was reported for tooltips on statusicons in bug 625235, but
it was affecting regular toplevel windows as well.
2010-08-05 00:12:41 -04:00
Javier Jardón
0a07e9733b gtk/: fully remove gtkalias hacks
https://bugzilla.gnome.org/show_bug.cgi?id=623845
2010-07-10 02:51:26 +02:00
Michael Natterer
6b4e19a132 Bug 607628 - DnD operation doesn't work when using offscreen
Turn find_widget_under_pointer() into internal API
_gtk_widget_find_at_coords() which is needed for fixing above
bug. This should actually be a public utility function, and will be
moved to another file when its final API has been decided.
(cherry picked from commit c4b1bbf3e2)
2010-05-26 17:21:09 +02:00
Matthias Clasen
bd4609b140 Merge the xi2-for-master branch 2010-05-25 18:38:44 -04:00
Matthias Clasen
51ddf0e1c9 Better tooltip positioning
Avoid the covering up the widget that you are tipping, as
far as possible. Bug 599618.
2010-05-07 23:28:07 -04:00
Michael Natterer
ece97b2359 Bug 615162 - Fix tooltips on offscreen widgets
Fix the "widget under pointer" logic and keyboard tooltip positioning
to do the right thing on offscreen widgets.
2010-04-15 13:03:43 +02:00
Javier Jardón
214a023e91 Deprecate widget flag: GTK_WIDGET_VISIBLE
Use gtk_widget_get_visible() instead

https://bugzilla.gnome.org/show_bug.cgi?id=69872
2010-03-01 07:52:07 +01:00
Javier Jardón
4f78f70b15 Deprecate widget flag: GTK_WIDGET_DRAWABLE
Use gtk_widget_is_drawable() instead.

https://bugzilla.gnome.org/show_bug.cgi?id=69872
2010-03-01 04:55:55 +01:00
Johan Dahlin
fe85272112 [annotations] Add allow-none
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
2010-02-19 17:57:51 -02:00
Christian Dywan
bb1824c131 Deprecate flag macros for toplevel, state, no window and composite child
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
2010-01-04 07:57:05 +01:00
Dan Winship
0b4af241b6 Change GtkIconSize to int in params/return values
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
2009-12-19 10:32:35 +01:00
Matthias Clasen
097b254e4b Documentation and stylistic fixups 2009-11-01 16:12:43 -05:00
Marek Kasik
cf8c4a6a80 A small correction of previous commit
Correct of a typo.
2009-10-19 11:44:09 +02:00
Matthias Clasen
52ef2f2a3e Correct a small oversight
When changing themes, we also need to update the box spacing of
tooltips.
2009-10-18 20:38:28 -04:00
Bastien Nocera
df53e6ad8b Add ability to set a tooltip's image from a GIcon
Makes it easier to implement fallbacks whilst following
theme changes.

https://bugzilla.gnome.org/show_bug.cgi?id=598261
2009-10-14 13:22:14 +01:00
Xan Lopez
f0f39c34f8 Update last_window only when needed
_gtk_tooltip_handle_event, which is called for many events in the GTK+
main loop, calls gtk_tooltip_set_last_window, which keeps a weak
reference to the last window we passed through. If the window being
set is the same than the last one there's really no need to update our
weak reference, so add a check for that and exit early.
2009-09-29 23:45:03 -04:00
Paolo Borelli
f97a33ad9c Move timer removal in dispose
Move removal of timer function in dispose to prevent potentially running
them on a diposed-but-not-finalized tooltip
2009-09-01 15:50:42 +02:00
Kristian Rietveld
f84df976a7 Bug 478519 - GtkTooltip segfaults on NULL gdk-display-current-tooltip
Make the tooltip code a bit more robust for a case that only occurs when
GTK+ is used from a language binding.  It looks like this case appears
because the memory management / ref counting is handled differently in
some of the language bindings.  Instead of asserting, we will fail
silently.  Also fix a think-o in gtk_tooltip_start_delay().  Patch from
O. Andrieu.
2009-08-22 23:21:44 +02:00
Lin Ma
d0f887ddb1 Fix GtkTooltip destroy the custom widget
Fixed 576091, Custom_widget does not get destroyed when the tooltip
goes away. Add a release note for this fix.
2009-05-25 10:01:04 +08:00
Matthias Clasen
4995ea0fcb Set the root coordinates in the event correctly. Patch by Kristian
* gtk/gtktooltip.c (gtk_tooltip_trigger_query): Set the root
        coordinates in the event correctly. Patch by Kristian Rietveld.


svn path=/trunk/; revision=22277
2009-02-04 01:16:35 +00:00
Matthias Clasen
f72dd13a36 Avoid uninitialized memory warnings
svn path=/trunk/; revision=21603
2008-10-07 18:06:00 +00:00
Sven Neumann
2a95978506 gtk/gtkaboutdialog.c gtk/gtkcellrendereraccel.c gtk/gtkcellrenderercombo.c
2008-08-11  Sven Neumann  <sven@gimp.org>

	* gtk/gtkaboutdialog.c
	* gtk/gtkcellrendereraccel.c
	* gtk/gtkcellrenderercombo.c
	* gtk/gtkcellrendererspin.c
	* gtk/gtkcellrenderertext.c
	* gtk/gtkclipboard.c
	* gtk/gtkcolorsel.c
	* gtk/gtkcombo.c
	* gtk/gtkcombobox.c
	* gtk/gtkdnd-quartz.c
	* gtk/gtkdnd.c
	* gtk/gtkentry.c
	* gtk/gtkentrycompletion.c
	* gtk/gtkfilechooserbutton.c
	* gtk/gtkfilechooserdefault.c
	* gtk/gtkfilechooserentry.c
	* gtk/gtkfontsel.c
	* gtk/gtkinputdialog.c
	* gtk/gtkmenutoolbutton.c
	* gtk/gtkpathbar.c
	* gtk/gtktooltip.c: use canonical signal names in 
g_signal_connect().


svn path=/trunk/; revision=21060
2008-08-11 09:17:49 +00:00
Kristian Rietveld
4cceb2f1dc Bug 455268 - Add gtk-enable-tooltips GtkSetting
2008-07-02  Kristian Rietveld  <kris@imendio.com>

	Bug 455268 - Add gtk-enable-tooltips GtkSetting

	* gtk/gtk.symbols:
	* gtk/gtktoolbar.[ch] (gtk_toolbar_[gs]et_tooltips): deprecated.

	* gtk/gtksettings.c: introduce gtk-enable-tooltips XSetting.

	* gtk/gtktooltip.c (_gtk_tooltip_handle_event): take the newly
	introduced XSetting into account.

	* demos/gtk-demo/appwindow.c: don't use the now deprecated
	gtk_toolbar_set_tooltips().


svn path=/trunk/; revision=20730
2008-07-02 09:32:14 +00:00
Johan Dahlin
d97cdbdf53 Include "config.h" instead of <config.h> Command used: find -name
2008-06-21  Johan Dahlin  <jdahlin@async.com.br>

    * *.[ch]: Include "config.h" instead of <config.h>
    Command used:
    find -name \*.[ch]|xargs perl -p -i -e 's/^#include <config.h>/#include "config.h"/g'
    Rubberstamped by Mitch and Tim


svn path=/trunk/; revision=20669
2008-06-22 14:28:52 +00:00
Kristian Rietveld
382ce2f138 Bug 504087 - make gtk_tooltip_set_custom a no-op for setting the current
2008-05-28  Kristian Rietveld  <kris@imendio.com>

	Bug 504087 - make gtk_tooltip_set_custom a no-op for setting the
	current widget again.

	* gtk/gtktooltip.c (gtk_tooltip_set_custom),
	(gtk_tooltip_reset), (gtk_tooltip_run_requery): use a
	custom_was_reset field to check if the custom widget is set again in
	the query-tooltip callback; if not, we set it to NULL.  Based on a
	patch by Xavier Claessens, insightful comments from Jean-Yves Lefort
	and Christian Persch.


svn path=/trunk/; revision=20215
2008-05-28 14:00:31 +00:00
Matthias Clasen
45e33fe9c2 Go back to 2.13.0 as version for now, as there was no consensus to do the
2008-02-15  Matthias Clasen  <mclasen@redhat.com>

        * configure.in: Go back to 2.13.0 as version for now,
        as there was no consensus to do the jump.

        * many other places: Update Since: tags.



svn path=/trunk/; revision=19586
2008-02-15 23:42:42 +00:00
Michael Natterer
a362eecc4a gtk/gtkbutton.h gtk/gtkcellrenderer.h gtk/gtkimcontext.h gtk/gtkstyle.h
2008-01-25  Michael Natterer  <mitch@imendio.com>

	* gtk/gtkbutton.h
	* gtk/gtkcellrenderer.h
	* gtk/gtkimcontext.h
	* gtk/gtkstyle.h
	* gtk/gtktoolbar.h
	* gtk/gtktooltip.h
	* gtk/gtktreeprivate.h
	* gtk/gtktreeviewcolumn.h
	* gtk/gtkwidget.h: add const to constant structs which are passed
	into GTK+. Also add some forgotten const for const strings.

	* gtk/gtkbutton.c
	* gtk/gtkcellrenderer.c
	* gtk/gtkimcontext.c
	* gtk/gtkstyle.c
	* gtk/gtktoolbar.c
	* gtk/gtktooltip.c
	* gtk/gtktreeview.c
	* gtk/gtktreeviewcolumn.c
	* gtk/gtkwidget.c: changed accordingly.


svn path=/trunk/; revision=19399
2008-01-25 09:30:40 +00:00
Kristian Rietveld
239fd8ace2 use a weak pointer to set last_window to NULL as soon as it's destroyed.
2007-12-17  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktooltip.c (gtk_tooltip_finalize),
	(gtk_tooltip_set_last_window): use a weak pointer to set last_window
	to NULL as soon as it's destroyed.  (#496546, patch from
	Benjamin Berg).


svn path=/trunk/; revision=19189
2007-12-17 15:33:45 +00:00
Matthias Clasen
da057b5675 Close an api gap in tooltips
svn path=/trunk/; revision=19175
2007-12-14 05:00:51 +00:00
Kristian Rietveld
aed59b3ea9 Fix #482841, patch by Karl Tomlinson.
2007-10-08  Kristian Rietveld  <kris@imendio.com>

	Fix #482841, patch by Karl Tomlinson.

	* gtk/gtktooltip.c (gtk_tooltip_display_closed): use g_object_set_data
	instead of g_object_set ...
	(_gtk_tooltip_toggle_keyboard_mode),
	(_gtk_tooltip_handle_event): connect to GdkDisplay::closed after
	creating tooltip.


svn path=/trunk/; revision=18890
2007-10-08 12:39:02 +00:00
Kristian Rietveld
7adde1e4fd update alignment padding after theme changes. (Fixes #467003, patch by
2007-08-21  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktooltip.c (gtk_tooltip_init),
	(gtk_tooltip_window_style_set): update alignment padding after
	theme changes. (Fixes #467003, patch by Benjamin Berg).


svn path=/trunk/; revision=18667
2007-08-21 13:13:42 +00:00
Kristian Rietveld
ef1da5f6c2 always set hide_tooltip to TRUE if we are handling a leave notify event.
2007-08-21  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktooltip.c (_gtk_tooltip_handle_event): always set
	hide_tooltip to TRUE if we are handling a leave notify event. (Fixes
	#468245, reported by Dennis Jacobfeuerborn).


svn path=/trunk/; revision=18666
2007-08-21 11:09:42 +00:00
Kristian Rietveld
f6235caef9 Fix #457642, reported by Christian Persch.
2007-08-21  Kristian Rietveld  <kris@imendio.com>

	Fix #457642, reported by Christian Persch.

	* gtk/gtktooltip.c: added debugging output which can be compiled
	in with a #define, annotated all coordinate translations in the
	source code,
	(find_widget_under_pointer): remove the "no-window correction";
	always convert the coordinates from window relative to allocation
	relative; after recursing through a container, translate the
	coordinates from container allocation relative to child widget
	allocation relative;
	(find_topmost_widget_from_event): now we get allocation relative
	coordinates here we do not have to distinguish no-window and window
	widgets.


svn path=/trunk/; revision=18663
2007-08-21 10:52:43 +00:00
Kristian Rietveld
02eda450ea Disable tooltips in touchscreen mode.
2007-08-07  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktooltip.c (_gtk_tooltip_handle_event): Disable tooltips
	in touchscreen mode.


svn path=/trunk/; revision=18586
2007-08-07 11:28:01 +00:00
Matthias Clasen
b11262594c Make the label wrap, for compatibility with the old tooltips code. This
2007-07-31  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtktooltip.c (gtk_tooltip_init): Make the label
        wrap, for compatibility with the old tooltips code. This
        fixes absurdly long tooltips in the color selector.



svn path=/trunk/; revision=18558
2007-07-31 17:38:27 +00:00
Matthias Clasen
ef8bdfb703 Call gtk_tooltip_hide_tooltip() even if the tooltip is not visible yet.
2007-07-25  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtktooltip.c (_gtk_tooltip_handle_event): Call
        gtk_tooltip_hide_tooltip() even if the tooltip is not
        visible yet. This fixes annoying dangling tooltips
        on systray icons.


svn path=/trunk/; revision=18544
2007-07-25 17:45:22 +00:00
Matthias Clasen
17aacf414d Protect against recursion via gtk_container_remove(). (#459561, Christian
2007-07-23  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtktooltip.c (gtk_tooltip_set_custom): Protect against
        recursion via gtk_container_remove().  (#459561, Christian Persch)
        (gtk_tooltip_window_hide): Simplify.



svn path=/trunk/; revision=18534
2007-07-24 03:54:16 +00:00
Matthias Clasen
c8c42229f1 Don't pop up under the cursor.
2007-07-20  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtktooltip.c (gtk_tooltip_position): Don't pop up
        under the cursor.



svn path=/trunk/; revision=18512
2007-07-20 12:13:24 +00:00
Kristian Rietveld
9719e5fb3c handle no-window and regular widgets seperately.
2007-07-19  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktooltip.c (find_topmost_widget_coords_from_event): handle
	no-window and regular widgets seperately.

	* gtk/gtktreeview.c (gkt_tree_view_set_tooltip_cell): rect.x should
	be zero.


svn path=/trunk/; revision=18502
2007-07-19 15:03:18 +00:00
Kristian Rietveld
2a8be448e3 only do the coordinate check if tmp is not NULL.
2007-07-17  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktooltip.c (find_widget_under_pointer): only do the
	coordinate check if tmp is not NULL.


svn path=/trunk/; revision=18486
2007-07-17 12:39:20 +00:00
Kristian Rietveld
50a0d3b8eb check if the pointer is really over the returned widget, since the
2007-07-16  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktooltip.c (find_topmost_widget_coords_from_event): check
	if the pointer is really over the returned widget, since the
	coordinate check may not always be hit in find_widget_under_pointer().


svn path=/trunk/; revision=18478
2007-07-16 16:39:53 +00:00
Kristian Rietveld
da989212f3 #408327, improve tooltip positioning.
2007-07-13  Kristian Rietveld  <kris@imendio.com>

	#408327, improve tooltip positioning.

	* gtk/gtk.symbols: updated.

	* gtk/gtktooltip.[ch] (gtk_tooltip_position): factor out
	positioning code in here,
	(gtk_tooltip_set_tip_area): new function to set the tooltip
	area,
	(gtk_tooltip_reset), (_gtk_tooltip_handle_event): hide tooltip
	once the pointer leaves the tip area.

	* gtk/gtktreeview.[ch] (gtk_tree_view_set_tooltip_row),
	(gtk_tree_view_set_tooltip_cell): convenience functions to set
	tip area for row/column/cell.

	* tests/testtooltips.c (query_tooltip_tree_view_cb): use
	gtk_tree_view_set_tooltip_row.


svn path=/trunk/; revision=18464
2007-07-13 14:25:21 +00:00
Kristian Rietveld
75d9d02b72 use gtk_container_forall, instead of gtk_container_foreach(). Makes
2007-07-10  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktooltip.c (find_widget_under_pointer),
	(child_location_foreach): use gtk_container_forall, instead of
	gtk_container_foreach().  Makes tooltips on notebook tabs work. (Fixes
	bug reported by Christian Persch).


svn path=/trunk/; revision=18436
2007-07-10 17:47:10 +00:00
Kristian Rietveld
94cfbbfa15 ignore invisible (!drawable) widgets. (Fixes bug reported by Paolo
2007-07-10  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktooltip.c (child_location_foreach): ignore invisible
	(!drawable) widgets.  (Fixes bug reported by Paolo Borelli).


svn path=/trunk/; revision=18435
2007-07-10 17:40:05 +00:00
Matthias Clasen
d8a25fcdff Fix a typo in the docs. (#453930, Guillaume Cottenceau)
2007-07-09  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtktooltip.c (gtk_tooltip_trigger_tooltip_query):
        Fix a typo in the docs.  (#453930, Guillaume Cottenceau)



svn path=/trunk/; revision=18419
2007-07-09 19:29:51 +00:00
Johan Dahlin
3865f68226 Make the GTK_TOOLTIP and GTK_IS_TOOLTIP macros public.
2007-07-09  Johan Dahlin  <jdahlin@async.com.br>

    * gtk/gtktooltip.c:
    * gtk/gtktooltip.h: Make the GTK_TOOLTIP and GTK_IS_TOOLTIP macros public.


svn path=/trunk/; revision=18410
2007-07-09 17:24:24 +00:00
Mathias Hasselmann
9b604e29a2 Introduce convenience property "GtkWidget:tooltip-text" taking care of
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-15 18:24:55 +00:00
Kristian Rietveld
38b0ef28b0 remove unused call to gtk_widget_size_request(). (Reported by Carlos
2007-06-06  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktooltip.c (gtk_tooltip_paint_window): remove unused
	call to gtk_widget_size_request().  (Reported by Carlos
	Garnacho).


svn path=/trunk/; revision=18052
2007-06-06 12:33:08 +00:00
Kristian Rietveld
97af2e0063 bail out if last_window is not a GdkWindow anymore. (Fixes #434021,
2007-06-06  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktooltip.c (gtk_tooltip_show_tooltip): bail out if
	last_window is not a GdkWindow anymore. (Fixes #434021, several
	reporters).


svn path=/trunk/; revision=18051
2007-06-06 12:28:50 +00:00
Matthias Clasen
4f3e3a617b More doc fixage
svn path=/trunk/; revision=17937
2007-05-26 20:29:26 +00:00
Michael Natterer
5a1a2cf44c apply patch from Bogdan Nicula which fixes a crash on GdkWindows which
2007-05-24  Michael Natterer  <mitch@imendio.com>

	* gtk/gtktooltip.c (find_widget_under_pointer): apply patch from
	Bogdan Nicula which fixes a crash on GdkWindows which have no
	GtkWidget as user_data (bug #440890).


svn path=/trunk/; revision=17906
2007-05-24 15:54:23 +00:00
Matthias Clasen
451b0a7bfd Add some missing symbols.
2007-05-23   Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtk.symbols:
        * gdk/x11/xsettings-common.h:
        * gdk/gdk.symbols: Add some missing symbols.

        * gtk/paper_names_offsets.c:
        * gtk/gen-paper-names.c: Make variables static.

        * gtk/gtktooltip.[hc]:
        * gtk/gtkvolumebutton.c:
        * gtk/gtkscalebutton.c:  Fix up symbol aliasing.

svn path=/trunk/; revision=17899
2007-05-23 17:49:34 +00:00
Kristian Rietveld
5e59105ea3 translate coordinates from the window they were received on to the event
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-05-23 12:32:42 +00:00
Kristian Rietveld
8af6804b71 cleanup/refactor some leftover code.
2007-04-25  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktooltip.c (find_topmost_widget_coords_from_event):
	cleanup/refactor some leftover code.


svn path=/trunk/; revision=17628
2007-04-25 07:15:49 +00:00
Kristian Rietveld
e397ed56cc use new gdk_threads API.
2007-04-04  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktooltip.c (tooltip_browse_mode_expired),
	(gtk_tooltip_hide_tooltip), (tooltip_popup_timeout),
	(gtk_tooltip_start_delay): use new gdk_threads API.


svn path=/trunk/; revision=17583
2007-04-04 13:05:42 +00:00
Kristian Rietveld
01a2ea4a33 check return value of gtk_widget_translate_coordinates() so we cannot end
2007-02-14  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktooltip.c (child_location_foreach): check return value
	of gtk_widget_translate_coordinates() so we cannot end up
	using uninitialized x, y values.  (#407863, patch from Carlos
	Garnacho).


svn path=/trunk/; revision=17293
2007-02-14 20:38:02 +00:00
Kristian Rietveld
1cad322c6d stop any pending tooltip timeout. (Fixes #406110, Carlos Garnacho).
2007-02-13  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktooltip.c (gtk_tooltip_hide_tooltip): stop any
	pending tooltip timeout. (Fixes #406110, Carlos Garnacho).


svn path=/trunk/; revision=17290
2007-02-13 12:41:36 +00:00
Tim Janik
caa4d15dab call gdk_event_request_motions() for new motion events after receiving
Tue Feb  6 15:53:59 2007  Tim Janik  <timj@imendio.com>

        * gtk/gtktextview.c (gtk_text_view_motion_event):
        * gtk/gtkspinbutton.c (gtk_spin_button_motion_notify):
        * gtk/gtkaboutdialog.c (credits_motion_notify_event):
        * gtk/gtkhruler.c (gtk_hruler_motion_notify):
        * gtk/gtkvruler.c (gtk_vruler_motion_notify): 
        * gtk/gtkentry.c (gtk_entry_motion_notify):
        * gtk/gtktooltip.c (_gtk_tooltip_handle_event):
        * gtk/gtkhsv.c (gtk_hsv_motion): call gdk_event_request_motions()                              
        for new motion events after receiving motion hints.

        * gdk/gdkevents.[hc]: added gdk_event_request_motions().



svn path=/trunk/; revision=17269
2007-02-06 14:53:35 +00:00
Kristian Rietveld
af7f77d97b remove unused get of has_tooltip.
2007-02-06  Kristian Rietveld  <kris@imendio.com>

	* gtk/gtktooltip.c (find_topmost_widget_coords_from_event):
	remove unused get of has_tooltip.

	* tests/testtooltips.c (query_tooltip_tree_view_cb): use the
	portable g_snprintf instead of snprintf.


svn path=/trunk/; revision=17266
2007-02-06 13:13:19 +00:00
Michael Natterer
3c65aade6f chain up.
2007-02-06  Michael Natterer  <mitch@imendio.com>

	* gtk/gtktooltip.c (gtk_tooltip_finalize): chain up.

	(gtk_tooltip_show_tooltip): move variables and code to local
	scope. Fixes warnings about maybe uninitialized variables.


svn path=/trunk/; revision=17265
2007-02-06 12:11:33 +00:00
Kristian Rietveld
0ef946ed64 New tooltips API.
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-02-06 10:25:21 +00:00