Commit Graph

19109 Commits

Author SHA1 Message Date
Olivier Brunel
48770fda30 Fix GtkToolButton possibly being empty
With style BOTH_HORIZ the label would not be selected (if not marked
"important") and when there's no icon, it would result in an empty button.

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

https://bugzilla.gnome.org/show_bug.cgi?id=710134
2013-10-15 21:44:18 -04:00
Alexander Larsson
07eafbaaa8 GtkBuilder: Fall back to gtk_test_register_all_types if type lookup fails
This is important because the dlsym() approach can fail if gtk was
loaded with RTLD_LOCAL.

https://bugzilla.gnome.org/show_bug.cgi?id=710096
2013-10-15 21:41:35 -04:00
Matthias Clasen
4b7eaee959 Fix an oversight
Followup for 3c41d4865e
2013-10-15 21:30:35 -04:00
Matthias Clasen
6d5cbf16d6 Fall back to non-symbolic icons
When doing fallback for symbolic icons, we first shorten
the name at dashes while preserving the -symbolic suffix.
But after exhausting that, we should also try stripping
the suffix.

https://bugzilla.gnome.org/show_bug.cgi?id=708163
2013-10-15 21:19:17 -04: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
Yosef Or Boczko
d1e218f4ab Fix a warning
The PangoWrapMode enum has identical layout to GtkWrapMode,
but using the two interchangably causes (justified) compiler
warnings.

https://bugzilla.gnome.org/show_bug.cgi?id=709697
2013-10-15 20:11:30 -04:00
Matthias Clasen
6b7981d2f5 Set an error when loading a GtkIconInfo fails
Failure to do so leads to assertion failures.
https://bugzilla.gnome.org/show_bug.cgi?id=710073
2013-10-15 20:06:24 -04:00
Ryan Lortie
9a6ee36e9c GtkApplication: a new approach to accels
Rework how accels are handled on GtkApplicationWindow.

Instead of having GtkApplication fill the GtkAccelMap which is then used
by GtkApplicationWindow to create a GtkAccelGroup filled with closures
that is then associated with the window, do it directly.

GtkApplication now keeps a list of accels and their actions.
Accelerators on a GtkApplicationWindow ask GtkApplication to execute the
appropriate action.

This saves a fair bit of complexity and memory use (due to not having to
create all those closures and accelmap entries).  The new approach also
supports multiple accels per action (although there is not yet a public
API for it).

This patch (and the ones before) Reviewed and ACK'd by Matthias Clasen.
2013-10-15 09:24:12 -04:00
Ryan Lortie
afa8b0178f GtkMenuTrackerItem: add support for dynamic accels
Add support for pulling the primary accel out of the GtkActionMuxer.

With this change, it is no longer necessary to have the accel=''
attribute hardcoded onto each menu item (and, in fact, it should be left
off if you intend to have support for dynamic accelerator changing).

Specifying accel='' is a good way to force an accelerator not to be
displayed on a menu item.
2013-10-15 09:24:12 -04:00
Ryan Lortie
2074daccf5 GtkMenuTrackerItem: use "action and target" format
Store "action and target" format inside each GtkMenuTrackerItem.  This
makes action invocation more efficient (no hash table lookups or
allocations) and slightly simplifies handling of action namespace.

More importantly, this will be used when we start to get accels from
GtkActionMuxer.
2013-10-15 09:24:11 -04:00
Ryan Lortie
3f8c235593 GtkActionMuxer: store primary accels
Reuse the existing infrastructure in GtkActionMuxer for propagation of
accelerator information: in particular, what accel label ought to appear
on menu items for a particular action and target.

This is a good idea because we want accels to travel along with the
actions that they're tied to and reusing GtkActionMuxer will allow us to
do that without creating another hierarchy of a different class for the
sole purpose of filling in accel labels on menu items.

Doing it this ways also allows those who copy/paste GtkActionMuxer to
insert the accels for themselves.

Add a new method on the GtkActionObserver interface to report changes.

This patch introduces a new concept: "action and target" notation for
actions.  This format looks like so:

  "'target'|app.action"

or for non-targeted actions:

  "|app.action"

and it is used over a number of possible alternative formats for some
good reasons:

 - it's very easy to get a nul-terminated action name out of this format
   when we need it, by using strrchr('|') + 1

 - we can also get the target out of it using g_variant_parse() because
   this function takes a pointer to a 'limit' character that is not
   parsed past: we use the '|' for this

 - it's extremely easy to hash on this format (just use a normal string
   hash) vs. attempting to hash on a string plus a GVariant

A close contender was to use detailed action strings here, but these are
not used for two reasons:

 - it's not possible to easily get the action name or target out of the
   strings without more work than the "action and target" format
   requires

 - we still intend to use detailed action strings on API (since they are
   a lot nicer to look at) but detailed action strings can be given in
   non-canonical forms (eg: 'foo::bar' and 'foo("bar")' are equivalent)
   so we'd have to go through a normalisation step anyway.  Since we're
   doing that already, we may as well convert to a more convenient
   internal format.

This new "action and target" format is going to start appearing in a lot
more places as action descriptions are introduced.

I suspect that nobody is using '|' in their action names, but in case I
am proven wrong, we can always switch to using something more exotic as
a separator character (such as '\x01' or '\xff' or the like).
2013-10-15 09:24:11 -04:00
Ryan Lortie
abcddd3ae0 GtkWindow: change muxer setup with application
Previously, GtkWindow would add the "app" action group to its own
toplevel muxer.

Change the setup so that GtkApplication creates the toplevel muxer and
adds itself to it as "app".  Use this muxer as the parent muxer of any
GtkWindow associated with the application.

This saves a small amount of memory and will allow for accels to be
propagated from the application through to all of the windows.
2013-10-15 09:24:11 -04:00
Ryan Lortie
3f0b9a7574 GtkBuilder: add GtkApplication
Add a GtkApplication (private) field to GtkBuilder
2013-10-15 09:24:11 -04:00
Matthias Clasen
d967266b77 Fix a crash in icon handling
The load_error was freed in two places.
Fix based on a patch in
https://bugzilla.gnome.org/show_bug.cgi?id=709967
2013-10-15 08:04:25 -04:00
Matthias Clasen
f9c8fefeda Restore accessible names for image-only buttons
With the stock system being deprecated now, we should provide
meaningful accessible names for buttons that are constructed
from icon names or GIcons. This commit reuses the existing
translations.

It is possible that some common icon names are not covered
here because they were not present as stock items. These can
be added to the table later.
2013-10-14 10:37:58 -04:00
John Ralls
d0065270ac Fix double-free introduced in f86dc163 2013-10-11 10:54:15 -07:00
William Jon McCann
b33877e173 spinner: don't expand to fill the allocated space
Spinners are essentially animated symbolic icons. We don't really
want them being rendered to arbitrary sizes. Also the current
technique for rendering the activity is not suitable for larger
sizes. Until we have a better technique we should limit the size
to the MENU icon size or exactly twice that size.
2013-10-11 08:38:37 -04:00
Florian Müllner
dd85acbaf1 listbox: Fix keynav_failed() parameter in move_cursor()
The 'direction' parameter to gtk_widget_keynav_failed() is based on
gtk_list_box_move_cursor()'s 'count' parameter. However if the passed
in movement is GTK_MOVEMENT_DISPLAY_LINES, 'count' is modified by
the keynav handling and will always be 0. To avoid messing up the
'direction' parameter, use a local variable for keynav handling and
leave 'count' untouched.

https://bugzilla.gnome.org/show_bug.cgi?id=709687
2013-10-11 13:11:59 +02:00
Murray Cumming
22fe579d37 GMenu docs: Tiny grammar fix 2013-10-11 10:25:24 +02:00
John Ralls
108c20bd51 Suppress cursor theme unsupported warning when there's no theme. 2013-10-10 15:39:25 -07:00
John Ralls
9e0faf6a38 Implement gtk_drag_begin_with_coordinates () for quartz. 2013-10-10 15:37:27 -07:00
John Ralls
f86dc163b9 Quartz: Set the drag context target list
So that gdk_drag_context_list_targets() actually returns something.
2013-10-10 15:37:27 -07:00
Dan Williams
7d0d90ad62 GtkCellRendererToggle: correct "toggled" signal documentation
Previous commit wrongly identified "active" as containing the new
value.  Instead, applications must determine the new value to
update the model with manually based on the value currently in the
model.
2013-10-10 17:07:42 -05:00
Dan Williams
e869399369 GtkCellRendererToggle: update documentation of 'toggled' signal
Clarify that applications are expected to handle updating the model
from the 'active' property, like GtkCellRendererText does for the
'edited' property.
2013-10-10 15:33:36 -05:00
William Jon McCann
2e53f90e07 search-bar: use menu icon size for the close button 2013-10-10 16:06:49 -04:00
William Jon McCann
f2d229e2ce search-bar: make independent of toolbar styling
Don't use a toolbar as an implementation detail of the search bar
to make styling them differently a bit easier.
2013-10-10 16:06:49 -04:00
Xavier Claessens
d5c36c62ed GtkSearchBar: replace incomplete example with a real one
https://bugzilla.gnome.org/show_bug.cgi?id=709745
2013-10-10 14:48:13 -04:00
Xavier Claessens
f979c3d7a2 GtkMenu: Document that gtk_widget_insert_action_group() can be used 2013-10-10 14:07:41 -04:00
Jasper St. Pierre
81538d492e revealer: Use the same transition animation as GtkStack 2013-10-09 18:29:41 -04:00
Jasper St. Pierre
ee8b3efbcf stack: Remove some confusing whitespace 2013-10-09 18:29:41 -04:00
Jasper St. Pierre
ddb4034e8e Fix GI warnings 2013-10-09 14:19:54 -04:00
David King
5f61183158 stack: Warn when setting a visible child which is not in the stack
https://bugzilla.gnome.org/show_bug.cgi?id=709613
2013-10-08 10:55:29 +01:00
Matthias Clasen
1e1c1556f6 Another forgotten a11y header 2013-10-07 16:43:36 -04:00
William Jon McCann
9fc3e59673 range: start autoscrolling near the edges of ranges
If a range goes all the way to the edge of the screen then we don't
have any way to activate autoscrolling. By adding a small region
at the ends of the range we can handle this case. This is the same
approach used in treeviews.
2013-10-07 16:38:49 -04:00
Matthias Clasen
1f4c60256f Install flowbox a11y headers
Pointed out by Jasper St. Pierre.
2013-10-07 16:29:51 -04:00
Chun-wei Fan
d47eac5ba5 gtk/gtkflowbox: Fix build warning/error
The newly-added gtk_flow_box_child_is_selected() needed to return a
gboolean, so use g_return_val_if_fail() to return FALSE when an invalid
GtkFlowBoxChild* is passed in.
2013-10-07 12:13:11 +08:00
Matthias Clasen
98e8505234 Tweak flowbox selection behaviour
Make flowbox selection more orthodox. Control and Shift now
modify the selection behaviour pretty much in the same way
they do in a tree view, and clicking without modifiers will
clear the selection.

When dealing with touch devices, we treat modifier-less events
as modifying the selection.

This commit also adds a few other selection necessities, such
as catching Escape key presses to cancel rubberband selection,
and handling grab notify.
2013-10-06 23:31:18 -04:00
Matthias Clasen
b937557d95 Make resetting a filter work properly
We need to make sure all children are marked as child-visible
again when the filter func is reset.
2013-10-06 23:31:18 -04:00
Matthias Clasen
f733903334 Fix wording in the docs 2013-10-06 23:31:17 -04:00
Matthias Clasen
943d575ec3 Add GtkFlowBox
GtkFlowBox is a container that its children in a reflowing
grid, which can be oriented horizontally or vertically.

It is similar to GtkListBox in that the children can
be sorted and filtered, and by requiring a dedicated child
widget type, GtkFlowBoxChild. It is similar to GtkTreeView
in that is supports a full set of selection modes, including
rubberband selection.

This is the culmination of work that has happened in the
egg-list-box module, and earlier in libegg. The origins of
this code are the EggSpreadTable in libegg, which was written
by Tristan van Berkom. It was moved to egg-list-box and
renamed EggFlowBox by Jon McCann, and I gave it some finishing
touched in the flowbox-improvements branch of that module.
2013-10-06 23:31:17 -04:00
John Lindgren
17a1f4abad Populate GtkPlacesSidebar at initialization
Previously, the "Places" sidebar was populated by the update_places()
call from within gtk_places_sidebar_style_set(). After
742a2f11a9, update_places() is never called
and the sidebar is never populated unless gtk_places_sidebar_add_shortcut()
happens to be called. This commit fixes this by calling update_places()
at the end of gtk_places_sidebar_init().

https://bugzilla.gnome.org/show_bug.cgi?id=709522
2013-10-06 16:06:14 -04:00
Alexander Larsson
5bdfdcadff Remove opacity-groups
GtkWidget had a hack where if opacity is 0.999 we set up an opacity group when
rendering the widget. This is no longer needed in 3.10, and GtkStack doesn't
use it anymore.

GdStack is using it, so applications should be ported from GdStack to GtkStack
in 3.12.

https://bugzilla.gnome.org/show_bug.cgi?id=703603
2013-10-06 02:56:03 -04:00
Matthias Clasen
605b918b2d a11y: Drop obsolete focus tab handling in notebooks
GtkNotebook lost the concept of a separate 'focus tab' ages ago.
Time for the accessible implementation to follow suit.

https://bugzilla.gnome.org/show_bug.cgi?id=693586
2013-10-06 02:00:31 -04:00
Matthias Clasen
61433f10e4 csd: Keep a maximized flag
This mirrors what we do for fullscreen and tiled.
2013-10-06 00:41:27 -04:00
Matthias Clasen
d6c866b6e5 csd: add style classes for tiled and maximized
This lets us change the border radius when the window is
in one of these states.

https://bugzilla.gnome.org/show_bug.cgi?id=709215
2013-10-06 00:35:43 -04:00
Kjell Ahlstedt
757ae6f163 GtkWindow: Override gtk_container_remove ()
Check which child is being removed, title_box or the GtkBin child.

https://bugzilla.gnome.org/show_bug.cgi?id=709049
2013-10-05 23:22:43 -04:00
Matthias Clasen
9490e7064e csd: properly check titlebar visibility
Now that we are using child-visible to hide titlebars, we need to
adjust the visibility checks in various places to take it into account.

https://bugzilla.gnome.org/show_bug.cgi?id=709323
2013-10-05 23:17:02 -04:00
Matthias Clasen
66445fec1d Fix dark theme issues in the print dialog
The dimensions in the n-up illustration were not using the
color of the style for drawing.

https://bugzilla.gnome.org/show_bug.cgi?id=709420
2013-10-05 23:02:54 -04:00
Benjamin Otte
a4c7f188de icontheme: Use gdk_rgba_to_string()
This gives us valid CSS. And now that librsvg parses valid CSS, that's a
fine thing to use.

And it fixes the problem where %g is locale-dependent.
2013-10-05 21:32:09 +02:00
Benjamin Otte
67260eec22 container: Deprecate resize mode
Resize modes don't work anymore, both because nobody ever uses them and
because the frame clock changed the way things work quite a bit. So we
don't want to advertise them as a good idea.

https://bugzilla.gnome.org/show_bug.cgi?id=708787
2013-10-05 15:09:53 +02:00
Benjamin Otte
303cf53f3f icontheme: Use rgba() when loading symbolic icons
This way, we correctly pass on translucency information. Note: This
currently requires librsvg master.
2013-10-05 13:57:51 +02:00
Benjamin Otte
0e6a9858e1 stylecontext: Deprecate gtk_style_context_invalidate()
Everything is invalidated automatically these days.
2013-10-05 13:57:51 +02:00
Benjamin Otte
7f0c29bcd7 texthandle: Use the parent widget's style context
... instead of creating our own.
2013-10-05 13:57:51 +02:00
Sébastien Wilmet
ab112a2096 Improve doc of gtk_style_context_invalidate()
https://bugzilla.gnome.org/show_bug.cgi?id=708583
2013-10-05 13:57:51 +02:00
William Jon McCann
6f17c408e6 notebook: inform the theme to draw borders when requested
When the show-border property is TRUE ask the theme to draw
borders on the notebook header.
2013-10-04 18:14:25 -04:00
William Jon McCann
053433010b notebook: add style classes for orientation to the header 2013-10-04 18:14:25 -04:00
William Jon McCann
db60046af4 notebook: correctly define the header region
Correctly define the header region to only be the area under the
tabs.
2013-10-04 18:14:25 -04:00
Debarshi Ray
35be1c8b56 places sidebar: Small cleanup 2013-10-03 18:30:39 +02:00
Timm Bäder
01d278a74f gtk_list_box_set_focus: Handle ist_box == NULL
Rows without a parent GtkListBox can happen in Glade and its previewer.
2013-10-03 14:05:12 +02:00
Bastien Nocera
744b790fdb iconhelper: Fix leak when rendering to cairo surface
https://bugzilla.gnome.org/show_bug.cgi?id=709264
2013-10-02 17:21:48 +02:00
Bastien Nocera
e53bb1bf1b iconhelper: Use g_clear_* helpers
https://bugzilla.gnome.org/show_bug.cgi?id=709264
2013-10-02 17:21:48 +02:00
Bastien Nocera
8938f3c47d icon-theme: Fix 2 memory leaks in GtkIconInfo
https://bugzilla.gnome.org/show_bug.cgi?id=709264
2013-10-02 17:21:48 +02:00
Bastien Nocera
7c595bcc53 icon-theme: Use g_clear_* helpers in finalize
https://bugzilla.gnome.org/show_bug.cgi?id=709264
2013-10-02 17:21:48 +02:00
William Jon McCann
e9b9fd20b9 notebook: Add a style property for whether to draw a tab gap
Add a has-tab-gap style property to GtkNotebook so that we can
disable drawing the gap between tabs and the page in the Adwaita
theme without breaking existing themes.

https://bugzilla.gnome.org/show_bug.cgi?id=707920
2013-10-02 10:51:16 -04:00
William Jon McCann
b609377e3e notebook: Fix rounding error in vertical alignment of arrow
https://bugzilla.gnome.org/show_bug.cgi?id=707920
2013-10-02 10:51:16 -04:00
William Jon McCann
e07fec3e83 notebook: Make notebook scroll arrows honor initial gap setting
So that they can be styled so they are not right on the edge.

https://bugzilla.gnome.org/show_bug.cgi?id=707920
2013-10-02 10:51:16 -04:00
William Jon McCann
8dd100d9b0 notebook: Improve the style of the default arrows
https://bugzilla.gnome.org/show_bug.cgi?id=707920
2013-10-02 10:51:15 -04:00
William Jon McCann
81b0808849 notebook: Use initial-gap on both edges of the tab header
https://bugzilla.gnome.org/show_bug.cgi?id=707920
2013-10-02 10:51:15 -04:00
Alexander Larsson
79e5069dff GtkTextView: Fix horizontal scrolling
We didn't properly invalidate when scrolling horizontally.

https://bugzilla.gnome.org/show_bug.cgi?id=708019
2013-10-02 16:23:41 +02:00
Alexander Larsson
1ac13435b7 GtkTextView: Fix regression in GtkSourceView drawing
GtkSourceView draws before chaining upo to GtkTextView and assumes
that this will be visible, but the pixelcache will just overdraw
that with background.

So, we stop drawing the background to the pixel cache and instead
make it an CAIRO_CONTENT_COLOR_ALPHA surface to make the previously
drawn content see through.

This is slower, but more backwards compatible.

https://bugzilla.gnome.org/show_bug.cgi?id=708423
2013-10-02 16:23:41 +02:00
Matthias Clasen
5abff7bd4c Improve gtk_container_add docs
Mention that some containers add intermediate children automatically.
2013-09-30 20:53:19 -04:00
Matthias Clasen
c02a12a746 Make it possible to hide custom titlebars
Previously, we were showing and hiding the custom titlebar
widget in response to state changes such as maximization.
Instead, use gtk_widget_set_child_visible() and leave
show/hide to applications. This makes it possible to set
a custom titlebar and hide it, for a titlebar-less appearance.

https://bugzilla.gnome.org/show_bug.cgi?id=707132
2013-09-30 20:19:08 -04:00
William Jon McCann
41b9a17dfc Fix typo in gtk-win32-base.css 2013-09-30 18:27:13 -04:00
Cosimo Cecchi
3d602f5b0a icontheme: use g_file_load_contents() for symbolic icons
When loading a symbolic icon, g_file_get_contents() is currently used
with the icon pathname, to load its SVG data. This won't work when the
icon is not a local file, for instance when a symbolic icon is loaded
from a GFileIcon with a GResource path.
Fortunately GtkIconInfo already holds a GFile, so we can just use
g_file_load_contents() to load the data instead.

https://bugzilla.gnome.org/show_bug.cgi?id=709056
2013-09-30 09:45:22 -07:00
Tristan Van Berkom
28a3638448 gtk-doc fixup for gtk_widget_class_bind_template_child_full()
Updated documentation to specify that '0' should be specified if
one does not need to automatically assign a bound child to a public
or private instance member (now that negative values are private
structure offsets).
2013-09-30 17:29:22 +02:00
Ryan Lortie
e3b9ea5ab6 GtkTreeViewColumn: start padding at 0
If we start with a padding of -1 then it can leak out of the size
allocation request for the column when the treeview is empty.  The
GtkTreeView will then collect these -1 values and add them together,
returning -n where 'n' is the number of columns.

This is usually not a problem because treeviews tend to be used with a
scrollbar and the width of the scrollbar will be added to this number
bringing it into positive territory again.  On Ubuntu, with overlay
scrollbars, this is not the case, however.

https://bugzilla.gnome.org/show_bug.cgi?id=703062
2013-09-30 09:23:00 -04:00
Behdad Esfahbod
b0e168d58f Bug 467720 - Useless use of const qualifier 2013-09-28 14:14:31 -04:00
John Ralls
124e814f47 Bug 651224 - Potential NULL display ptr from quartz gtk_clipboard_wait_for_contents 2013-09-28 10:55:22 -07:00
John Ralls
133a0c7426 Clarify Cursor Theme GDK Warning 2013-09-28 10:05:29 -07:00
Matthias Clasen
3f6a1dc9a9 More formatting style adjustments
Lose a whole bunch of unnecessary 'real', shortening
excessively long function names.
2013-09-27 22:00:38 -04:00
Matthias Clasen
c31a34d5ee Some coding style improvements
Use g_return_if_fail in GTK+ style in all public APIs,
avoid dereferencing variables early, shorten some
function names.
2013-09-27 21:39:10 -04:00
Matthias Clasen
58621b00de Trivial: remove an unused declaration
_gtk_list_box_accessible_update_selected is not used and
does not exist.
2013-09-27 20:32:39 -04:00
Bastien Nocera
f5291660e0 Fix possible crash in header bar
When the header bar's top-level widget is not a GtkWindow,
don't try to get the inexistant "decoration-button-layout"
property.
2013-09-27 17:27:31 +02:00
Matthias Clasen
377c124446 csd: Avoid jumping windows
The size of the shadow and invisible borders can (and usually
will) change between backdrop and focused windows, while the
overall window size remains unchanged. This causes the visible
window to visually 'jump'. We can avoid this by always reserving
the maximum of the focused and unfocused border sizes. The code
for positioning the input-only windows making up the invisible
border is adjusted to deal with this. We now always place the
invisible border right outside the visible content, even if the
shadow extends out much farther.

https://bugzilla.gnome.org/show_bug.cgi?id=707524
2013-09-26 23:19:29 -04:00
Cosimo Cecchi
71ad9a8fdd notebook: render a frame and background in the header
And use the "header" style class to do that.
This allows themes to set e.g. the background of the tab header
differently.

Themes will need slight adjustment to make things appear
as before.

https://bugzilla.gnome.org/show_bug.cgi?id=643914
2013-09-26 19:27:54 -04:00
Cosimo Cecchi
a2ed88b3ee Allow active tab children to be styled
This allows one to style the children of an active
tab label from CSS.

https://bugzilla.gnome.org/show_bug.cgi?id=691163
2013-09-26 19:19:53 -04:00
Matthias Clasen
bd1df33798 Trivial: correct vfunc signatures
Harmless confusion between gint and gboolean
https://bugzilla.gnome.org/show_bug.cgi?id=697031
2013-09-26 19:16:14 -04:00
Sébastien Wilmet
f75aa5fdb4 GtkTextView: add create_buffer virtual method pointer
This allows subclasses of GtkTextView that require a corresponding
subclass of GtkTextBuffer to automatically do the right thing when
constructed with a NULL buffer. An example of this is GtkSourceView
which requires a GtkSourceBuffer.

https://bugzilla.gnome.org/show_bug.cgi?id=708584
2013-09-26 18:36:20 +02:00
Matthias Clasen
7439e03f3d Fixups to GtkStack
The GtkStack and GtkStackSwitcher code did not really
follow GTK+ conventions for includes. Fix that, and also
fix up a case of gpointer vs gpointer* confusion
in gtkstack.c.
2013-09-25 23:54:31 -04:00
Matthias Clasen
5315661721 Use a stack in GtkAboutDialog
This lets us slide the credits and license sections up and down,
instead of just popping them into existence abruptly.
2013-09-25 23:54:31 -04:00
Matthias Clasen
98b78ed5da GtkStack: Add more transition types
This adds new 'over' and 'under' transitions which work by moving
the new page over the previous one, or moving the previous page off
to reveal the new one. We also add an over/under combination that
is going to be used in GtkAboutDialog.

https://bugzilla.gnome.org/show_bug.cgi?id=707187
2013-09-25 23:54:12 -04:00
Matthias Clasen
17aae0477f GtkAboutDialog: prevent unintended visibility
Some of the labels were not marked as no-show-all. But the
code clearly tries to manage their visibility, so gtk_widget_show_all()
should not affect them.

https://bugzilla.gnome.org/show_bug.cgi?id=681484
2013-09-25 22:51:33 -04:00
Paolo Borelli
e59c28743a Add a needs-attention child property to GtkStack
The child property is watched by the StackSwicther which in turns sets a
needs-attention css class on the corresponding button, so that the theme
can for instance show a throbbing animation if one of the hidden pages
needs the user attention.

https://bugzilla.gnome.org/show_bug.cgi?id=707153
2013-09-25 22:34:22 -04:00
Mario Sanchez Prada
8d83d989bb a11y: don't shutdown accessibility, so the atk bridge is always valid
This will fix issues in applications that for some reason make
several and not nested calls to gtk_main() during their lifetime,
effectively initializing a11y when the first, top most, main loop
is being run and shutting it down then that loop is quit.

https://bugzilla.gnome.org/show_bug.cgi?id=708024

https://bugzilla.gnome.org/show_bug.cgi?id=684076
2013-09-25 20:14:04 -04:00
Cosimo Cecchi
6f9fed45ef entrycompletion: set the GtkWindow as attached to the GtkEntry
This way themes can easily select that window to apply custom styles.

https://bugzilla.gnome.org/show_bug.cgi?id=708414
2013-09-25 20:06:43 -04:00
Alexander Larsson
68c450468e icon-theme: Better handling of unscaled icon directories
If an icon is in a Fixed or Threshold directory we normally don't
scale it. However, in the case of HiDPI scaling we *do* want to
scale it, to avoid different layouts in Lo/HiDPI. We look up whatever
the size of the icon would have been in LoDPI and scale to that
in the no-scaling case, thus getting the same layout as the
unscaled case.

https://bugzilla.gnome.org/show_bug.cgi?id=708384
2013-09-23 12:45:34 +02:00
Alexander Larsson
a001dc0ec7 icon-theme: Make icon_info_new() have some args
This gets rid of a bunch of duplicated code.
2013-09-23 12:45:34 +02:00
Matthias Clasen
e5317f0f9a Improve struct packing in various places 2013-09-21 23:50:55 -04:00
Matthias Clasen
d137f74fe9 Remove priv pointer from GtkStackSwitcher
This is a new widget, so lets avoid the unnecessary
priv pointer while we still can.
2013-09-21 23:50:55 -04:00
Matthias Clasen
f0aba21fd2 Small cleanup for the previous commit
When setting an accessible type, we don't need to
set an accessible row anymore.
2013-09-21 20:56:46 -04:00